]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - opcodes/v850-opc.c
* config/sh/tm-sh.h (BELIEVE_PCC_PROMOTION): Define, so that
[thirdparty/binutils-gdb.git] / opcodes / v850-opc.c
index 46dc637213fc110044ca70b5b0282cbd46bec830..5376bdc09ad601ed63fca752d85f9ae8d70be4b2 100644 (file)
@@ -277,7 +277,6 @@ extract_u9 (insn, invalid)
   return ret;
 }
 
-/* start-sanitize-v850e */
 static unsigned long
 insert_spe (insn, value, errmsg)
      unsigned long insn;
@@ -341,39 +340,39 @@ extract_i5div (insn, invalid)
 const struct v850_operand v850_operands[] =
 {
 #define UNUSED 0
-  { 0, 0, 0, 0, 0 }, 
+  { 0, 0, NULL, NULL, 0 }, 
 
 /* The R1 field in a format 1, 6, 7, or 9 insn. */
-#define R1     (UNUSED+1)
-  { 5, 0, 0, 0, V850_OPERAND_REG }, 
+#define R1     (UNUSED + 1)
+  { 5, 0, NULL, NULL, V850_OPERAND_REG }, 
 
 /* As above, but register 0 is not allowed.  */
 #define R1_NOTR0 (R1 + 1)
-  { 5, 0, 0, 0, V850_OPERAND_REG | V850_NOT_R0 }, 
+  { 5, 0, NULL, NULL, V850_OPERAND_REG | V850_NOT_R0 }, 
 
 /* The R2 field in a format 1, 2, 4, 5, 6, 7, 9 insn. */
 #define R2     (R1_NOTR0 + 1)
-  { 5, 11, 0, 0, V850_OPERAND_REG },
+  { 5, 11, NULL, NULL, V850_OPERAND_REG },
 
 /* As above, but register 0 is not allowed.  */
 #define R2_NOTR0 (R2 + 1)
-  { 5, 11, 0, 0, V850_OPERAND_REG | V850_NOT_R0 },
+  { 5, 11, NULL, NULL, V850_OPERAND_REG | V850_NOT_R0 },
 
 /* The imm5 field in a format 2 insn. */
 #define I5     (R2_NOTR0 + 1)
-  { 5, 0, 0, 0, V850_OPERAND_SIGNED }, 
+  { 5, 0, NULL, NULL, V850_OPERAND_SIGNED }, 
 
 /* The unsigned imm5 field in a format 2 insn. */
 #define I5U    (I5 + 1)
-  { 5, 0, 0, 0, 0 },
+  { 5, 0, NULL, NULL, 0 },
 
 /* The imm16 field in a format 6 insn. */
 #define I16    (I5U + 1)
-  { 16, 16, 0, 0, V850_OPERAND_SIGNED }, 
+  { 16, 16, NULL, NULL, V850_OPERAND_SIGNED }, 
 
 /* The signed disp7 field in a format 4 insn. */
 #define D7     (I16 + 1)
-  { 7, 0, 0, 0, 0},
+  { 7, 0, NULL, NULL, 0},
 
 /* The disp16 field in a format 6 insn. */
 #define D16_15 (D7 + 1)
@@ -381,11 +380,11 @@ const struct v850_operand v850_operands[] =
 
 /* The 3 bit immediate field in format 8 insn.  */
 #define B3     (D16_15 + 1)
-  { 3, 11, 0, 0, 0 },
+  { 3, 11, NULL, NULL, 0 },
 
 /* The 4 bit condition code in a setf instruction */
 #define CCCC   (B3 + 1)
-  { 4, 0, 0, 0, V850_OPERAND_CC },
+  { 4, 0, NULL, NULL, V850_OPERAND_CC },
 
 /* The unsigned DISP8 field in a format 4 insn. */
 #define D8_7   (CCCC + 1)
@@ -397,23 +396,23 @@ const struct v850_operand v850_operands[] =
 
 /* System register operands.  */
 #define SR1    (D8_6 + 1)
-  { 5, 0, 0, 0, V850_OPERAND_SRG },
+  { 5, 0, NULL, NULL, V850_OPERAND_SRG },
 
 /* EP Register.  */
 #define EP     (SR1 + 1)
-  { 0, 0, 0, 0, V850_OPERAND_EP },
+  { 0, 0, NULL, NULL, V850_OPERAND_EP },
 
 /* The imm16 field (unsigned) in a format 6 insn. */
 #define I16U   (EP + 1)
-  { 16, 16, 0, 0, 0}, 
+  { 16, 16, NULL, NULL, 0}, 
 
 /* The R2 field as a system register.  */
 #define SR2    (I16U + 1)
-  { 5, 11, 0, 0, V850_OPERAND_SRG },
+  { 5, 11, NULL, NULL, V850_OPERAND_SRG },
 
 /* The disp16 field in a format 8 insn. */
 #define D16    (SR2 + 1)
-  { 16, 16, 0, 0, V850_OPERAND_SIGNED }, 
+  { 16, 16, NULL, NULL, V850_OPERAND_SIGNED }, 
 
 /* The DISP22 field in a format 4 insn, relaxable. */
 #define D9_RELAX       (D16 + 1)
@@ -430,7 +429,7 @@ const struct v850_operand v850_operands[] =
   
 /* The signed disp4 field in a format 4 insn. */
 #define D4     (D22 + 1)
-  { 4, 0, 0, 0, 0},
+  { 4, 0, NULL, NULL, 0},
 
 /* The unsigned disp5 field in a format 4 insn. */
 #define D5_4   (D4 + 1)
@@ -442,11 +441,11 @@ const struct v850_operand v850_operands[] =
 
 /* Third register in conditional moves. */
 #define R3     (D16_16 + 1)
-  { 5, 27, 0, 0, V850_OPERAND_REG },
+  { 5, 27, NULL, NULL, V850_OPERAND_REG },
 
 /* Condition code in conditional moves.  */
 #define MOVCC  (R3 + 1)
-  { 4, 17, 0, 0, V850_OPERAND_CC },
+  { 4, 17, NULL, NULL, V850_OPERAND_CC },
 
 /* The imm9 field in a multiply word. */
 #define I9     (MOVCC + 1)
@@ -458,27 +457,27 @@ const struct v850_operand v850_operands[] =
 
 /* A list of registers in a prepare/dispose instruction.  */
 #define LIST12 (U9 + 1)
-  { -1, 0xffe00001, 0, 0, V850E_PUSH_POP }, 
+  { -1, 0xffe00001, NULL, NULL, V850E_PUSH_POP }, 
 
 /* The IMM6 field in a call instruction. */
 #define I6     (LIST12 + 1)
-  { 6, 0, 0, 0, 0 }, 
+  { 6, 0, NULL, NULL, 0 }, 
 
 /* The 16 bit immediate following a 32 bit instruction.  */
 #define IMM16  (I6 + 1)
-  { 16, 16, 0, 0, V850_OPERAND_SIGNED | V850E_IMMEDIATE16 }, 
+  { 16, 16, NULL, NULL, V850_OPERAND_SIGNED | V850E_IMMEDIATE16 }, 
 
 /* The 32 bit immediate following a 32 bit instruction.  */
 #define IMM32  (IMM16 + 1)
-  { 0, 0, 0, 0, V850E_IMMEDIATE32 }, 
+  { 0, 0, NULL, NULL, V850E_IMMEDIATE32 }, 
 
 /* The imm5 field in a push/pop instruction. */
 #define IMM5   (IMM32 + 1)
-  { 5, 1, 0, 0, 0 }, 
+  { 5, 1, NULL, NULL, 0 }, 
 
 /* Reg2 in dispose instruction. */
 #define R2DISPOSE      (IMM5 + 1)
-  { 5, 16, 0, 0, V850_OPERAND_REG | V850_NOT_R0 },
+  { 5, 16, NULL, NULL, V850_OPERAND_REG | V850_NOT_R0 },
 
 /* Stack pointer in prepare instruction. */
 #define SP     (R2DISPOSE + 1)
@@ -493,11 +492,11 @@ const struct v850_operand v850_operands[] =
 
   /* The list of registers in a PUSHMH/POPMH instruction.  */
 #define LIST18_H (I5DIV + 1)
-  { -1, 0xfff8000f, 0, 0, V850E_PUSH_POP }, 
+  { -1, 0xfff8000f, NULL, NULL, V850E_PUSH_POP }, 
 
   /* The list of registers in a PUSHML/POPML instruction.  */
 #define LIST18_L (LIST18_H + 1)
-  { -1, 0xfff8001f, 0, 0, V850E_PUSH_POP }, /* The setting of the 4th bit is a flag to disassmble() in v850-dis.c */
+  { -1, 0xfff8001f, NULL, NULL, V850E_PUSH_POP }, /* The setting of the 4th bit is a flag to disassmble() in v850-dis.c */
 
 /* end-sanitize-v850eq */
 } ; 
