x86: fold certain VCVT{,U}SI2S{S,D} templates
[deliverable/binutils-gdb.git] / opcodes / m10300-opc.c
index b8c8c62e72cee685ce6ee5a84c83a0e36e3eddff..2fa2d8b5006c52098232bb6247d5dfcdb7d2f9d9 100644 (file)
@@ -1,29 +1,32 @@
 /* Assemble Matsushita MN10300 instructions.
-   Copyright (C) 1996, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1996-2020 Free Software Foundation, Inc.
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This file is part of the GNU opcodes library.
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   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.
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   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.
 
-/* This file is formatted at > 80 columns.  Attempting to read it on a
-   screeen with less than 80 columns will be difficult.  */
-#include "ansidecl.h"
+   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.  */
+
+/* This file is formatted at > 80 columns.  Attempting to read it
+   on a screeen with less than 80 columns will be difficult.  */
+#include "sysdep.h"
 #include "opcode/mn10300.h"
 
 \f
 const struct mn10300_operand mn10300_operands[] = {
 #define UNUSED 0
-  {0, 0, 0}, 
+  {0, 0, 0},
 
 /* dn register in the first register operand position.  */
 #define DN0      (UNUSED+1)
@@ -88,13 +91,13 @@ const struct mn10300_operand mn10300_operands[] = {
 #define IMM16_PCREL    (IMM16+1)
   {16, 0, MN10300_OPERAND_PCREL | MN10300_OPERAND_RELAX | MN10300_OPERAND_SIGNED},
 
-/* 16bit unsigned dispacement in a memory operation which
+/* 16bit unsigned displacement in a memory operation which
    may promote to a 32bit displacement.  */
 #define IMM16_MEM    (IMM16_PCREL+1)
   {16, 0, MN10300_OPERAND_PROMOTE | MN10300_OPERAND_MEMADDR},
 
 /* 32bit immediate, high 16 bits in the main instruction
-   word, 16bits in the extension word. 
+   word, 16bits in the extension word.
 
    The "bits" field indicates how many bits are in the
    main instruction word for MN10300_OPERAND_SPLIT!  */
@@ -111,7 +114,7 @@ const struct mn10300_operand mn10300_operands[] = {
 
 /* 32bit immediate, high 16 bits in the main instruction
    word, 16bits in the extension word, low 16bits are left
-   shifted 8 places. 
+   shifted 8 places.
 
    The "bits" field indicates how many bits are in the
    main instruction word for MN10300_OPERAND_SPLIT!  */
@@ -128,7 +131,7 @@ const struct mn10300_operand mn10300_operands[] = {
 
 /* 32bit immediate, high 24 bits in the main instruction
    word, 8 in the extension word, low 8 bits are left
-   shifted 16 places. 
+   shifted 16 places.
 
    The "bits" field indicates how many bits are in the
    main instruction word for MN10300_OPERAND_SPLIT!  */
@@ -151,11 +154,11 @@ const struct mn10300_operand mn10300_operands[] = {
 #define DI (MDR+1)
   {2, 2, MN10300_OPERAND_DREG},
 
-/* 8 bit signed displacement, may promote to 16bit signed dispacement.  */
+/* 8 bit signed displacement, may promote to 16bit signed displacement.  */
 #define SD8    (DI+1)
   {8, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
 
-/* 16 bit signed displacement, may promote to 32bit dispacement.  */
+/* 16 bit signed displacement, may promote to 32bit displacement.  */
 #define SD16    (SD8+1)
   {16, 0, MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
 
@@ -181,7 +184,7 @@ const struct mn10300_operand mn10300_operands[] = {
 
 /* Either an open paren or close paren.  */
 #define PAREN  (SIMM16+1)
-  {0, 0, MN10300_OPERAND_PAREN}, 
+  {0, 0, MN10300_OPERAND_PAREN},
 
 /* dn register that appears in the first and second register positions.  */
 #define DN01     (PAREN+1)
@@ -212,7 +215,6 @@ const struct mn10300_operand mn10300_operands[] = {
 #define REGS    (REGS_SHIFT8+1)
   {8, 0, MN10300_OPERAND_REG_LIST},
 
-/* start-sanitize-am33 */
 /* UStack pointer.  */
 #define USP    (REGS+1)
   {0, 0, MN10300_OPERAND_USP},
@@ -268,7 +270,7 @@ const struct mn10300_operand mn10300_operands[] = {
 
 /* + for autoincrement */
 #define PLUS   (XRM2+1)
-  {0, 0, MN10300_OPERAND_PLUS}, 
+  {0, 0, MN10300_OPERAND_PLUS},
 
 #define XRN02      (PLUS+1)
   {4, 0, MN10300_OPERAND_XRREG | MN10300_OPERAND_REPEATED},
@@ -280,7 +282,7 @@ const struct mn10300_operand mn10300_operands[] = {
 #define RD2      (RD0+1)
   {4, -4, MN10300_OPERAND_RREG},
 
-/* 8 unsigned dispacement in a memory operation which
+/* 8 unsigned displacement in a memory operation which
    may promote to a 32bit displacement.  */
 #define IMM8_MEM    (RD2+1)
   {8, 0, MN10300_OPERAND_PROMOTE | MN10300_OPERAND_MEMADDR},
@@ -289,7 +291,7 @@ const struct mn10300_operand mn10300_operands[] = {
 #define RI (IMM8_MEM+1)
   {4, 4, MN10300_OPERAND_RREG},
 
-/* 24 bit signed displacement, may promote to 32bit dispacement.  */
+/* 24 bit signed displacement, may promote to 32bit displacement.  */
 #define SD24    (RI+1)
   {8, 0, MN10300_OPERAND_24BIT | MN10300_OPERAND_SIGNED | MN10300_OPERAND_PROMOTE},
 
@@ -303,12 +305,12 @@ const struct mn10300_operand mn10300_operands[] = {
 #define SIMM24    (IMM24+1)
   {8, 0, MN10300_OPERAND_24BIT | MN10300_OPERAND_PROMOTE | MN10300_OPERAND_SIGNED},
 
-/* 16bit unsigned dispacement in a memory operation which
+/* 24bit unsigned displacement in a memory operation which
    may promote to a 32bit displacement.  */
 #define IMM24_MEM    (SIMM24+1)
   {8, 0, MN10300_OPERAND_24BIT | MN10300_OPERAND_PROMOTE | MN10300_OPERAND_MEMADDR},
-/* 32bit immediate, high 24 bits in the main instruction
-   word, 8 in the extension word.
+/* 32bit immediate, high 8 bits in the main instruction
+   word, 24 in the extension word.
 
    The "bits" field indicates how many bits are in the
    main instruction word for MN10300_OPERAND_SPLIT!  */
@@ -338,14 +340,92 @@ const struct mn10300_operand mn10300_operands[] = {
 /* 4 bit immediate for dsp instructions.  */
 #define SIMM4_6    (SIMM4_2+1)
   {4, 12, MN10300_OPERAND_SIGNED},
-/* end-sanitize-am33 */
 
-} ; 
+#define FPCR      (SIMM4_6+1)
+  {0, 0, MN10300_OPERAND_FPCR},
+
+/* We call f[sd]m registers those whose most significant bit is stored
+ * within the opcode half-word, i.e., in a bit on the left of the 4
+ * least significant bits, and f[sd]n registers those whose most
+ * significant bit is stored at the end of the full word, after the 4
+ * least significant bits.  They're not numbered after their position
+ * in the mnemonic asm instruction, but after their position in the
+ * opcode word, i.e., depending on the amount of shift they need.
+ *
+ * The additional bit is shifted as follows: for `n' registers, it
+ * will be shifted by (|shift|/4); for `m' registers, it will be
+ * shifted by (8+(8&shift)+(shift&4)/4); for accumulator, whose
+ * specifications are only 3-bits long, the two least-significant bits
+ * are shifted by 16, and the most-significant bit is shifted by -2
+ * (i.e., it's stored in the least significant bit of the full
+ * word).  */
+
+/* fsm register in the first register operand position.  */
+#define FSM0      (FPCR+1)
+  {5, 0, MN10300_OPERAND_FSREG },
+
+/* fsm register in the second register operand position.  */
+#define FSM1      (FSM0+1)
+  {5, 4, MN10300_OPERAND_FSREG },
+
+/* fsm register in the third register operand position.  */
+#define FSM2      (FSM1+1)
+  {5, 8, MN10300_OPERAND_FSREG },
+
+/* fsm register in the fourth register operand position.  */
+#define FSM3      (FSM2+1)
+  {5, 12, MN10300_OPERAND_FSREG },
+
+/* fsn register in the first register operand position.  */
+#define FSN1      (FSM3+1)
+  {5, -4, MN10300_OPERAND_FSREG },
+
+/* fsn register in the second register operand position.  */
+#define FSN2      (FSN1+1)
+  {5, -8, MN10300_OPERAND_FSREG },
+
+/* fsm register in the third register operand position.  */
+#define FSN3      (FSN2+1)
+  {5, -12, MN10300_OPERAND_FSREG },
+
+/* fsm accumulator, in the fourth register operand position.  */
+#define FSACC     (FSN3+1)
+  {3, -16, MN10300_OPERAND_FSREG },
+
+/* fdm register in the first register operand position.  */
+#define FDM0      (FSACC+1)
+  {5, 0, MN10300_OPERAND_FDREG },
+
+/* fdm register in the second register operand position.  */
+#define FDM1      (FDM0+1)
+  {5, 4, MN10300_OPERAND_FDREG },
+
+/* fdm register in the third register operand position.  */
+#define FDM2      (FDM1+1)
+  {5, 8, MN10300_OPERAND_FDREG },
+
+/* fdm register in the fourth register operand position.  */
+#define FDM3      (FDM2+1)
+  {5, 12, MN10300_OPERAND_FDREG },
+
+/* fdn register in the first register operand position.  */
+#define FDN1      (FDM3+1)
+  {5, -4, MN10300_OPERAND_FDREG },
+
+/* fdn register in the second register operand position.  */
+#define FDN2      (FDN1+1)
+  {5, -8, MN10300_OPERAND_FDREG },
+
+/* fdn register in the third register operand position.  */
+#define FDN3      (FDN2+1)
+  {5, -12, MN10300_OPERAND_FDREG },
+
+} ;
 
-#define MEM(ADDR) PAREN, ADDR, PAREN 
-#define MEMINC(ADDR) PAREN, ADDR, PLUS, PAREN 
-#define MEMINC2(ADDR,INC) PAREN, ADDR, PLUS, INC, PAREN 
-#define MEM2(ADDR1,ADDR2) PAREN, ADDR1, ADDR2, PAREN 
+#define MEM(ADDR) PAREN, ADDR, PAREN
+#define MEMINC(ADDR) PAREN, ADDR, PLUS, PAREN
+#define MEMINC2(ADDR,INC) PAREN, ADDR, PLUS, INC, PAREN
+#define MEM2(ADDR1,ADDR2) PAREN, ADDR1, ADDR2, PAREN
 \f
 /* The opcode table.
 
@@ -410,7 +490,6 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "mov",       0xfa900000,  0xfff30000,  0,    FMT_D2, 0,      {AM1, MEM2(IMM16, SP)}},
 { "mov",       0xf3c0,      0xffc0,      0,    FMT_D0, 0,      {AM2, MEM2(DI, AN0)}},
 
-/* start-sanitize-am33 */
 { "mov",       0xf020,      0xfffc,      0,    FMT_D0, AM33,   {USP, AN0}},
 { "mov",       0xf024,      0xfffc,      0,    FMT_D0, AM33,   {SSP, AN0}},
 { "mov",       0xf028,      0xfffc,      0,    FMT_D0, AM33,   {MSP, AN0}},
@@ -434,7 +513,7 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "mov",       0xfd0e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM(IMM24_MEM), RN2}},
 { "mov",       0xf91a00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, MEM(RN0)}},
 { "mov",       0xf99a00,    0xffff0f,    0,    FMT_D6, AM33,   {RM2, MEM(SP)}},
-{ "mov",       0xf97a00,    0xffff00,    0x5,  FMT_D6, AM33,   {RM2, MEMINC(RN0)}},
+{ "mov",       0xf97a00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, MEMINC(RN0)}},
 { "mov",       0xfb1e0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM(IMM8_MEM)}},
 { "mov",       0xfd1e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM(IMM24_MEM)}},
 { "mov",       0xfb0a0000,  0xffff0000,  0,    FMT_D7, AM33,   {MEM2(SD8, RM0), RN2}},
@@ -442,18 +521,17 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "mov",       0xfb8e0000,  0xffff000f,  0,    FMT_D7, AM33,   {MEM2(RI, RM0), RD2}},
 { "mov",       0xfb1a0000,  0xffff0000,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, RN0)}},
 { "mov",       0xfd1a0000,  0xffff0000,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, RN0)}},
-{ "mov",       0xfb8a0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM2(SD8, SP), RN2}},
-{ "mov",       0xfd8a0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM2(SD24, SP), RN2}},
-{ "mov",       0xfb9a0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, SP)}},
-{ "mov",       0xfd9a0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, SP)}},
+{ "mov",       0xfb8a0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM2(IMM8, SP), RN2}},
+{ "mov",       0xfd8a0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM2(IMM24, SP), RN2}},
+{ "mov",       0xfb9a0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM2(IMM8, SP)}},
+{ "mov",       0xfd9a0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM2(IMM24, SP)}},
 { "mov",       0xfb9e0000,  0xffff000f,  0,    FMT_D7, AM33,   {RD2, MEM2(RI, RN0)}},
 { "mov",       0xfb6a0000,  0xffff0000,  0x22, FMT_D7, AM33,   {MEMINC2 (RM0, SIMM8), RN2}},
-{ "mov",       0xfb7a0000,  0xffff0000,  0x5,  FMT_D7, AM33,   {RM2, MEMINC2 (RN0, SIMM8)}},
+{ "mov",       0xfb7a0000,  0xffff0000,  0,    FMT_D7, AM33,   {RM2, MEMINC2 (RN0, SIMM8)}},
 { "mov",       0xfd6a0000,  0xffff0000,  0x22, FMT_D8, AM33,   {MEMINC2 (RM0, IMM24), RN2}},
-{ "mov",       0xfd7a0000,  0xffff0000,  0x5,  FMT_D8, AM33,   {RM2, MEMINC2 (RN0, IMM24)}},
+{ "mov",       0xfd7a0000,  0xffff0000,  0,    FMT_D8, AM33,   {RM2, MEMINC2 (RN0, IMM24)}},
 { "mov",       0xfe6a0000,  0xffff0000,  0x22, FMT_D9, AM33,   {MEMINC2 (RM0, IMM32_HIGH8), RN2}},
-{ "mov",       0xfe7a0000,  0xffff0000,  0x5,  FMT_D9, AM33,   {RN2, MEMINC2 (RM0, IMM32_HIGH8)}},
-/* end-sanitize-am33 */
+{ "mov",       0xfe7a0000,  0xffff0000,  0,    FMT_D9, AM33,   {RN2, MEMINC2 (RM0, IMM32_HIGH8)}},
 /* These must come after most of the other move instructions to avoid matching
    a symbolic name with IMMxx operands.  Ugh.  */
 { "mov",       0x2c0000,    0xfc0000,    0,    FMT_S2, 0,      {SIMM16, DN0}},
@@ -476,7 +554,6 @@ const struct mn10300_opcode mn10300_opcodes[] = {
    moves.  */
 { "mov",       0xf8f000,    0xfffc00,    0,    FMT_D1, AM30,   {MEM2(SD8N, AM0), SP}},
 { "mov",       0xf8f400,    0xfffc00,    0,    FMT_D1, AM30,   {SP, MEM2(SD8N, AN0)}},
-/* start-sanitize-am33 */
 /* These are the same as the previous non-promoting versions.  The am33
    does not have restrictions on the offsets used to load/store the stack
    pointer.  */
@@ -487,8 +564,8 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "mov",       0xfb080000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
 { "mov",       0xfd080000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
 { "mov",       0xfe080000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-{ "mov",       0xfbf80000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, XRN02}},
-{ "mov",       0xfdf80000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, XRN02}},
+{ "mov",       0xfbf80000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, XRN02}},
+{ "mov",       0xfdf80000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, XRN02}},
 { "mov",       0xfef80000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, XRN02}},
 { "mov",       0xfe0e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM(IMM32_HIGH8_MEM), RN2}},
 { "mov",       0xfe1e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM(IMM32_HIGH8_MEM)}},
@@ -496,15 +573,11 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "mov",       0xfe1a0000,  0xffff0000,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, RN0)}},
 { "mov",       0xfe8a0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8, SP), RN2}},
 { "mov",       0xfe9a0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, SP)}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "movu",      0xfb180000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
 { "movu",      0xfd180000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
 { "movu",      0xfe180000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "mcst9",     0xf630,      0xfff0,      0,    FMT_D0, AM33,   {DN01}},
 { "mcst48",    0xf660,      0xfff0,      0,    FMT_D0, AM33,   {DN01}},
 { "swap",      0xf680,      0xfff0,      0,    FMT_D0, AM33,   {DM1, DN0}},
@@ -558,7 +631,6 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "mcste",     0xf9bb00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
 { "mcste",     0xfbbb0000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
 { "swhw",      0xf9eb00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 
 { "movbu",     0xf040,      0xfff0,      0,    FMT_D0, 0,      {MEM(AM0), DN1}},
 { "movbu",     0xf84000,    0xfff000,    0,    FMT_D1, 0,      {MEM2(SD8, AM0), DN1}},
@@ -576,7 +648,6 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "movbu",     0xfa920000,  0xfff30000,  0,    FMT_D2, 0,      {DM1, MEM2(IMM16, SP)}},
 { "movbu",     0xf440,      0xffc0,      0,    FMT_D0, 0,      {DM2, MEM2(DI, AN0)}},
 { "movbu",     0x020000,    0xf30000,    0,    FMT_S2, 0,      {DM1, MEM(IMM16_MEM)}},
-/* start-sanitize-am33 */
 { "movbu",     0xf92a00,    0xffff00,    0,    FMT_D6, AM33,   {MEM(RM0), RN2}},
 { "movbu",     0xf93a00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, MEM(RN0)}},
 { "movbu",     0xf9aa00,    0xffff0f,    0,    FMT_D6, AM33,   {MEM(SP), RN2}},
@@ -585,31 +656,28 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "movbu",     0xfd2a0000,  0xffff0000,  0,    FMT_D8, AM33,   {MEM2(SD24, RM0), RN2}},
 { "movbu",     0xfb3a0000,  0xffff0000,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, RN0)}},
 { "movbu",     0xfd3a0000,  0xffff0000,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, RN0)}},