@@ -524,7 +523,7 @@ const struct v850_operand v850_operands[] =
 
    The format of the opcode table is:
 
-   NAME                OPCODE                  MASK                   { OPERANDS }        MEMOP
+   NAME                OPCODE                  MASK                   { OPERANDS }        MEMOP    PROCESSOR
 
    NAME is the name of the instruction.
    OPCODE is the instruction opcode.
@@ -532,181 +531,209 @@ const struct v850_operand v850_operands[] =
      which bits in the actual opcode must match OPCODE.
    OPERANDS is the list of operands.
    MEMOP specifies which operand (if any) is a memory operand.
+   PROCESSOR specifies which CPUs support the opcode.
    
    The disassembler reads the table in order and prints the first
    instruction which matches, so this table is sorted to put more
    specific instructions before more general instructions.  It is also
-   sorted by major opcode.  */
+   sorted by major opcode.
+
+   The table is also sorted by name.  This is used by the assembler.
+   When parsing an instruction the assembler finds the first occurance
+   of the name of the instruciton in this table and then attempts to
+   match the instruction's arguments with description of the operands
+   associated with the entry it has just found in this table.  If the
+   match fails the assembler looks at the next entry in this table.
+   If that entry has the same name as the previous entry, then it
+   tries to match the instruction against that entry and so on.  This
+   is how the assembler copes with multiple, different formats of the
+   same instruction.  */
 
 const struct v850_opcode v850_opcodes[] =
 {
-{ "breakpoint",        0xffff,                 0xffff,                 {UNUSED},               0 },
+{ "breakpoint",        0xffff,                 0xffff,                 {UNUSED},               0, PROCESSOR_ALL },
 
-{ "jmp",       one (0x0060),           one (0xffe0),           {R1},                   1 },
+{ "jmp",       one (0x0060),           one (0xffe0),           {R1},                   1, PROCESSOR_ALL },
   
 /* load/store instructions */
-#ifdef ARCH_v850eq
-{ "sld.bu",    one (0x0300),           one (0x0780),           {D7,   EP,   R2_NOTR0}, 1 },
-{ "sld.hu",    one (0x0400),           one (0x0780),           {D8_7, EP,   R2_NOTR0}, 1 },
-{ "sld.b",      one (0x0060),          one (0x07f0),           {D4,   EP,   R2},       1 },
-{ "sld.h",      one (0x0070),          one (0x07f0),           {D5_4, EP,   R2},       1 },
-#else
-{ "sld.b",     one (0x0300),           one (0x0780),           {D7,   EP,   R2},       1 },
-{ "sld.h",     one (0x0400),           one (0x0780),           {D8_7, EP,   R2},       1 },
-{ "sld.bu",     one (0x0060),          one (0x07f0),           {D4,   EP,   R2_NOTR0}, 1 },
-{ "sld.hu",     one (0x0070),          one (0x07f0),           {D5_4, EP,   R2_NOTR0}, 1 },
-#endif
-{ "sld.w",     one (0x0500),           one (0x0781),           {D8_6, EP,   R2},       1 },
-{ "sst.b",     one (0x0380),           one (0x0780),           {R2,   D7,   EP},       2 },
-{ "sst.h",     one (0x0480),           one (0x0780),           {R2,   D8_7, EP},       2 },
-{ "sst.w",     one (0x0501),           one (0x0781),           {R2,   D8_6, EP},       2 },
+/* start-sanitize-v850eq */
+{ "sld.bu",    one (0x0300),           one (0x0780),           {D7,   EP,   R2_NOTR0}, 1, PROCESSOR_V850EQ },
+/* end-sanitize-v850eq */
+/* start-sanitize-v850e */
+{ "sld.bu",     one (0x0060),          one (0x07f0),           {D4,   EP,   R2_NOTR0}, 1, PROCESSOR_V850E },
+/* end-sanitize-v850e */
+  
+/* start-sanitize-v850eq */
+{ "sld.hu",    one (0x0400),           one (0x0780),           {D8_7, EP,   R2_NOTR0}, 1, PROCESSOR_V850EQ },
+/* end-sanitize-v850eq */
+/* start-sanitize-v850e */
+{ "sld.hu",     one (0x0070),          one (0x07f0),           {D5_4, EP,   R2_NOTR0}, 1, PROCESSOR_V850E },
+/* end-sanitize-v850e */
+  
+/* start-sanitize-v850eq */
+{ "sld.b",      one (0x0060),          one (0x07f0),           {D4,   EP,   R2},       1, PROCESSOR_V850EQ },
+/* end-sanitize-v850eq */
+/* start-sanitize-v850e */
+{ "sld.b",     one (0x0300),           one (0x0780),           {D7,   EP,   R2},       1, PROCESSOR_V850E },
+/* end-sanitize-v850e */
+{ "sld.b",     one (0x0300),           one (0x0780),           {D7,   EP,   R2},       1, PROCESSOR_V850 },
 
 /* start-sanitize-v850eq */
-{ "pushml",    two (0x07e0, 0x0001),   two (0xfff0, 0x0007),   {LIST18_L},             0 },
-{ "pushmh",    two (0x07e0, 0x0003),   two (0xfff0, 0x0007),   {LIST18_H},             0 },
-{ "popml",     two (0x07f0, 0x0001),   two (0xfff0, 0x0007),   {LIST18_L},             0 },
-{ "popmh",     two (0x07f0, 0x0003),   two (0xfff0, 0x0007),   {LIST18_H},             0 },
+{ "sld.h",      one (0x0070),          one (0x07f0),           {D5_4, EP,   R2},       1, PROCESSOR_V850EQ },
+/* end-sanitize-v850eq */
+/* start-sanitize-v850e */
+{ "sld.h",     one (0x0400),           one (0x0780),           {D8_7, EP,   R2},       1, PROCESSOR_V850E },
 /* end-sanitize-v850e */
   
+{ "sld.h",     one (0x0400),           one (0x0780),           {D8_7, EP,   R2},       1, PROCESSOR_V850 },
+{ "sld.w",     one (0x0500),           one (0x0781),           {D8_6, EP,   R2},       1, PROCESSOR_ALL },
+{ "sst.b",     one (0x0380),           one (0x0780),           {R2,   D7,   EP},       2, PROCESSOR_ALL },
+{ "sst.h",     one (0x0480),           one (0x0780),           {R2,   D8_7, EP},       2, PROCESSOR_ALL },
+{ "sst.w",     one (0x0501),           one (0x0781),           {R2,   D8_6, EP},       2, PROCESSOR_ALL },
+
+/* start-sanitize-v850eq */
+{ "pushml",    two (0x07e0, 0x0001),   two (0xfff0, 0x0007),   {LIST18_L},             0, PROCESSOR_V850EQ },
+{ "pushmh",    two (0x07e0, 0x0003),   two (0xfff0, 0x0007),   {LIST18_H},             0, PROCESSOR_V850EQ },
+{ "popml",     two (0x07f0, 0x0001),   two (0xfff0, 0x0007),   {LIST18_L},             0, PROCESSOR_V850EQ },
+{ "popmh",     two (0x07f0, 0x0003),   two (0xfff0, 0x0007),   {LIST18_H},             0, PROCESSOR_V850EQ },
+/* end-sanitize-v850eq */
+  
 /* start-sanitize-v850e */  
-{ "prepare",    two (0x0780, 0x0003),  two (0xffc0, 0x001f),   {LIST12, IMM5, SP},     0 },
-{ "prepare",    two (0x0780, 0x000b),  two (0xffc0, 0x001f),   {LIST12, IMM5, IMM16},  0 },
-{ "prepare",    two (0x0780, 0x0013),  two (0xffc0, 0x001f),   {LIST12, IMM5, IMM16},  0 },
-{ "prepare",    two (0x0780, 0x001b),  two (0xffc0, 0x001f),   {LIST12, IMM5, IMM32},  0 },
-{ "prepare",    two (0x0780, 0x0001),  two (0xffc0, 0x001f),   {LIST12, IMM5},         0 },
-{ "dispose",   one (0x0640),           one (0xffc0),           {IMM5, LIST12, R2DISPOSE},0 },
-{ "dispose",   two (0x0640, 0x0000),   two (0xffc0, 0x001f),   {IMM5, LIST12},         0 },
+{ "prepare",    two (0x0780, 0x0003),  two (0xffc0, 0x001f),   {LIST12, IMM5, SP},     0, PROCESSOR_NOT_V850 },
+{ "prepare",    two (0x0780, 0x000b),  two (0xffc0, 0x001f),   {LIST12, IMM5, IMM16},  0, PROCESSOR_NOT_V850 },
+{ "prepare",    two (0x0780, 0x0013),  two (0xffc0, 0x001f),   {LIST12, IMM5, IMM16},  0, PROCESSOR_NOT_V850 },
+{ "prepare",    two (0x0780, 0x001b),  two (0xffc0, 0x001f),   {LIST12, IMM5, IMM32},  0, PROCESSOR_NOT_V850 },
+{ "prepare",    two (0x0780, 0x0001),  two (0xffc0, 0x001f),   {LIST12, IMM5},         0, PROCESSOR_NOT_V850 },
+{ "dispose",   one (0x0640),           one (0xffc0),           {IMM5, LIST12, R2DISPOSE},0, PROCESSOR_NOT_V850 },
+{ "dispose",   two (0x0640, 0x0000),   two (0xffc0, 0x001f),   {IMM5, LIST12},         0, PROCESSOR_NOT_V850 },
 /* end-sanitize-v850e */
 
-{ "ld.b",      two (0x0700, 0x0000),   two (0x07e0, 0x0000),   {D16, R1, R2},          1 },
-{ "ld.h",      two (0x0720, 0x0000),   two (0x07e0, 0x0001),   {D16_15, R1, R2},       1 },
-{ "ld.w",      two (0x0720, 0x0001),   two (0x07e0, 0x0001),   {D16_15, R1, R2},       1 },
+{ "ld.b",      two (0x0700, 0x0000),   two (0x07e0, 0x0000),   {D16, R1, R2},          1, PROCESSOR_ALL },
+{ "ld.h",      two (0x0720, 0x0000),   two (0x07e0, 0x0001),   {D16_15, R1, R2},       1, PROCESSOR_ALL },
+{ "ld.w",      two (0x0720, 0x0001),   two (0x07e0, 0x0001),   {D16_15, R1, R2},       1, PROCESSOR_ALL },
 /* start-sanitize-v850e */
-{ "ld.bu",     two (0x0780, 0x0001),   two (0x07c0, 0x0001),   {D16_16, R1, R2_NOTR0}, 1 },
-{ "ld.hu",     two (0x07e0, 0x0001),   two (0x07e0, 0x0001),   {D16_15, R1, R2_NOTR0}, 1 },  
+{ "ld.bu",     two (0x0780, 0x0001),   two (0x07c0, 0x0001),   {D16_16, R1, R2_NOTR0}, 1, PROCESSOR_NOT_V850 },
+{ "ld.hu",     two (0x07e0, 0x0001),   two (0x07e0, 0x0001),   {D16_15, R1, R2_NOTR0}, 1, PROCESSOR_NOT_V850 },  
 /* end-sanitize-v850e */
-{ "st.b",      two (0x0740, 0x0000),   two (0x07e0, 0x0000),   {R2, D16, R1},          2 },
-{ "st.h",      two (0x0760, 0x0000),   two (0x07e0, 0x0001),   {R2, D16_15, R1},       2 },
-{ "st.w",      two (0x0760, 0x0001),   two (0x07e0, 0x0001),   {R2, D16_15, R1},       2 },
+{ "st.b",      two (0x0740, 0x0000),   two (0x07e0, 0x0000),   {R2, D16, R1},          2, PROCESSOR_ALL },
+{ "st.h",      two (0x0760, 0x0000),   two (0x07e0, 0x0001),   {R2, D16_15, R1},       2, PROCESSOR_ALL },
+{ "st.w",      two (0x0760, 0x0001),   two (0x07e0, 0x0001),   {R2, D16_15, R1},       2, PROCESSOR_ALL },
 
 /* start-sanitize-v850e */
 /* byte swap/extend instructions */
-{ "zxb",       one (0x0080),           one (0xffe0),           {R1_NOTR0},             0 },
-{ "zxh",       one (0x00c0),           one (0xffe0),           {R1_NOTR0},             0 },
-{ "sxb",       one (0x00a0),           one (0xffe0),           {R1_NOTR0},             0 },
-{ "sxh",       one (0x00e0),           one (0xffe0),           {R1_NOTR0},             0 },
-{ "bsh",       two (0x07e0, 0x0342),   two (0x07ff, 0x07ff),   {R2, R3},               0 },
-{ "bsw",       two (0x07e0, 0x0340),   two (0x07ff, 0x07ff),   {R2, R3},               0 },
-{ "hsw",       two (0x07e0, 0x0344),   two (0x07ff, 0x07ff),   {R2, R3},               0 },
+{ "zxb",       one (0x0080),           one (0xffe0),           {R1_NOTR0},             0, PROCESSOR_NOT_V850 },
+{ "zxh",       one (0x00c0),           one (0xffe0),           {R1_NOTR0},             0, PROCESSOR_NOT_V850 },
+{ "sxb",       one (0x00a0),           one (0xffe0),           {R1_NOTR0},             0, PROCESSOR_NOT_V850 },
+{ "sxh",       one (0x00e0),           one (0xffe0),           {R1_NOTR0},             0, PROCESSOR_NOT_V850 },
+{ "bsh",       two (0x07e0, 0x0342),   two (0x07ff, 0x07ff),   {R2, R3},               0, PROCESSOR_NOT_V850 },
+{ "bsw",       two (0x07e0, 0x0340),   two (0x07ff, 0x07ff),   {R2, R3},               0, PROCESSOR_NOT_V850 },
+{ "hsw",       two (0x07e0, 0x0344),   two (0x07ff, 0x07ff),   {R2, R3},               0, PROCESSOR_NOT_V850 },
 
 /* jump table instructions */
-{ "switch",    one (0x0040),           one (0xffe0),           {R1},                   1 },
-{ "callt",     one (0x0200),           one (0xffc0),           {I6},                   0 },
-{ "ctret",     two (0x07e0, 0x0144),   two (0xffff, 0xffff),   {0},                    0 },
+{ "switch",    one (0x0040),           one (0xffe0),           {R1},                   1, PROCESSOR_NOT_V850 },
+{ "callt",     one (0x0200),           one (0xffc0),           {I6},                   0, PROCESSOR_NOT_V850 },
+{ "ctret",     two (0x07e0, 0x0144),   two (0xffff, 0xffff),   {0},                    0, PROCESSOR_NOT_V850 },
 /* end-sanitize-v850e */
 
 /* arithmetic operation instructions */
-{ "setf",      two (0x07e0, 0x0000),   two (0x07f0, 0xffff),   {CCCC, R2},             0 },
-/* start-sanitize-v850e */
-{ "cmov",      two (0x07e0, 0x0320),   two (0x07e0, 0x07e1),   {MOVCC, R2, R1, R3},    0 },
-{ "cmov",      two (0x07e0, 0x0300),   two (0x07e0, 0x07e1),   {MOVCC, I5, R2, R3},    0 },
-/* end-sanitize-v850e */
-{ "mul",       two (0x07e0, 0x0220),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0 },
-/* start-sanitize-v850e */
-{ "mul",       two (0x07e0, 0x0240),   two (0x07e0, 0x07c3),   {I9, R2, R3},           0 },
-/* end-sanitize-v850e */
-{ "mulu",      two (0x07e0, 0x0222),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0 },
-  
+{ "setf",      two (0x07e0, 0x0000),   two (0x07f0, 0xffff),   {CCCC, R2},             0, PROCESSOR_ALL },
 /* start-sanitize-v850e */
-{ "mulu",      two (0x07e0, 0x0242),   two (0x07e0, 0x07c3),   {U9, R2, R3},           0 },
-{ "div",       two (0x07e0, 0x02c0),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0 },
-{ "divu",      two (0x07e0, 0x02c2),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0 },
-{ "divhu",     two (0x07e0, 0x0282),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0 },
-{ "divh",      two (0x07e0, 0x0280),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0 },
+{ "cmov",      two (0x07e0, 0x0320),   two (0x07e0, 0x07e1),   {MOVCC, R1, R2, R3},    0, PROCESSOR_NOT_V850 },
+{ "cmov",      two (0x07e0, 0x0300),   two (0x07e0, 0x07e1),   {MOVCC, I5, R2, R3},    0, PROCESSOR_NOT_V850 },
+
+{ "mul",       two (0x07e0, 0x0220),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0, PROCESSOR_NOT_V850 },
+{ "mul",       two (0x07e0, 0x0240),   two (0x07e0, 0x07c3),   {I9, R2, R3},           0, PROCESSOR_NOT_V850 },
+{ "mulu",      two (0x07e0, 0x0222),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0, PROCESSOR_NOT_V850 },
+{ "mulu",      two (0x07e0, 0x0242),   two (0x07e0, 0x07c3),   {U9, R2, R3},           0, PROCESSOR_NOT_V850 },
+
+{ "div",       two (0x07e0, 0x02c0),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0, PROCESSOR_NOT_V850 },
+{ "divu",      two (0x07e0, 0x02c2),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0, PROCESSOR_NOT_V850 },
+{ "divhu",     two (0x07e0, 0x0282),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0, PROCESSOR_NOT_V850 },
+{ "divh",      two (0x07e0, 0x0280),   two (0x07e0, 0x07ff),   {R1, R2, R3},           0, PROCESSOR_NOT_V850 },
 /* end-sanitize-v850e */
-{ "divh",      OP  (0x02),             OP_MASK,                {R1, R2_NOTR0},         0 },
+{ "divh",      OP  (0x02),             OP_MASK,                {R1, R2_NOTR0},         0, PROCESSOR_ALL },
   
 /* start-sanitize-v850eq */
-{ "divhn",     two (0x07e0, 0x0280),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0 },
-{ "divhun",    two (0x07e0, 0x0282),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0 },
-{ "divn",      two (0x07e0, 0x02c0),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0 },
-{ "divun",     two (0x07e0, 0x02c2),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0 },
-{ "sdivhn",    two (0x07e0, 0x0180),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0 },
-{ "sdivhun",   two (0x07e0, 0x0182),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0 },
-{ "sdivn",     two (0x07e0, 0x01c0),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0 },
-{ "sdivun",    two (0x07e0, 0x01c2),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0 },
+{ "divhn",     two (0x07e0, 0x0280),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0, PROCESSOR_V850EQ },
+{ "divhun",    two (0x07e0, 0x0282),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0, PROCESSOR_V850EQ },
+{ "divn",      two (0x07e0, 0x02c0),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0, PROCESSOR_V850EQ },
+{ "divun",     two (0x07e0, 0x02c2),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0, PROCESSOR_V850EQ },
+{ "sdivhn",    two (0x07e0, 0x0180),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0, PROCESSOR_V850EQ },
+{ "sdivhun",   two (0x07e0, 0x0182),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0, PROCESSOR_V850EQ },
+{ "sdivn",     two (0x07e0, 0x01c0),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0, PROCESSOR_V850EQ },
+{ "sdivun",    two (0x07e0, 0x01c2),   two (0x07e0, 0x07c3),   {I5DIV, R1, R2, R3},    0, PROCESSOR_V850EQ },
 /* end-sanitize-v850eq */
   
-{ "nop",       one (0x00),             one (0xffff),           {0},                    0 },
-{ "mov",       OP  (0x10),             OP_MASK,                {I5, R2_NOTR0},         0 },
+{ "nop",       one (0x00),             one (0xffff),           {0},                    0, PROCESSOR_ALL },
+{ "mov",       OP  (0x10),             OP_MASK,                {I5, R2_NOTR0},         0, PROCESSOR_ALL },
 /* start-sanitize-v850e */
-{ "mov",       one (0x0620),           one (0xffe0),           {IMM32, R1_NOTR0},      0 },
+{ "mov",       one (0x0620),           one (0xffe0),           {IMM32, R1_NOTR0},      0, PROCESSOR_NOT_V850 },
 /* end-sanitize-v850e */
-{ "mov",        OP  (0x00),            OP_MASK,                {R1, R2_NOTR0},         0 },
-{ "movea",     OP  (0x31),             OP_MASK,                {I16, R1, R2_NOTR0},    0 },
-{ "movhi",     OP  (0x32),             OP_MASK,                {I16U, R1, R2_NOTR0},   0 },
-{ "add",       OP  (0x0e),             OP_MASK,                IF1,                    0 },
-{ "add",       OP  (0x12),             OP_MASK,                IF2,                    0 },
-{ "addi",      OP  (0x30),             OP_MASK,                IF6,                    0 },
-{ "sub",       OP  (0x0d),             OP_MASK,                IF1,                    0 },
-{ "subr",      OP  (0x0c),             OP_MASK,                IF1,                    0 },
-{ "mulh",      OP  (0x17),             OP_MASK,                {I5, R2_NOTR0},         0 },
-{ "mulh",      OP  (0x07),             OP_MASK,                {R1, R2_NOTR0},         0 },
-{ "mulhi",     OP  (0x37),             OP_MASK,                {I16, R1, R2_NOTR0},    0 },
-{ "cmp",       OP  (0x0f),             OP_MASK,                IF1,                    0 },
-{ "cmp",       OP  (0x13),             OP_MASK,                IF2,                    0 },
+{ "mov",        OP  (0x00),            OP_MASK,                {R1, R2_NOTR0},         0, PROCESSOR_ALL },
+{ "movea",     OP  (0x31),             OP_MASK,                {I16, R1, R2_NOTR0},    0, PROCESSOR_ALL },
+{ "movhi",     OP  (0x32),             OP_MASK,                {I16U, R1, R2_NOTR0},   0, PROCESSOR_ALL },
+{ "add",       OP  (0x0e),             OP_MASK,                IF1,                    0, PROCESSOR_ALL },
+{ "add",       OP  (0x12),             OP_MASK,                IF2,                    0, PROCESSOR_ALL },
+{ "addi",      OP  (0x30),             OP_MASK,                IF6,                    0, PROCESSOR_ALL },
+{ "sub",       OP  (0x0d),             OP_MASK,                IF1,                    0, PROCESSOR_ALL },
+{ "subr",      OP  (0x0c),             OP_MASK,                IF1,                    0, PROCESSOR_ALL },
+{ "mulh",      OP  (0x17),             OP_MASK,                {I5, R2_NOTR0},         0, PROCESSOR_ALL },
+{ "mulh",      OP  (0x07),             OP_MASK,                {R1, R2_NOTR0},         0, PROCESSOR_ALL },
+{ "mulhi",     OP  (0x37),             OP_MASK,                {I16, R1, R2_NOTR0},    0, PROCESSOR_ALL },
+{ "cmp",       OP  (0x0f),             OP_MASK,                IF1,                    0, PROCESSOR_ALL },
+{ "cmp",       OP  (0x13),             OP_MASK,                IF2,                    0, PROCESSOR_ALL },
   
 /* saturated operation instructions */
-{ "satadd",    OP (0x11),              OP_MASK,                {I5, R2_NOTR0},         0 },
-{ "satadd",    OP (0x06),              OP_MASK,                {R1, R2_NOTR0},         0 },
-{ "satsub",    OP (0x05),              OP_MASK,                {R1, R2_NOTR0},         0 },
-{ "satsubi",   OP (0x33),              OP_MASK,                {I16, R1, R2_NOTR0},    0 },
-{ "satsubr",   OP (0x04),              OP_MASK,                {R1, R2_NOTR0},         0 },
+{ "satadd",    OP (0x11),              OP_MASK,                {I5, R2_NOTR0},         0, PROCESSOR_ALL },
+{ "satadd",    OP (0x06),              OP_MASK,                {R1, R2_NOTR0},         0, PROCESSOR_ALL },
+{ "satsub",    OP (0x05),              OP_MASK,                {R1, R2_NOTR0},         0, PROCESSOR_ALL },
+{ "satsubi",   OP (0x33),              OP_MASK,                {I16, R1, R2_NOTR0},    0, PROCESSOR_ALL },
+{ "satsubr",   OP (0x04),              OP_MASK,                {R1, R2_NOTR0},         0, PROCESSOR_ALL },
 
 /* logical operation instructions */
-{ "tst",       OP (0x0b),              OP_MASK,                IF1,                    0 },
-{ "or",                OP (0x08),              OP_MASK,                IF1,                    0 },
-{ "ori",       OP (0x34),              OP_MASK,                IF6U,                   0 },
-{ "and",       OP (0x0a),              OP_MASK,                IF1,                    0 },
-{ "andi",      OP (0x36),              OP_MASK,                IF6U,                   0 },
-{ "xor",       OP (0x09),              OP_MASK,                IF1,                    0 },
-{ "xori",      OP (0x35),              OP_MASK,                IF6U,                   0 },
-{ "not",       OP (0x01),              OP_MASK,                IF1,                    0 },
-{ "sar",       OP (0x15),              OP_MASK,                {I5U, R2},              0 },
-{ "sar",       two (0x07e0, 0x00a0),   two (0x07e0, 0xffff),   {R1,  R2},              0 },
-{ "shl",       OP  (0x16),             OP_MASK,                {I5U, R2},              0 },
-{ "shl",       two (0x07e0, 0x00c0),   two (0x07e0, 0xffff),   {R1,  R2},              0 },
-{ "shr",       OP  (0x14),             OP_MASK,                {I5U, R2},              0 },
-{ "shr",       two (0x07e0, 0x0080),   two (0x07e0, 0xffff),   {R1,  R2},              0 },
+{ "tst",       OP (0x0b),              OP_MASK,                IF1,                    0, PROCESSOR_ALL },
+{ "or",                OP (0x08),              OP_MASK,                IF1,                    0, PROCESSOR_ALL },
+{ "ori",       OP (0x34),              OP_MASK,                IF6U,                   0, PROCESSOR_ALL },
+{ "and",       OP (0x0a),              OP_MASK,                IF1,                    0, PROCESSOR_ALL },
+{ "andi",      OP (0x36),              OP_MASK,                IF6U,                   0, PROCESSOR_ALL },
+{ "xor",       OP (0x09),              OP_MASK,                IF1,                    0, PROCESSOR_ALL },
+{ "xori",      OP (0x35),              OP_MASK,                IF6U,                   0, PROCESSOR_ALL },
+{ "not",       OP (0x01),              OP_MASK,                IF1,                    0, PROCESSOR_ALL },
+{ "sar",       OP (0x15),              OP_MASK,                {I5U, R2},              0, PROCESSOR_ALL },
+{ "sar",       two (0x07e0, 0x00a0),   two (0x07e0, 0xffff),   {R1,  R2},              0, PROCESSOR_ALL },
+{ "shl",       OP  (0x16),             OP_MASK,                {I5U, R2},              0, PROCESSOR_ALL },
+{ "shl",       two (0x07e0, 0x00c0),   two (0x07e0, 0xffff),   {R1,  R2},              0, PROCESSOR_ALL },
+{ "shr",       OP  (0x14),             OP_MASK,                {I5U, R2},              0, PROCESSOR_ALL },
+{ "shr",       two (0x07e0, 0x0080),   two (0x07e0, 0xffff),   {R1,  R2},              0, PROCESSOR_ALL },
 /* start-sanitize-v850e */
-{ "sasf",       two (0x07e0, 0x0200),  two (0x07f0, 0xffff),   {CCCC, R2},             0 },
+{ "sasf",       two (0x07e0, 0x0200),  two (0x07f0, 0xffff),   {CCCC, R2},             0, PROCESSOR_NOT_V850 },
 /* end-sanitize-v850e */
 
 /* branch instructions */
        /* signed integer */
-{ "bgt",       BOP (0xf),              BOP_MASK,               IF3,                    0 },
-{ "bge",       BOP (0xe),              BOP_MASK,               IF3,                    0 },
-{ "blt",       BOP (0x6),              BOP_MASK,               IF3,                    0 },
-{ "ble",       BOP (0x7),              BOP_MASK,               IF3,                    0 },
+{ "bgt",       BOP (0xf),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bge",       BOP (0xe),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "blt",       BOP (0x6),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "ble",       BOP (0x7),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
        /* unsigned integer */
-{ "bh",                BOP (0xb),              BOP_MASK,               IF3,                    0 },
-{ "bnh",       BOP (0x3),              BOP_MASK,               IF3,                    0 },
-{ "bl",                BOP (0x1),              BOP_MASK,               IF3,                    0 },
-{ "bnl",       BOP (0x9),              BOP_MASK,               IF3,                    0 },
+{ "bh",                BOP (0xb),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bnh",       BOP (0x3),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bl",                BOP (0x1),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bnl",       BOP (0x9),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
        /* common */
-{ "be",                BOP (0x2),              BOP_MASK,               IF3,                    0 },
-{ "bne",       BOP (0xa),              BOP_MASK,               IF3,                    0 },
+{ "be",                BOP (0x2),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bne",       BOP (0xa),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
        /* others */
-{ "bv",                BOP (0x0),              BOP_MASK,               IF3,                    0 },
-{ "bnv",       BOP (0x8),              BOP_MASK,               IF3,                    0 },
-{ "bn",                BOP (0x4),              BOP_MASK,               IF3,                    0 },
-{ "bp",                BOP (0xc),              BOP_MASK,               IF3,                    0 },
-{ "bc",                BOP (0x1),              BOP_MASK,               IF3,                    0 },
-{ "bnc",       BOP (0x9),              BOP_MASK,               IF3,                    0 },
-{ "bz",                BOP (0x2),              BOP_MASK,               IF3,                    0 },
-{ "bnz",       BOP (0xa),              BOP_MASK,               IF3,                    0 },
-{ "br",                BOP (0x5),              BOP_MASK,               IF3,                    0 },
-{ "bsa",       BOP (0xd),              BOP_MASK,               IF3,                    0 },
+{ "bv",                BOP (0x0),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bnv",       BOP (0x8),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bn",                BOP (0x4),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bp",                BOP (0xc),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bc",                BOP (0x1),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bnc",       BOP (0x9),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bz",                BOP (0x2),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bnz",       BOP (0xa),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "br",                BOP (0x5),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "bsa",       BOP (0xd),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
 
 /* Branch macros.
 
@@ -714,60 +741,60 @@ const struct v850_opcode v850_opcodes[] =
    will twiddle bits as necessary if the long form is needed.  */
 
        /* signed integer */
-{ "jgt",       BOP (0xf),              BOP_MASK,               IF3,                    0 },
-{ "jge",       BOP (0xe),              BOP_MASK,               IF3,                    0 },
-{ "jlt",       BOP (0x6),              BOP_MASK,               IF3,                    0 },
-{ "jle",       BOP (0x7),              BOP_MASK,               IF3,                    0 },
+{ "jgt",       BOP (0xf),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jge",       BOP (0xe),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jlt",       BOP (0x6),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jle",       BOP (0x7),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
        /* unsigned integer */
-{ "jh",                BOP (0xb),              BOP_MASK,               IF3,                    0 },
-{ "jnh",       BOP (0x3),              BOP_MASK,               IF3,                    0 },
-{ "jl",                BOP (0x1),              BOP_MASK,               IF3,                    0 },
-{ "jnl",       BOP (0x9),              BOP_MASK,               IF3,                    0 },
+{ "jh",                BOP (0xb),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jnh",       BOP (0x3),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jl",                BOP (0x1),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jnl",       BOP (0x9),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
        /* common */
-{ "je",                BOP (0x2),              BOP_MASK,               IF3,                    0 },
-{ "jne",       BOP (0xa),              BOP_MASK,               IF3,                    0 },
+{ "je",                BOP (0x2),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jne",       BOP (0xa),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
        /* others */
-{ "jv",                BOP (0x0),              BOP_MASK,               IF3,                    0 },
-{ "jnv",       BOP (0x8),              BOP_MASK,               IF3,                    0 },
-{ "jn",                BOP (0x4),              BOP_MASK,               IF3,                    0 },
-{ "jp",                BOP (0xc),              BOP_MASK,               IF3,                    0 },
-{ "jc",                BOP (0x1),              BOP_MASK,               IF3,                    0 },
-{ "jnc",       BOP (0x9),              BOP_MASK,               IF3,                    0 },
-{ "jz",                BOP (0x2),              BOP_MASK,               IF3,                    0 },
-{ "jnz",       BOP (0xa),              BOP_MASK,               IF3,                    0 },
-{ "jsa",       BOP (0xd),              BOP_MASK,               IF3,                    0 },
-{ "jbr",       BOP (0x5),              BOP_MASK,               IF3,                    0 },
+{ "jv",                BOP (0x0),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jnv",       BOP (0x8),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jn",                BOP (0x4),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jp",                BOP (0xc),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jc",                BOP (0x1),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jnc",       BOP (0x9),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jz",                BOP (0x2),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jnz",       BOP (0xa),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jsa",       BOP (0xd),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
+{ "jbr",       BOP (0x5),              BOP_MASK,               IF3,                    0, PROCESSOR_ALL },
   
-{ "jr",                one (0x0780),           two (0xffc0, 0x0001),   {D22},                  0 },
-{ "jarl",      one (0x0780),           two (0x07c0, 0x0001),   {D22, R2},              0 }, 
+{ "jr",                one (0x0780),           two (0xffc0, 0x0001),   {D22},                  0, PROCESSOR_ALL },
+{ "jarl",      one (0x0780),           two (0x07c0, 0x0001),   {D22, R2},              0, PROCESSOR_ALL}, 
 
 /* bit manipulation instructions */
-{ "set1",      two (0x07c0, 0x0000),   two (0xc7e0, 0x0000),   {B3, D16, R1},          2 },
+{ "set1",      two (0x07c0, 0x0000),   two (0xc7e0, 0x0000),   {B3, D16, R1},          2, PROCESSOR_ALL },
 /* start-sanitize-v850e */
-{ "set1",      two (0x07e0, 0x00e0),   two (0x07e0, 0xffff),   {R2, R1},               2 },
+{ "set1",      two (0x07e0, 0x00e0),   two (0x07e0, 0xffff),   {R2, R1},               2, PROCESSOR_NOT_V850 },
 /* end-sanitize-v850e */
-{ "not1",      two (0x47c0, 0x0000),   two (0xc7e0, 0x0000),   {B3, D16, R1},          2 },
+{ "not1",      two (0x47c0, 0x0000),   two (0xc7e0, 0x0000),   {B3, D16, R1},          2, PROCESSOR_ALL },
 /* start-sanitize-v850e */
-{ "not1",      two (0x07e0, 0x00e2),   two (0x07e0, 0xffff),   {R2, R1},               2 },
+{ "not1",      two (0x07e0, 0x00e2),   two (0x07e0, 0xffff),   {R2, R1},               2, PROCESSOR_NOT_V850 },
 /* end-sanitize-v850e */
-{ "clr1",      two (0x87c0, 0x0000),   two (0xc7e0, 0x0000),   {B3, D16, R1},          2 },
+{ "clr1",      two (0x87c0, 0x0000),   two (0xc7e0, 0x0000),   {B3, D16, R1},          2, PROCESSOR_ALL },
 /* start-sanitize-v850e */
-{ "clr1",      two (0x07e0, 0x00e4),   two (0x07e0, 0xffff),   {R2, R1},               2 },
+{ "clr1",      two (0x07e0, 0x00e4),   two (0x07e0, 0xffff),   {R2, R1},               2, PROCESSOR_NOT_V850 },
 /* end-sanitize-v850e */
-{ "tst1",      two (0xc7c0, 0x0000),   two (0xc7e0, 0x0000),   {B3, D16, R1},          2 },
+{ "tst1",      two (0xc7c0, 0x0000),   two (0xc7e0, 0x0000),   {B3, D16, R1},          2, PROCESSOR_ALL },
 /* start-sanitize-v850e */
-{ "tst1",      two (0x07e0, 0x00e6),   two (0x07e0, 0xffff),   {R2, R1},               2 },
+{ "tst1",      two (0x07e0, 0x00e6),   two (0x07e0, 0xffff),   {R2, R1},               2, PROCESSOR_NOT_V850 },
 /* end-sanitize-v850e */
 
 /* special instructions */
-{ "di",                two (0x07e0, 0x0160),   two (0xffff, 0xffff),   {0},                    0 },
-{ "ei",                two (0x87e0, 0x0160),   two (0xffff, 0xffff),   {0},                    0 },
-{ "halt",      two (0x07e0, 0x0120),   two (0xffff, 0xffff),   {0},                    0 },
-{ "reti",      two (0x07e0, 0x0140),   two (0xffff, 0xffff),   {0},                    0 },
-{ "trap",      two (0x07e0, 0x0100),   two (0xffe0, 0xffff),   {I5U},                  0 },
-{ "ldsr",      two (0x07e0, 0x0020),   two (0x07e0, 0xffff),   {R1, SR2},              0 },
-{ "stsr",      two (0x07e0, 0x0040),   two (0x07e0, 0xffff),   {SR1, R2},              0 },
-{ 0, 0, 0, {0}, 0 },
+{ "di",                two (0x07e0, 0x0160),   two (0xffff, 0xffff),   {0},                    0, PROCESSOR_ALL },
+{ "ei",                two (0x87e0, 0x0160),   two (0xffff, 0xffff),   {0},                    0, PROCESSOR_ALL },
+{ "halt",      two (0x07e0, 0x0120),   two (0xffff, 0xffff),   {0},                    0, PROCESSOR_ALL },
+{ "reti",      two (0x07e0, 0x0140),   two (0xffff, 0xffff),   {0},                    0, PROCESSOR_ALL },
+{ "trap",      two (0x07e0, 0x0100),   two (0xffe0, 0xffff),   {I5U},                  0, PROCESSOR_ALL },
+{ "ldsr",      two (0x07e0, 0x0020),   two (0x07e0, 0xffff),   {R1, SR2},              0, PROCESSOR_ALL },
+{ "stsr",      two (0x07e0, 0x0040),   two (0x07e0, 0xffff),   {SR1, R2},              0, PROCESSOR_ALL },
+{ 0, 0, 0, {0}, 0, 0 },
 
 } ;