-{ "movbu",     0xfbaa0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM2(SD8, SP), RN2}},
-{ "movbu",     0xfdaa0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM2(SD24, SP), RN2}},
-{ "movbu",     0xfbba0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, SP)}},
-{ "movbu",     0xfdba0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, SP)}},
+{ "movbu",     0xfbaa0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM2(IMM8, SP), RN2}},
+{ "movbu",     0xfdaa0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM2(IMM24, SP), RN2}},
+{ "movbu",     0xfbba0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM2(IMM8, SP)}},
+{ "movbu",     0xfdba0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM2(IMM24, SP)}},
 { "movbu",     0xfb2e0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM(IMM8_MEM), RN2}},
 { "movbu",     0xfd2e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM(IMM24_MEM), RN2}},
 { "movbu",     0xfb3e0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM(IMM8_MEM)}},
 { "movbu",     0xfd3e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM(IMM24_MEM)}},
 { "movbu",     0xfbae0000,  0xffff000f,  0,    FMT_D7, AM33,   {MEM2(RI, RM0), RD2}},
 { "movbu",     0xfbbe0000,  0xffff000f,  0,    FMT_D7, AM33,   {RD2, MEM2(RI, RN0)}},
-/* end-sanitize-am33 */
 { "movbu",     0xfc400000,  0xfff00000,  0,    FMT_D4, 0,      {MEM2(IMM32,AM0), DN1}},
 { "movbu",     0xfcb80000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM2(IMM32, SP), DN0}},
 { "movbu",     0xfca80000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM(IMM32_MEM), DN0}},
 { "movbu",     0xfc500000,  0xfff00000,  0,    FMT_D4, 0,      {DM1, MEM2(IMM32,AN0)}},
 { "movbu",     0xfc920000,  0xfff30000,  0,    FMT_D4, 0,      {DM1, MEM2(IMM32, SP)}},
 { "movbu",     0xfc820000,  0xfff30000,  0,    FMT_D4, 0,      {DM1, MEM(IMM32_MEM)}},
-/* start-sanitize-am33 */
 { "movbu",     0xfe2a0000,  0xffff0000,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8,RM0), RN2}},
 { "movbu",     0xfe3a0000,  0xffff0000,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, RN0)}},
 { "movbu",     0xfeaa0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8,SP), RN2}},
 { "movbu",     0xfeba0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, SP)}},
 { "movbu",     0xfe2e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM(IMM32_HIGH8_MEM), RN2}},
 { "movbu",     0xfe3e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM(IMM32_HIGH8_MEM)}},
-/* end-sanitize-am33 */
 
 { "movhu",     0xf060,      0xfff0,      0,    FMT_D0, 0,      {MEM(AM0), DN1}},
 { "movhu",     0xf86000,    0xfff000,    0,    FMT_D1, 0,      {MEM2(SD8, AM0), DN1}},
@@ -627,33 +695,30 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "movhu",     0xfa930000,  0xfff30000,  0,    FMT_D2, 0,      {DM1, MEM2(IMM16, SP)}},
 { "movhu",     0xf4c0,      0xffc0,      0,    FMT_D0, 0,      {DM2, MEM2(DI, AN0)}},
 { "movhu",     0x030000,    0xf30000,    0,    FMT_S2, 0,      {DM1, MEM(IMM16_MEM)}},
-/* start-sanitize-am33 */
 { "movhu",     0xf94a00,    0xffff00,    0,    FMT_D6, AM33,   {MEM(RM0), RN2}},
 { "movhu",     0xf95a00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, MEM(RN0)}},
 { "movhu",     0xf9ca00,    0xffff0f,    0,    FMT_D6, AM33,   {MEM(SP), RN2}},
 { "movhu",     0xf9da00,    0xffff0f,    0,    FMT_D6, AM33,   {RM2, MEM(SP)}},
 { "movhu",     0xf9ea00,    0xffff00,    0x12, FMT_D6, AM33,   {MEMINC(RM0), RN2}},
-{ "movhu",     0xf9fa00,    0xffff00,    0x5,  FMT_D6, AM33,   {RM2, MEMINC(RN0)}},
+{ "movhu",     0xf9fa00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, MEMINC(RN0)}},
 { "movhu",     0xfb4a0000,  0xffff0000,  0,    FMT_D7, AM33,   {MEM2(SD8, RM0), RN2}},
 { "movhu",     0xfd4a0000,  0xffff0000,  0,    FMT_D8, AM33,   {MEM2(SD24, RM0), RN2}},
 { "movhu",     0xfb5a0000,  0xffff0000,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, RN0)}},
 { "movhu",     0xfd5a0000,  0xffff0000,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, RN0)}},
-{ "movhu",     0xfbca0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM2(SD8, SP), RN2}},
-{ "movhu",     0xfdca0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM2(SD24, SP), RN2}},
-{ "movhu",     0xfbda0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM2(SD8, SP)}},
-{ "movhu",     0xfdda0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM2(SD24, SP)}},
+{ "movhu",     0xfbca0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM2(IMM8, SP), RN2}},
+{ "movhu",     0xfdca0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM2(IMM24, SP), RN2}},
+{ "movhu",     0xfbda0000,  0xffff0f00,  0,    FMT_D7, AM33,   {RM2, MEM2(IMM8, SP)}},
+{ "movhu",     0xfdda0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM2(IMM24, SP)}},
 { "movhu",     0xfb4e0000,  0xffff0f00,  0,    FMT_D7, AM33,   {MEM(IMM8_MEM), RN2}},
 { "movhu",     0xfd4e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {MEM(IMM24_MEM), RN2}},
 { "movhu",     0xfbce0000,  0xffff000f,  0,    FMT_D7, AM33,   {MEM2(RI, RM0), RD2}},
 { "movhu",     0xfbde0000,  0xffff000f,  0,    FMT_D7, AM33,   {RD2, MEM2(RI, RN0)}},
-/* end-sanitize-am33 */
 { "movhu",     0xfc600000,  0xfff00000,  0,    FMT_D4, 0,      {MEM2(IMM32,AM0), DN1}},
 { "movhu",     0xfcbc0000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM2(IMM32, SP), DN0}},
 { "movhu",     0xfcac0000,  0xfffc0000,  0,    FMT_D4, 0,      {MEM(IMM32_MEM), DN0}},
 { "movhu",     0xfc700000,  0xfff00000,  0,    FMT_D4, 0,      {DM1, MEM2(IMM32,AN0)}},
 { "movhu",     0xfc930000,  0xfff30000,  0,    FMT_D4, 0,      {DM1, MEM2(IMM32, SP)}},
 { "movhu",     0xfc830000,  0xfff30000,  0,    FMT_D4, 0,      {DM1, MEM(IMM32_MEM)}},
-/* start-sanitize-am33 */
 { "movhu",     0xfe4a0000,  0xffff0000,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8,RM0), RN2}},
 { "movhu",     0xfe5a0000,  0xffff0000,  0,    FMT_D9, AM33,   {RM2, MEM2(IMM32_HIGH8, RN0)}},
 { "movhu",     0xfeca0000,  0xffff0f00,  0,    FMT_D9, AM33,   {MEM2(IMM32_HIGH8, SP), RN2}},
@@ -663,65 +728,40 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "movhu",     0xfd5e0000,  0xffff0f00,  0,    FMT_D8, AM33,   {RM2, MEM(IMM24_MEM)}},
 { "movhu",     0xfe5e0000,  0xffff0f00,  0,    FMT_D9, AM33,   {RM2, MEM(IMM32_HIGH8_MEM)}},
 { "movhu",     0xfbea0000,  0xffff0000,  0x22, FMT_D7, AM33,   {MEMINC2 (RM0, SIMM8), RN2}},
-{ "movhu",     0xfbfa0000,  0xffff0000,  0x5,  FMT_D7, AM33,   {RM2, MEMINC2 (RN0, SIMM8)}},
+{ "movhu",     0xfbfa0000,  0xffff0000,  0,    FMT_D7, AM33,   {RM2, MEMINC2 (RN0, SIMM8)}},
 { "movhu",     0xfdea0000,  0xffff0000,  0x22, FMT_D8, AM33,   {MEMINC2 (RM0, IMM24), RN2}},
-{ "movhu",     0xfdfa0000,  0xffff0000,  0x5,  FMT_D8, AM33,   {RM2, MEMINC2 (RN0, IMM24)}},
+{ "movhu",     0xfdfa0000,  0xffff0000,  0,    FMT_D8, AM33,   {RM2, MEMINC2 (RN0, IMM24)}},
 { "movhu",     0xfeea0000,  0xffff0000,  0x22, FMT_D9, AM33,   {MEMINC2 (RM0, IMM32_HIGH8), RN2}},
-{ "movhu",     0xfefa0000,  0xffff0000,  0x5,  FMT_D9, AM33,   {RN2, MEMINC2 (RM0, IMM32_HIGH8)}},
-/* end-sanitize-am33 */
+{ "movhu",     0xfefa0000,  0xffff0000,  0,    FMT_D9, AM33,   {RN2, MEMINC2 (RM0, IMM32_HIGH8)}},
 
 { "ext",       0xf2d0,      0xfffc,      0,    FMT_D0, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "ext",       0xf91800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "extb",      0xf92800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 { "extb",      0x10,        0xfc,        0,    FMT_S0, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "extb",      0xf92800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "extbu",     0xf93800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 { "extbu",     0x14,        0xfc,        0,    FMT_S0, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "extbu",     0xf93800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "exth",      0xf94800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 { "exth",      0x18,        0xfc,        0,    FMT_S0, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "exth",      0xf94800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "exthu",     0xf95800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 { "exthu",     0x1c,        0xfc,        0,    FMT_S0, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "exthu",     0xf95800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
 { "movm",      0xce00,      0xff00,      0,    FMT_S1, 0,      {MEM(SP), REGS}},
 { "movm",      0xcf00,      0xff00,      0,    FMT_S1, 0,      {REGS, MEM(SP)}},
-/* start-sanitize-am33 */
 { "movm",      0xf8ce00,    0xffff00,    0,    FMT_D1, AM33,   {MEM(USP), REGS}},
 { "movm",      0xf8cf00,    0xffff00,    0,    FMT_D1, AM33,   {REGS, MEM(USP)}},
-/* end-sanitize-am33 */
 
 { "clr",       0x00,        0xf3,        0,    FMT_S0, 0,      {DN1}},
-/* start-sanitize-am33 */
 { "clr",       0xf96800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "add",       0xfb7c0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
 { "add",       0xe0,        0xf0,        0,    FMT_S0, 0,      {DM1, DN0}},
 { "add",       0xf160,      0xfff0,      0,    FMT_D0, 0,      {DM1, AN0}},
 { "add",       0xf150,      0xfff0,      0,    FMT_D0, 0,      {AM1, DN0}},
@@ -732,100 +772,66 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "add",       0xfad00000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, AN0}},
 { "add",       0xf8fe00,    0xffff00,    0,    FMT_D1, 0,      {SIMM8, SP}},
 { "add",       0xfafe0000,  0xffff0000,  0,    FMT_D2, 0,      {SIMM16, SP}},
-/* start-sanitize-am33 */
 { "add",       0xf97800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 { "add",       0xfcc00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
 { "add",       0xfcd00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, AN0}},
 { "add",       0xfcfe0000,  0xffff0000,  0,    FMT_D4, 0,      {IMM32, SP}},
-/* start-sanitize-am33 */
 { "add",       0xfb780000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
 { "add",       0xfd780000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
 { "add",       0xfe780000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "addc",      0xfb8c0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
 { "addc",      0xf140,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
-/* start-sanitize-am33 */
 { "addc",      0xf98800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
 { "addc",      0xfb880000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
 { "addc",      0xfd880000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
 { "addc",      0xfe880000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "sub",       0xfb9c0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
 { "sub",       0xf100,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
 { "sub",       0xf120,      0xfff0,      0,    FMT_D0, 0,      {DM1, AN0}},
 { "sub",       0xf110,      0xfff0,      0,    FMT_D0, 0,      {AM1, DN0}},
 { "sub",       0xf130,      0xfff0,      0,    FMT_D0, 0,      {AM1, AN0}},
-/* start-sanitize-am33 */
 { "sub",       0xf99800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 { "sub",       0xfcc40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
 { "sub",       0xfcd40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, AN0}},
-/* start-sanitize-am33 */
 { "sub",       0xfb980000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
 { "sub",       0xfd980000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
 { "sub",       0xfe980000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
-{ "subc",      0xfa8c0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
+{ "subc",      0xfbac0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
 { "subc",      0xf180,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
-/* start-sanitize-am33 */
 { "subc",      0xf9a800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
 { "subc",      0xfba80000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
 { "subc",      0xfda80000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
 { "subc",      0xfea80000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "mul",       0xfbad0000,  0xffff0000,  0xc,  FMT_D7, AM33,   {RM2, RN0, RD2, RD0}},
-/* end-sanitize-am33 */
 { "mul",       0xf240,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
-/* start-sanitize-am33 */
 { "mul",       0xf9a900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
 { "mul",       0xfba90000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
 { "mul",       0xfda90000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
 { "mul",       0xfea90000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "mulu",      0xfbbd0000,  0xffff0000,  0xc,  FMT_D7, AM33,   {RM2, RN0, RD2, RD0}},
-/* end-sanitize-am33 */
 { "mulu",      0xf250,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
-/* start-sanitize-am33 */
 { "mulu",      0xf9b900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
 { "mulu",      0xfbb90000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
 { "mulu",      0xfdb90000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
 { "mulu",      0xfeb90000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
 { "div",       0xf260,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
-/* start-sanitize-am33 */
 { "div",       0xf9c900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 
 { "divu",      0xf270,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
-/* start-sanitize-am33 */
 { "divu",      0xf9d900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 
 { "inc",       0x40,        0xf3,        0,    FMT_S0, 0,      {DN1}},
 { "inc",       0x41,        0xf3,        0,    FMT_S0, 0,      {AN1}},
-/* start-sanitize-am33 */
 { "inc",       0xf9b800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
 { "inc4",      0x50,        0xfc,        0,    FMT_S0, 0,      {AN0}},
-/* start-sanitize-am33 */
 { "inc4",      0xf9c800,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
 { "cmp",       0xa000,      0xf000,      0,    FMT_S1, 0,      {SIMM8, DN01}},
 { "cmp",       0xa0,        0xf0,        0x3,  FMT_S0, 0,      {DM1, DN0}},
@@ -835,156 +841,109 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "cmp",       0xb0,        0xf0,        0x3,  FMT_S0, 0,      {AM1, AN0}},
 { "cmp",       0xfac80000,  0xfffc0000,  0,    FMT_D2, 0,      {SIMM16, DN0}},
 { "cmp",       0xfad80000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, AN0}},
-/* start-sanitize-am33 */
 { "cmp",       0xf9d800,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 { "cmp",       0xfcc80000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
 { "cmp",       0xfcd80000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, AN0}},
-/* start-sanitize-am33 */
 { "cmp",       0xfbd80000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
 { "cmp",       0xfdd80000,  0xffff0000,  0,    FMT_D8, AM33,   {SIMM24, RN02}},
 { "cmp",       0xfed80000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "and",       0xfb0d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
 { "and",       0xf200,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
 { "and",       0xf8e000,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
 { "and",       0xfae00000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
 { "and",       0xfafc0000,  0xffff0000,  0,    FMT_D2, 0,      {IMM16, PSW}},
-/* start-sanitize-am33 */
 { "and",       0xfcfc0000,  0xffff0000,  0,    FMT_D4, AM33,   {IMM32, EPSW}},
 { "and",       0xf90900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 { "and",       0xfce00000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
-/* start-sanitize-am33 */
 { "and",       0xfb090000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
 { "and",       0xfd090000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
 { "and",       0xfe090000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "or",                0xfb1d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
 { "or",                0xf210,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
 { "or",                0xf8e400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
 { "or",                0xfae40000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
 { "or",                0xfafd0000,  0xffff0000,  0,    FMT_D2, 0,      {IMM16, PSW}},
-/* start-sanitize-am33 */
 { "or",                0xfcfd0000,  0xffff0000,  0,    FMT_D4, AM33,   {IMM32, EPSW}},
 { "or",                0xf91900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 { "or",                0xfce40000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
-/* start-sanitize-am33 */
 { "or",                0xfb190000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
 { "or",                0xfd190000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
 { "or",                0xfe190000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "xor",       0xfb2d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
 { "xor",       0xf220,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
 { "xor",       0xfae80000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
-/* start-sanitize-am33 */
 { "xor",       0xf92900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 { "xor",       0xfce80000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
-/* start-sanitize-am33 */
 { "xor",       0xfb290000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
 { "xor",       0xfd290000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
 { "xor",       0xfe290000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 
 { "not",       0xf230,      0xfffc,      0,    FMT_D0, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "not",       0xf93900,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
 { "btst",      0xf8ec00,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
 { "btst",      0xfaec0000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM16, DN0}},
 { "btst",      0xfcec0000,  0xfffc0000,  0,    FMT_D4, 0,      {IMM32, DN0}},
-/* start-sanitize-am33 */
 /* Place these before the ones with IMM8E and SD8N_SHIFT8 since we want the
    them to match last since they do not promote.  */
 { "btst",      0xfbe90000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
 { "btst",      0xfde90000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
 { "btst",      0xfee90000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
+{ "btst",      0xfe820000,  0xffff0000,  0,    FMT_D3, AM33_2, {IMM8E, MEM(IMM16_MEM)}},
 { "btst",      0xfe020000,  0xffff0000,  0,    FMT_D5, 0,      {IMM8E, MEM(IMM32_LOWSHIFT8)}},
 { "btst",      0xfaf80000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM8, MEM2(SD8N_SHIFT8, AN0)}},
 
 { "bset",      0xf080,      0xfff0,      0,    FMT_D0, 0,      {DM1, MEM(AN0)}},
+{ "bset",      0xfe800000,  0xffff0000,  0,    FMT_D3, AM33_2, {IMM8E, MEM(IMM16_MEM)}},
 { "bset",      0xfe000000,  0xffff0000,  0,    FMT_D5, 0,      {IMM8E, MEM(IMM32_LOWSHIFT8)}},
 { "bset",      0xfaf00000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM8, MEM2(SD8N_SHIFT8, AN0)}},
 
 { "bclr",      0xf090,      0xfff0,      0,    FMT_D0, 0,      {DM1, MEM(AN0)}},
+{ "bclr",      0xfe810000,  0xffff0000,  0,    FMT_D3, AM33_2, {IMM8E, MEM(IMM16_MEM)}},
 { "bclr",      0xfe010000,  0xffff0000,  0,    FMT_D5, 0,      {IMM8E, MEM(IMM32_LOWSHIFT8)}},
 { "bclr",      0xfaf40000,  0xfffc0000,  0,    FMT_D2, 0,      {IMM8, MEM2(SD8N_SHIFT8,AN0)}},
 
-/* start-sanitize-am33 */
 { "asr",       0xfb4d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
 { "asr",       0xf2b0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
 { "asr",       0xf8c800,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
-/* start-sanitize-am33 */
 { "asr",       0xf94900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
 { "asr",       0xfb490000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
 { "asr",       0xfd490000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
 { "asr",       0xfe490000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 { "asr",       0xf8c801,    0xfffcff,    0,    FMT_D1, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "asr",       0xfb490001,  0xffff00ff,  0,    FMT_D7, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "lsr",       0xfb5d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
 { "lsr",       0xf2a0,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
 { "lsr",       0xf8c400,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
-/* start-sanitize-am33 */
 { "lsr",       0xf95900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
 { "lsr",       0xfb590000,  0xffff0000,  0,    FMT_D7, AM33,   {IMM8, RN02}},
 { "lsr",       0xfd590000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
 { "lsr",       0xfe590000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 { "lsr",       0xf8c401,    0xfffcff,    0,    FMT_D1, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "lsr",       0xfb590001,  0xffff00ff,  0,    FMT_D7, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "asl",       0xfb6d0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
 { "asl",       0xf290,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
 { "asl",       0xf8c000,    0xfffc00,    0,    FMT_D1, 0,      {IMM8, DN0}},
-/* start-sanitize-am33 */
 { "asl",       0xf96900,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
 { "asl",       0xfb690000,  0xffff0000,  0,    FMT_D7, AM33,   {SIMM8, RN02}},
 { "asl",       0xfd690000,  0xffff0000,  0,    FMT_D8, AM33,   {IMM24, RN02}},
 { "asl",       0xfe690000,  0xffff0000,  0,    FMT_D9, AM33,   {IMM32_HIGH8, RN02}},
-/* end-sanitize-am33 */
 { "asl",       0xf8c001,    0xfffcff,    0,    FMT_D1, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "asl",       0xfb690001,  0xffff00ff,  0,    FMT_D7, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
 { "asl2",      0x54,        0xfc,        0,    FMT_S0, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "asl2",      0xf97900,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
 { "ror",       0xf284,      0xfffc,      0,    FMT_D0, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "ror",       0xf98900,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
 { "rol",       0xf280,      0xfffc,      0,    FMT_D0, 0,      {DN0}},
-/* start-sanitize-am33 */
 { "rol",       0xf99900,    0xffff00,    0,    FMT_D6, AM33,   {RN02}},
-/* end-sanitize-am33 */
 
 { "beq",       0xc800,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
 { "bne",       0xc900,      0xff00,      0,    FMT_S1, 0,      {SD8N_PCREL}},
@@ -1015,6 +974,36 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "lra",       0xda,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
 { "setlb",     0xdb,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
 
+{ "fbeq",      0xf8d000,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbne",      0xf8d100,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbgt",      0xf8d200,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbge",      0xf8d300,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fblt",      0xf8d400,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fble",      0xf8d500,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbuo",      0xf8d600,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fblg",      0xf8d700,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbleg",     0xf8d800,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbug",      0xf8d900,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbuge",     0xf8da00,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbul",      0xf8db00,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbule",     0xf8dc00,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+{ "fbue",      0xf8dd00,    0xffff00,    0,    FMT_D1, AM33_2, {SD8N_PCREL}},
+
+{ "fleq",      0xf0d0,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "flne",      0xf0d1,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "flgt",      0xf0d2,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "flge",      0xf0d3,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "fllt",      0xf0d4,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "flle",      0xf0d5,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "fluo",      0xf0d6,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "fllg",      0xf0d7,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "flleg",     0xf0d8,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "flug",      0xf0d9,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "fluge",     0xf0da,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "flul",      0xf0db,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "flule",     0xf0dc,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+{ "flue",      0xf0dd,      0xffff,      0,    FMT_D0, AM33_2, {UNUSED}},
+
 { "jmp",       0xf0f4,      0xfffc,      0,    FMT_D0, 0,      {PAREN,AN0,PAREN}},
 { "jmp",       0xcc0000,    0xff0000,    0,    FMT_S2, 0,      {IMM16_PCREL}},
 { "jmp",       0xdc000000,  0xff000000,  0,    FMT_S4, 0,      {IMM32_HIGH24}},
@@ -1032,6 +1021,141 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "rtm",       0xf0ff,      0xffff,      0,    FMT_D0, 0,      {UNUSED}},
 { "nop",       0xcb,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
 
+{ "dcpf",      0xf9a600,    0xffff0f,    0,    FMT_D6, AM33_2,  {MEM (RM2)}},
+{ "dcpf",      0xf9a700,    0xffffff,    0,    FMT_D6, AM33_2,  {MEM (SP)}},
+{ "dcpf",      0xfba60000,  0xffff00ff,  0,    FMT_D7, AM33_2,  {MEM2 (RI,RM0)}},
+{ "dcpf",      0xfba70000,  0xffff0f00,  0,    FMT_D7, AM33_2,  {MEM2 (SD8,RM2)}},
+{ "dcpf",      0xfda70000,  0xffff0f00,  0,    FMT_D8, AM33_2,  {MEM2 (SD24,RM2)}},
+{ "dcpf",      0xfe460000,  0xffff0f00,  0,    FMT_D9, AM33_2,  {MEM2 (IMM32_HIGH8,RM2)}},
+
+{ "fmov",      0xf92000,    0xfffe00,    0,    FMT_D6, AM33_2,  {MEM (RM2), FSM0}},
+{ "fmov",      0xf92200,    0xfffe00,    0,    FMT_D6, AM33_2,  {MEMINC (RM2), FSM0}},
+{ "fmov",      0xf92400,    0xfffef0,    0,    FMT_D6, AM33_2,  {MEM (SP), FSM0}},
+{ "fmov",      0xf92600,    0xfffe00,    0,    FMT_D6, AM33_2,  {RM2, FSM0}},
+{ "fmov",      0xf93000,    0xfffd00,    0,    FMT_D6, AM33_2,  {FSM1, MEM (RM0)}},
+{ "fmov",      0xf93100,    0xfffd00,    0,    FMT_D6, AM33_2,  {FSM1, MEMINC (RM0)}},
+{ "fmov",      0xf93400,    0xfffd0f,    0,    FMT_D6, AM33_2,  {FSM1, MEM (SP)}},
+{ "fmov",      0xf93500,    0xfffd00,    0,    FMT_D6, AM33_2,  {FSM1, RM0}},
+{ "fmov",      0xf94000,    0xfffc00,    0,    FMT_D6, AM33_2,  {FSM1, FSM0}},
+{ "fmov",      0xf9a000,    0xfffe01,    0,    FMT_D6, AM33_2,  {MEM (RM2), FDM0}},
+{ "fmov",      0xf9a200,    0xfffe01,    0,    FMT_D6, AM33_2,  {MEMINC (RM2), FDM0}},
+{ "fmov",      0xf9a400,    0xfffef1,    0,    FMT_D6, AM33_2,  {MEM (SP), FDM0}},
+{ "fmov",      0xf9b000,    0xfffd10,    0,    FMT_D6, AM33_2,  {FDM1, MEM (RM0)}},
+{ "fmov",      0xf9b100,    0xfffd10,    0,    FMT_D6, AM33_2,  {FDM1, MEMINC (RM0)}},
+{ "fmov",      0xf9b400,    0xfffd1f,    0,    FMT_D6, AM33_2,  {FDM1, MEM (SP)}},
+{ "fmov",      0xf9b500,    0xffff0f,    0,    FMT_D6, AM33_2,  {RM2, FPCR}},
+{ "fmov",      0xf9b700,    0xfffff0,    0,    FMT_D6, AM33_2,  {FPCR, RM0}},
+{ "fmov",      0xf9c000,    0xfffc11,    0,    FMT_D6, AM33_2,  {FDM1, FDM0}},
+{ "fmov",      0xfb200000,  0xfffe0000,  0,    FMT_D7, AM33_2, {MEM2 (SD8, RM2), FSM2}},
+{ "fmov",      0xfb220000,  0xfffe0000,  0,    FMT_D7, AM33_2, {MEMINC2 (RM2, SIMM8), FSM2}},
+{ "fmov",      0xfb240000,  0xfffef000,  0,    FMT_D7, AM33_2, {MEM2 (IMM8, SP), FSM2}},
+{ "fmov",      0xfb270000,  0xffff000d,  0,    FMT_D7, AM33_2, {MEM2 (RI, RM0), FSN1}},
+{ "fmov",      0xfb300000,  0xfffd0000,  0,    FMT_D7, AM33_2, {FSM3, MEM2 (SD8, RM0)}},
+{ "fmov",      0xfb310000,  0xfffd0000,  0,    FMT_D7, AM33_2, {FSM3, MEMINC2 (RM0, SIMM8)}},
+{ "fmov",      0xfb340000,  0xfffd0f00,  0,    FMT_D7, AM33_2, {FSM3, MEM2 (IMM8, SP)}},
+{ "fmov",      0xfb370000,  0xffff000d,  0,    FMT_D7, AM33_2, {FSN1, MEM2(RI, RM0)}},
+  /* FIXME: the spec doesn't say the fd register must be even for the
+   * next two insns.  Assuming it was a mistake in the spec.  */
+{ "fmov",      0xfb470000,  0xffff001d,  0,    FMT_D7, AM33_2, {MEM2 (RI, RM0), FDN1}},
+{ "fmov",      0xfb570000,  0xffff001d,  0,    FMT_D7, AM33_2, {FDN1, MEM2(RI, RM0)}},
+  /* END of FIXME */
+{ "fmov",      0xfba00000,  0xfffe0100,  0,    FMT_D7, AM33_2, {MEM2 (SD8, RM2), FDM2}},
+{ "fmov",      0xfba20000,  0xfffe0100,  0,    FMT_D7, AM33_2, {MEMINC2 (RM2, SIMM8), FDM2}},
+{ "fmov",      0xfba40000,  0xfffef100,  0,    FMT_D7, AM33_2, {MEM2 (IMM8, SP), FDM2}},
+{ "fmov",      0xfbb00000,  0xfffd1000,  0,    FMT_D7, AM33_2, {FDM3, MEM2 (SD8, RM0)}},
+{ "fmov",      0xfbb10000,  0xfffd1000,  0,    FMT_D7, AM33_2, {FDM3, MEMINC2 (RM0, SIMM8)}},
+{ "fmov",      0xfbb40000,  0xfffd1f00,  0,    FMT_D7, AM33_2, {FDM3, MEM2 (IMM8, SP)}},
+{ "fmov",      0xfd200000,  0xfffe0000,  0,    FMT_D8, AM33_2, {MEM2 (SIMM24, RM2), FSM2}},
+{ "fmov",      0xfd220000,  0xfffe0000,  0,    FMT_D8, AM33_2, {MEMINC2 (RM2, SIMM24), FSM2}},
+{ "fmov",      0xfd240000,  0xfffef000,  0,    FMT_D8, AM33_2, {MEM2 (IMM24, SP), FSM2}},
+{ "fmov",      0xfd300000,  0xfffd0000,  0,    FMT_D8, AM33_2, {FSM3, MEM2 (SIMM24, RM0)}},
+{ "fmov",      0xfd310000,  0xfffd0000,  0,    FMT_D8, AM33_2, {FSM3, MEMINC2 (RM0, SIMM24)}},
+{ "fmov",      0xfd340000,  0xfffd0f00,  0,    FMT_D8, AM33_2, {FSM3, MEM2 (IMM24, SP)}},
+{ "fmov",      0xfda00000,  0xfffe0100,  0,    FMT_D8, AM33_2, {MEM2 (SIMM24, RM2), FDM2}},
+{ "fmov",      0xfda20000,  0xfffe0100,  0,    FMT_D8, AM33_2, {MEMINC2 (RM2, SIMM24), FDM2}},
+{ "fmov",      0xfda40000,  0xfffef100,  0,    FMT_D8, AM33_2, {MEM2 (IMM24, SP), FDM2}},
+{ "fmov",      0xfdb00000,  0xfffd1000,  0,    FMT_D8, AM33_2, {FDM3, MEM2 (SIMM24, RM0)}},
+{ "fmov",      0xfdb10000,  0xfffd1000,  0,    FMT_D8, AM33_2, {FDM3, MEMINC2 (RM0, SIMM24)}},
+{ "fmov",      0xfdb40000,  0xfffd1f00,  0,    FMT_D8, AM33_2, {FDM3, MEM2 (IMM24, SP)}},
+{ "fmov",      0xfdb50000,  0xffff0000,  0,    FMT_D4, AM33_2, {IMM32, FPCR}},
+{ "fmov",      0xfe200000,  0xfffe0000,  0,    FMT_D9, AM33_2, {MEM2 (IMM32_HIGH8, RM2), FSM2}},
+{ "fmov",      0xfe220000,  0xfffe0000,  0,    FMT_D9, AM33_2, {MEMINC2 (RM2, IMM32_HIGH8), FSM2}},
+{ "fmov",      0xfe240000,  0xfffef000,  0,    FMT_D9, AM33_2, {MEM2 (IMM32_HIGH8, SP), FSM2}},
+{ "fmov",      0xfe260000,  0xfffef000,  0,    FMT_D9, AM33_2, {IMM32_HIGH8, FSM2}},
+{ "fmov",      0xfe300000,  0xfffd0000,  0,    FMT_D9, AM33_2, {FSM3, MEM2 (IMM32_HIGH8, RM0)}},
+{ "fmov",      0xfe310000,  0xfffd0000,  0,    FMT_D9, AM33_2, {FSM3, MEMINC2 (RM0, IMM32_HIGH8)}},
+{ "fmov",      0xfe340000,  0xfffd0f00,  0,    FMT_D9, AM33_2, {FSM3, MEM2 (IMM32_HIGH8, SP)}},
+{ "fmov",      0xfe400000,  0xfffe0100,  0,    FMT_D9, AM33_2, {MEM2 (IMM32_HIGH8, RM2), FDM2}},
+{ "fmov",      0xfe420000,  0xfffe0100,  0,    FMT_D9, AM33_2, {MEMINC2 (RM2, IMM32_HIGH8), FDM2}},
+{ "fmov",      0xfe440000,  0xfffef100,  0,    FMT_D9, AM33_2, {MEM2 (IMM32_HIGH8, SP), FDM2}},
+{ "fmov",      0xfe500000,  0xfffd1000,  0,    FMT_D9, AM33_2, {FDM3, MEM2 (IMM32_HIGH8, RM0)}},
+{ "fmov",      0xfe510000,  0xfffd1000,  0,    FMT_D9, AM33_2, {FDM3, MEMINC2 (RM0, IMM32_HIGH8)}},
+{ "fmov",      0xfe540000,  0xfffd1f00,  0,    FMT_D9, AM33_2, {FDM3, MEM2 (IMM32_HIGH8, SP)}},
+
+  /* FIXME: these are documented in the instruction bitmap, but not in
+   * the instruction manual.  */
+{ "ftoi",      0xfb400000,  0xffff0f05,  0,    FMT_D10,AM33_2,  {FSN3, FSN1}},
+{ "itof",      0xfb420000,  0xffff0f05,  0,    FMT_D10,AM33_2,  {FSN3, FSN1}},
+{ "ftod",      0xfb520000,  0xffff0f15,  0,    FMT_D10,AM33_2,  {FSN3, FDN1}},
+{ "dtof",      0xfb560000,  0xffff1f05,  0,    FMT_D10,AM33_2,  {FDN3, FSN1}},
+  /* END of FIXME */
+
+{ "fabs",      0xfb440000,  0xffff0f05,  0,    FMT_D10,AM33_2,  {FSN3, FSN1}},
+{ "fabs",      0xfbc40000,  0xffff1f15,  0,    FMT_D10,AM33_2,  {FDN3, FDN1}},
+{ "fabs",      0xf94400,    0xfffef0,    0,    FMT_D6, AM33_2,  {FSM0}},
+{ "fabs",      0xf9c400,    0xfffef1,    0,    FMT_D6, AM33_2,  {FDM0}},
+
+{ "fneg",      0xfb460000,  0xffff0f05,  0,    FMT_D10,AM33_2,  {FSN3, FSN1}},
+{ "fneg",      0xfbc60000,  0xffff1f15,  0,    FMT_D10,AM33_2,  {FDN3, FDN1}},
+{ "fneg",      0xf94600,    0xfffef0,    0,    FMT_D6, AM33_2,  {FSM0}},
+{ "fneg",      0xf9c600,    0xfffef1,    0,    FMT_D6, AM33_2,  {FDM0}},
+
+{ "frsqrt",    0xfb500000,  0xffff0f05,  0,    FMT_D10,AM33_2,  {FSN3, FSN1}},
+{ "frsqrt",    0xfbd00000,  0xffff1f15,  0,    FMT_D10,AM33_2,  {FDN3, FDN1}},
+{ "frsqrt",    0xf95000,    0xfffef0,    0,    FMT_D6, AM33_2,  {FSM0}},
+{ "frsqrt",    0xf9d000,    0xfffef1,    0,    FMT_D6, AM33_2,  {FDM0}},
+
+  /* FIXME: this is documented in the instruction bitmap, but not in
+   * the instruction manual.  */
+{ "fsqrt",     0xfb540000,  0xffff0f05,  0,    FMT_D10,AM33_2,  {FSN3, FSN1}},
+{ "fsqrt",     0xfbd40000,  0xffff1f15,  0,    FMT_D10,AM33_2,  {FDN3, FDN1}},
+{ "fsqrt",     0xf95200,    0xfffef0,    0,    FMT_D6, AM33_2,  {FSM0}},
+{ "fsqrt",     0xf9d200,    0xfffef1,    0,    FMT_D6, AM33_2,  {FDM0}},
+  /* END of FIXME */
+
+{ "fcmp",      0xf95400,    0xfffc00,    0,    FMT_D6, AM33_2,  {FSM1, FSM0}},
+{ "fcmp",      0xf9d400,    0xfffc11,    0,    FMT_D6, AM33_2,  {FDM1, FDM0}},
+{ "fcmp",      0xfe350000,  0xfffd0f00,  0,    FMT_D9, AM33_2,  {IMM32_HIGH8, FSM3}},
+
+{ "fadd",      0xfb600000,  0xffff0001,  0,    FMT_D10,AM33_2,  {FSN3, FSN2, FSN1}},
+{ "fadd",      0xfbe00000,  0xffff1111,  0,    FMT_D10,AM33_2,  {FDN3, FDN2, FDN1}},
+{ "fadd",      0xf96000,    0xfffc00,    0,    FMT_D6, AM33_2,  {FSM1, FSM0}},
+{ "fadd",      0xf9e000,    0xfffc11,    0,    FMT_D6, AM33_2,  {FDM1, FDM0}},
+{ "fadd",      0xfe600000,  0xfffc0000,  0,    FMT_D9, AM33_2,  {IMM32_HIGH8, FSM3, FSM2}},
+
+{ "fsub",      0xfb640000,  0xffff0001,  0,    FMT_D10,AM33_2,  {FSN3, FSN2, FSN1}},
+{ "fsub",      0xfbe40000,  0xffff1111,  0,    FMT_D10,AM33_2,  {FDN3, FDN2, FDN1}},
+{ "fsub",      0xf96400,    0xfffc00,    0,    FMT_D6, AM33_2,  {FSM1, FSM0}},
+{ "fsub",      0xf9e400,    0xfffc11,    0,    FMT_D6, AM33_2,  {FDM1, FDM0}},
+{ "fsub",      0xfe640000,  0xfffc0000,  0,    FMT_D9, AM33_2,  {IMM32_HIGH8, FSM3, FSM2}},
+
+{ "fmul",      0xfb700000,  0xffff0001,  0,    FMT_D10,AM33_2,  {FSN3, FSN2, FSN1}},
+{ "fmul",      0xfbf00000,  0xffff1111,  0,    FMT_D10,AM33_2,  {FDN3, FDN2, FDN1}},
+{ "fmul",      0xf97000,    0xfffc00,    0,    FMT_D6, AM33_2,  {FSM1, FSM0}},
+{ "fmul",      0xf9f000,    0xfffc11,    0,    FMT_D6, AM33_2,  {FDM1, FDM0}},
+{ "fmul",      0xfe700000,  0xfffc0000,  0,    FMT_D9, AM33_2,  {IMM32_HIGH8, FSM3, FSM2}},
+
+{ "fdiv",      0xfb740000,  0xffff0001,  0,    FMT_D10,AM33_2,  {FSN3, FSN2, FSN1}},
+{ "fdiv",      0xfbf40000,  0xffff1111,  0,    FMT_D10,AM33_2,  {FDN3, FDN2, FDN1}},
+{ "fdiv",      0xf97400,    0xfffc00,    0,    FMT_D6, AM33_2,  {FSM1, FSM0}},
+{ "fdiv",      0xf9f400,    0xfffc11,    0,    FMT_D6, AM33_2,  {FDM1, FDM0}},
+{ "fdiv",      0xfe740000,  0xfffc0000,  0,    FMT_D9, AM33_2,  {IMM32_HIGH8, FSM3, FSM2}},
+
+{ "fmadd",     0xfb800000,  0xfffc0000,  0,    FMT_D10,AM33_2,  {FSN3, FSN2, FSN1, FSACC}},
+{ "fmsub",     0xfb840000,  0xfffc0000,  0,    FMT_D10,AM33_2,  {FSN3, FSN2, FSN1, FSACC}},
+{ "fnmadd",    0xfb900000,  0xfffc0000,  0,    FMT_D10,AM33_2,  {FSN3, FSN2, FSN1, FSACC}},
+{ "fnmsub",    0xfb940000,  0xfffc0000,  0,    FMT_D10,AM33_2,  {FSN3, FSN2, FSN1, FSACC}},
+
 /* UDF instructions.  */
 { "udf00",     0xf600,      0xfff0,      0,    FMT_D0, 0,      {DM1, DN0}},
 { "udf00",     0xf90000,    0xfffc00,    0,    FMT_D1, 0,      {SIMM8, DN0}},
@@ -1173,28 +1297,18 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "mulqu",     0xfb140000,  0xfffc0000,  0,    FMT_D2, AM30,   {SIMM16, DN0}},
 { "mulqu",     0xfd140000,  0xfffc0000,  0,    FMT_D4, AM30,   {IMM32, DN0}},
 { "sat16",     0xf640,      0xfff0,      0,    FMT_D0, AM30,   {DM1, DN0}},
-/* start-sanitize-am33 */
 { "sat16",     0xf9ab00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 
 { "sat24",     0xf650,      0xfff0,      0,    FMT_D0, AM30,   {DM1, DN0}},
-/* start-sanitize-am33 */
 { "sat24",     0xfbaf0000,  0xffff00ff,  0,    FMT_D7, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 
-/* start-sanitize-am33 */
 { "bsch",      0xfbff0000,  0xffff000f,  0,    FMT_D7, AM33,   {RM2, RN0, RD2}},
-/* end-sanitize-am33 */
 { "bsch",      0xf670,      0xfff0,      0,    FMT_D0, AM30,   {DM1, DN0}},
-/* start-sanitize-am33 */
 { "bsch",      0xf9fb00,    0xffff00,    0,    FMT_D6, AM33,   {RM2, RN0}},
-/* end-sanitize-am33 */
 
 /* Extension.  We need some instruction to trigger "emulated syscalls"
    for our simulator.  */
-/* start-sanitize-am33 */
 { "syscall",   0xf0e0,      0xfff0,      0,    FMT_D0, AM33,   {IMM4}},
-/* end-sanitize-am33 */
 { "syscall",    0xf0c0,      0xffff,      0,    FMT_D0, 0,     {UNUSED}},
 
 /* Extension.  When talking to the simulator, gdb requires some instruction
@@ -1205,7 +1319,6 @@ const struct mn10300_opcode mn10300_opcodes[] = {
    both mn10x00 architectures.  */
 { "break",     0xff,        0xff,        0,    FMT_S0, 0,      {UNUSED}},
 
-/* start-sanitize-am33 */
 { "add_add",   0xf7000000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "add_add",   0xf7100000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "add_add",   0xf7040000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
@@ -1214,10 +1327,10 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "add_sub",   0xf7300000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "add_sub",   0xf7240000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
 { "add_sub",   0xf7340000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
-{ "add_cmp",   0xf7400000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "add_cmp",   0xf7500000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "add_cmp",   0xf7440000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
-{ "add_cmp",   0xf7540000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
+{ "add_cmp",   0xf7400000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "add_cmp",   0xf7500000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "add_cmp",   0xf7440000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
+{ "add_cmp",   0xf7540000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
 { "add_mov",   0xf7600000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "add_mov",   0xf7700000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "add_mov",   0xf7640000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
@@ -1234,30 +1347,30 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "add_asl",   0xf7d00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
 { "add_asl",   0xf7c40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
 { "add_asl",   0xf7d40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
-{ "cmp_add",   0xf7010000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "cmp_add",   0xf7110000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "cmp_add",   0xf7050000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
-{ "cmp_add",   0xf7150000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
-{ "cmp_sub",   0xf7210000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "cmp_sub",   0xf7310000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "cmp_sub",   0xf7250000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
-{ "cmp_sub",   0xf7350000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
-{ "cmp_mov",   0xf7610000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "cmp_mov",   0xf7710000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "cmp_mov",   0xf7650000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
-{ "cmp_mov",   0xf7750000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
-{ "cmp_asr",   0xf7810000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "cmp_asr",   0xf7910000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
-{ "cmp_asr",   0xf7850000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
-{ "cmp_asr",   0xf7950000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
-{ "cmp_lsr",   0xf7a10000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "cmp_lsr",   0xf7b10000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
-{ "cmp_lsr",   0xf7a50000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
-{ "cmp_lsr",   0xf7b50000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
-{ "cmp_asl",   0xf7c10000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "cmp_asl",   0xf7d10000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
-{ "cmp_asl",   0xf7c50000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
-{ "cmp_asl",   0xf7d50000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
+{ "cmp_add",   0xf7010000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "cmp_add",   0xf7110000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "cmp_add",   0xf7050000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
+{ "cmp_add",   0xf7150000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
+{ "cmp_sub",   0xf7210000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "cmp_sub",   0xf7310000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "cmp_sub",   0xf7250000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
+{ "cmp_sub",   0xf7350000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
+{ "cmp_mov",   0xf7610000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "cmp_mov",   0xf7710000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "cmp_mov",   0xf7650000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
+{ "cmp_mov",   0xf7750000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
+{ "cmp_asr",   0xf7810000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "cmp_asr",   0xf7910000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
+{ "cmp_asr",   0xf7850000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
+{ "cmp_asr",   0xf7950000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
+{ "cmp_lsr",   0xf7a10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "cmp_lsr",   0xf7b10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
+{ "cmp_lsr",   0xf7a50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
+{ "cmp_lsr",   0xf7b50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
+{ "cmp_asl",   0xf7c10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "cmp_asl",   0xf7d10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
+{ "cmp_asl",   0xf7c50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
+{ "cmp_asl",   0xf7d50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, IMM4_2, RN0}},
 { "sub_add",   0xf7020000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "sub_add",   0xf7120000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "sub_add",   0xf7060000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
@@ -1266,10 +1379,10 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "sub_sub",   0xf7320000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "sub_sub",   0xf7260000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
 { "sub_sub",   0xf7360000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
-{ "sub_cmp",   0xf7420000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "sub_cmp",   0xf7520000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "sub_cmp",   0xf7460000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
-{ "sub_cmp",   0xf7560000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
+{ "sub_cmp",   0xf7420000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "sub_cmp",   0xf7520000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "sub_cmp",   0xf7460000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
+{ "sub_cmp",   0xf7560000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
 { "sub_mov",   0xf7620000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "sub_mov",   0xf7720000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "sub_mov",   0xf7660000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
@@ -1294,10 +1407,10 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "mov_sub",   0xf7330000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "mov_sub",   0xf7270000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
 { "mov_sub",   0xf7370000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
-{ "mov_cmp",   0xf7430000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "mov_cmp",   0xf7530000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "mov_cmp",   0xf7470000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
-{ "mov_cmp",   0xf7570000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
+{ "mov_cmp",   0xf7430000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "mov_cmp",   0xf7530000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "mov_cmp",   0xf7470000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
+{ "mov_cmp",   0xf7570000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_6, RN4, SIMM4_2, RN0}},
 { "mov_mov",   0xf7630000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "mov_mov",   0xf7730000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "mov_mov",   0xf7670000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_6, RN4, RM2, RN0}},
@@ -1318,8 +1431,8 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "and_add",   0xf7180000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "and_sub",   0xf7280000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "and_sub",   0xf7380000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "and_cmp",   0xf7480000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "and_cmp",   0xf7580000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "and_cmp",   0xf7480000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "and_cmp",   0xf7580000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "and_mov",   0xf7680000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "and_mov",   0xf7780000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "and_asr",   0xf7880000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
@@ -1328,26 +1441,26 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "and_lsr",   0xf7b80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
 { "and_asl",   0xf7c80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "and_asl",   0xf7d80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
-{ "dmach_add", 0xf7090000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "dmach_add", 0xf7190000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "dmach_sub", 0xf7290000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "dmach_sub", 0xf7390000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "dmach_cmp", 0xf7490000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "dmach_cmp", 0xf7590000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "dmach_mov", 0xf7690000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "dmach_mov", 0xf7790000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "dmach_asr", 0xf7890000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "dmach_asr", 0xf7990000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
-{ "dmach_lsr", 0xf7a90000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "dmach_lsr", 0xf7b90000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
-{ "dmach_asl", 0xf7c90000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "dmach_asl", 0xf7d90000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
+{ "dmach_add", 0xf7090000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "dmach_add", 0xf7190000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "dmach_sub", 0xf7290000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "dmach_sub", 0xf7390000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "dmach_cmp", 0xf7490000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "dmach_cmp", 0xf7590000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "dmach_mov", 0xf7690000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "dmach_mov", 0xf7790000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "dmach_asr", 0xf7890000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "dmach_asr", 0xf7990000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
+{ "dmach_lsr", 0xf7a90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "dmach_lsr", 0xf7b90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
+{ "dmach_asl", 0xf7c90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "dmach_asl", 0xf7d90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, IMM4_2, RN0}},
 { "xor_add",   0xf70a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "xor_add",   0xf71a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "xor_sub",   0xf72a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "xor_sub",   0xf73a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "xor_cmp",   0xf74a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "xor_cmp",   0xf75a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "xor_cmp",   0xf74a0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "xor_cmp",   0xf75a0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "xor_mov",   0xf76a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "xor_mov",   0xf77a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "xor_asr",   0xf78a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
@@ -1360,8 +1473,8 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "swhw_add",  0xf71b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "swhw_sub",  0xf72b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "swhw_sub",  0xf73b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "swhw_cmp",  0xf74b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "swhw_cmp",  0xf75b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "swhw_cmp",  0xf74b0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "swhw_cmp",  0xf75b0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "swhw_mov",  0xf76b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "swhw_mov",  0xf77b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "swhw_asr",  0xf78b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
@@ -1374,8 +1487,8 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "or_add",    0xf71c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "or_sub",    0xf72c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "or_sub",    0xf73c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "or_cmp",    0xf74c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "or_cmp",    0xf75c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "or_cmp",    0xf74c0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "or_cmp",    0xf75c0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "or_mov",    0xf76c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "or_mov",    0xf77c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "or_asr",    0xf78c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
@@ -1388,8 +1501,8 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "sat16_add", 0xf71d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "sat16_sub", 0xf72d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "sat16_sub", 0xf73d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
-{ "sat16_cmp", 0xf74d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
-{ "sat16_cmp", 0xf75d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
+{ "sat16_cmp", 0xf74d0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
+{ "sat16_cmp", 0xf75d0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "sat16_mov", 0xf76d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
 { "sat16_mov", 0xf77d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, SIMM4_2, RN0}},
 { "sat16_asr", 0xf78d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM6, RN4, RM2, RN0}},
@@ -1401,8 +1514,8 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 /* Ugh.  Synthetic instructions.  */
 { "add_and",   0xf7080000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "add_and",   0xf7180000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
-{ "add_dmach", 0xf7090000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "add_dmach", 0xf7190000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
+{ "add_dmach", 0xf7090000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "add_dmach", 0xf7190000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
 { "add_or",    0xf70c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "add_or",    0xf71c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
 { "add_sat16", 0xf70d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
@@ -1417,12 +1530,12 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "asl_add",   0xf7d40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
 { "asl_and",   0xf7c80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "asl_and",   0xf7d80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
-{ "asl_cmp",   0xf7c10000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "asl_cmp",   0xf7d10000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4, }},
-{ "asl_cmp",   0xf7c50000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
-{ "asl_cmp",   0xf7d50000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
-{ "asl_dmach", 0xf7c90000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "asl_dmach", 0xf7d90000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
+{ "asl_cmp",   0xf7c10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "asl_cmp",   0xf7d10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4, }},
+{ "asl_cmp",   0xf7c50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
+{ "asl_cmp",   0xf7d50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
+{ "asl_dmach", 0xf7c90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "asl_dmach", 0xf7d90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
 { "asl_mov",   0xf7c30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "asl_mov",   0xf7d30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
 { "asl_mov",   0xf7c70000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
@@ -1445,12 +1558,12 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "asr_add",   0xf7940000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
 { "asr_and",   0xf7880000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "asr_and",   0xf7980000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
-{ "asr_cmp",   0xf7810000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "asr_cmp",   0xf7910000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4, }},
-{ "asr_cmp",   0xf7850000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
-{ "asr_cmp",   0xf7950000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
-{ "asr_dmach", 0xf7890000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "asr_dmach", 0xf7990000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
+{ "asr_cmp",   0xf7810000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "asr_cmp",   0xf7910000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4, }},
+{ "asr_cmp",   0xf7850000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
+{ "asr_cmp",   0xf7950000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
+{ "asr_dmach", 0xf7890000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "asr_dmach", 0xf7990000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
 { "asr_mov",   0xf7830000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "asr_mov",   0xf7930000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
 { "asr_mov",   0xf7870000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
@@ -1467,30 +1580,30 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "asr_swhw",  0xf79b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
 { "asr_xor",   0xf78a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "asr_xor",   0xf79a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
-{ "cmp_and",   0xf7480000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "cmp_and",   0xf7580000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
-{ "cmp_dmach", 0xf7490000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "cmp_dmach", 0xf7590000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
-{ "cmp_or",    0xf74c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "cmp_or",    0xf75c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
-{ "cmp_sat16", 0xf74d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "cmp_sat16", 0xf75d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
-{ "cmp_swhw",  0xf74b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "cmp_swhw",  0xf75b0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
-{ "cmp_xor",   0xf74a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "cmp_xor",   0xf75a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
+{ "cmp_and",   0xf7480000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "cmp_and",   0xf7580000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
+{ "cmp_dmach", 0xf7490000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "cmp_dmach", 0xf7590000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
+{ "cmp_or",    0xf74c0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "cmp_or",    0xf75c0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
+{ "cmp_sat16", 0xf74d0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "cmp_sat16", 0xf75d0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
+{ "cmp_swhw",  0xf74b0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "cmp_swhw",  0xf75b0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
+{ "cmp_xor",   0xf74a0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "cmp_xor",   0xf75a0000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
 { "lsr_add",   0xf7a00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "lsr_add",   0xf7b00000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
 { "lsr_add",   0xf7a40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
 { "lsr_add",   0xf7b40000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
 { "lsr_and",   0xf7a80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "lsr_and",   0xf7b80000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
-{ "lsr_cmp",   0xf7a10000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "lsr_cmp",   0xf7b10000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4, }},
-{ "lsr_cmp",   0xf7a50000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
-{ "lsr_cmp",   0xf7b50000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
-{ "lsr_dmach", 0xf7a90000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "lsr_dmach", 0xf7b90000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
+{ "lsr_cmp",   0xf7a10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "lsr_cmp",   0xf7b10000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4, }},
+{ "lsr_cmp",   0xf7a50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
+{ "lsr_cmp",   0xf7b50000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, SIMM4_6, RN4}},
+{ "lsr_dmach", 0xf7a90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "lsr_dmach", 0xf7b90000,  0xffff0000,  0x0,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
 { "lsr_mov",   0xf7a30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "lsr_mov",   0xf7b30000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
 { "lsr_mov",   0xf7a70000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, SIMM4_6, RN4}},
@@ -1509,8 +1622,8 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "lsr_xor",   0xf7ba0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {IMM4_2, RN0, RM6, RN4}},
 { "mov_and",   0xf7680000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "mov_and",   0xf7780000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
-{ "mov_dmach", 0xf7690000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "mov_dmach", 0xf7790000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
+{ "mov_dmach", 0xf7690000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "mov_dmach", 0xf7790000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
 { "mov_or",    0xf76c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "mov_or",    0xf77c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
 { "mov_sat16", 0xf76d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
@@ -1521,8 +1634,8 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "mov_xor",   0xf77a0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
 { "sub_and",   0xf7280000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "sub_and",   0xf7380000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
-{ "sub_dmach", 0xf7290000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
-{ "sub_dmach", 0xf7390000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
+{ "sub_dmach", 0xf7290000,  0xffff0000,  0x0,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
+{ "sub_dmach", 0xf7390000,  0xffff0000,  0x0,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
 { "sub_or",    0xf72c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
 { "sub_or",    0xf73c0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {SIMM4_2, RN0, RM6, RN4}},
 { "sub_sat16", 0xf72d0000,  0xffff0000,  0xa,  FMT_D10, AM33,   {RM2, RN0, RM6, RN4}},
@@ -1553,8 +1666,7 @@ const struct mn10300_opcode mn10300_opcodes[] = {
 { "leq_mov",   0xf7e00008,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
 { "lne_mov",   0xf7e00009,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
 { "lra_mov",   0xf7e0000a,  0xffff000f,  0x22, FMT_D10, AM33,   {MEMINC2 (RN4,SIMM4_2), RM6}},
-/* end-sanitize-am33 */
+
 { 0, 0, 0, 0, 0, 0, {0}},
 
 } ;
This page took 0.045669 seconds and 4 git commands to generate.