Home | History | Annotate | Line # | Download | only in opcodes
sh-opc.h revision 1.1
      1  1.1  skrll /* Definitions for SH opcodes.
      2  1.1  skrll    Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003, 2004,
      3  1.1  skrll    2005, 2007 Free Software Foundation, Inc.
      4  1.1  skrll 
      5  1.1  skrll    This file is part of the GNU opcodes library.
      6  1.1  skrll 
      7  1.1  skrll    This library is free software; you can redistribute it and/or modify
      8  1.1  skrll    it under the terms of the GNU General Public License as published by
      9  1.1  skrll    the Free Software Foundation; either version 3, or (at your option)
     10  1.1  skrll    any later version.
     11  1.1  skrll 
     12  1.1  skrll    It is distributed in the hope that it will be useful, but WITHOUT
     13  1.1  skrll    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     14  1.1  skrll    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     15  1.1  skrll    License for more details.
     16  1.1  skrll 
     17  1.1  skrll    You should have received a copy of the GNU General Public License
     18  1.1  skrll    along with this file; see the file COPYING.  If not, write to the
     19  1.1  skrll    Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
     20  1.1  skrll    MA 02110-1301, USA.  */
     21  1.1  skrll 
     22  1.1  skrll #include "bfd.h"
     23  1.1  skrll 
     24  1.1  skrll typedef enum
     25  1.1  skrll   {
     26  1.1  skrll     HEX_0,
     27  1.1  skrll     HEX_1,
     28  1.1  skrll     HEX_2,
     29  1.1  skrll     HEX_3,
     30  1.1  skrll     HEX_4,
     31  1.1  skrll     HEX_5,
     32  1.1  skrll     HEX_6,
     33  1.1  skrll     HEX_7,
     34  1.1  skrll     HEX_8,
     35  1.1  skrll     HEX_9,
     36  1.1  skrll     HEX_A,
     37  1.1  skrll     HEX_B,
     38  1.1  skrll     HEX_C,
     39  1.1  skrll     HEX_D,
     40  1.1  skrll     HEX_E,
     41  1.1  skrll     HEX_F,
     42  1.1  skrll     HEX_XX00,
     43  1.1  skrll     HEX_00YY,
     44  1.1  skrll     REG_N,
     45  1.1  skrll     REG_N_D,     /* nnn0 */
     46  1.1  skrll     REG_N_B01,   /* nn01 */
     47  1.1  skrll     REG_M,
     48  1.1  skrll     SDT_REG_N,
     49  1.1  skrll     REG_NM,
     50  1.1  skrll     REG_B,
     51  1.1  skrll     BRANCH_12,
     52  1.1  skrll     BRANCH_8,
     53  1.1  skrll     IMM0_4,
     54  1.1  skrll     IMM0_4BY2,
     55  1.1  skrll     IMM0_4BY4,
     56  1.1  skrll     IMM1_4,
     57  1.1  skrll     IMM1_4BY2,
     58  1.1  skrll     IMM1_4BY4,
     59  1.1  skrll     PCRELIMM_8BY2,
     60  1.1  skrll     PCRELIMM_8BY4,
     61  1.1  skrll     IMM0_8,
     62  1.1  skrll     IMM0_8BY2,
     63  1.1  skrll     IMM0_8BY4,
     64  1.1  skrll     IMM1_8,
     65  1.1  skrll     IMM1_8BY2,
     66  1.1  skrll     IMM1_8BY4,
     67  1.1  skrll     PPI,
     68  1.1  skrll     NOPX,
     69  1.1  skrll     NOPY,
     70  1.1  skrll     MOVX,
     71  1.1  skrll     MOVY,
     72  1.1  skrll     MOVX_NOPY,
     73  1.1  skrll     MOVY_NOPX,
     74  1.1  skrll     PSH,
     75  1.1  skrll     PMUL,
     76  1.1  skrll     PPI3,
     77  1.1  skrll     PPI3NC,
     78  1.1  skrll     PDC,
     79  1.1  skrll     PPIC,
     80  1.1  skrll     REPEAT,
     81  1.1  skrll     IMM0_3c,	/* xxxx 0iii */
     82  1.1  skrll     IMM0_3s,	/* xxxx 1iii */
     83  1.1  skrll     IMM0_3Uc,	/* 0iii xxxx */
     84  1.1  skrll     IMM0_3Us,	/* 1iii xxxx */
     85  1.1  skrll     IMM0_20_4,
     86  1.1  skrll     IMM0_20,	/* follows IMM0_20_4 */
     87  1.1  skrll     IMM0_20BY8,	/* follows IMM0_20_4 */
     88  1.1  skrll     DISP0_12,
     89  1.1  skrll     DISP0_12BY2,
     90  1.1  skrll     DISP0_12BY4,
     91  1.1  skrll     DISP0_12BY8,
     92  1.1  skrll     DISP1_12,
     93  1.1  skrll     DISP1_12BY2,
     94  1.1  skrll     DISP1_12BY4,
     95  1.1  skrll     DISP1_12BY8
     96  1.1  skrll   }
     97  1.1  skrll sh_nibble_type;
     98  1.1  skrll 
     99  1.1  skrll typedef enum
    100  1.1  skrll   {
    101  1.1  skrll     A_END,
    102  1.1  skrll     A_BDISP12,
    103  1.1  skrll     A_BDISP8,
    104  1.1  skrll     A_DEC_M,
    105  1.1  skrll     A_DEC_N,
    106  1.1  skrll     A_DISP_GBR,
    107  1.1  skrll     A_PC,
    108  1.1  skrll     A_DISP_PC,
    109  1.1  skrll     A_DISP_PC_ABS,
    110  1.1  skrll     A_DISP_REG_M,
    111  1.1  skrll     A_DISP_REG_N,
    112  1.1  skrll     A_GBR,
    113  1.1  skrll     A_IMM,
    114  1.1  skrll     A_INC_M,
    115  1.1  skrll     A_INC_N,
    116  1.1  skrll     A_IND_M,
    117  1.1  skrll     A_IND_N,
    118  1.1  skrll     A_IND_R0_REG_M,
    119  1.1  skrll     A_IND_R0_REG_N,
    120  1.1  skrll     A_MACH,
    121  1.1  skrll     A_MACL,
    122  1.1  skrll     A_PR,
    123  1.1  skrll     A_R0,
    124  1.1  skrll     A_R0_GBR,
    125  1.1  skrll     A_REG_M,
    126  1.1  skrll     A_REG_N,
    127  1.1  skrll     A_REG_B,
    128  1.1  skrll     A_SR,
    129  1.1  skrll     A_VBR,
    130  1.1  skrll     A_TBR,
    131  1.1  skrll     A_DISP_TBR,
    132  1.1  skrll     A_DISP2_TBR,
    133  1.1  skrll     A_DEC_R15,
    134  1.1  skrll     A_INC_R15,
    135  1.1  skrll     A_MOD,
    136  1.1  skrll     A_RE,
    137  1.1  skrll     A_RS,
    138  1.1  skrll     A_DSR,
    139  1.1  skrll     DSP_REG_M,
    140  1.1  skrll     DSP_REG_N,
    141  1.1  skrll     DSP_REG_X,
    142  1.1  skrll     DSP_REG_Y,
    143  1.1  skrll     DSP_REG_E,
    144  1.1  skrll     DSP_REG_F,
    145  1.1  skrll     DSP_REG_G,
    146  1.1  skrll     DSP_REG_A_M,
    147  1.1  skrll     DSP_REG_AX,
    148  1.1  skrll     DSP_REG_XY,
    149  1.1  skrll     DSP_REG_AY,
    150  1.1  skrll     DSP_REG_YX,
    151  1.1  skrll     AX_INC_N,
    152  1.1  skrll     AY_INC_N,
    153  1.1  skrll     AXY_INC_N,
    154  1.1  skrll     AYX_INC_N,
    155  1.1  skrll     AX_IND_N,
    156  1.1  skrll     AY_IND_N,
    157  1.1  skrll     AXY_IND_N,
    158  1.1  skrll     AYX_IND_N,
    159  1.1  skrll     AX_PMOD_N,
    160  1.1  skrll     AXY_PMOD_N,
    161  1.1  skrll     AY_PMOD_N,
    162  1.1  skrll     AYX_PMOD_N,
    163  1.1  skrll     AS_DEC_N,
    164  1.1  skrll     AS_INC_N,
    165  1.1  skrll     AS_IND_N,
    166  1.1  skrll     AS_PMOD_N,
    167  1.1  skrll     A_A0,
    168  1.1  skrll     A_X0,
    169  1.1  skrll     A_X1,
    170  1.1  skrll     A_Y0,
    171  1.1  skrll     A_Y1,
    172  1.1  skrll     A_SSR,
    173  1.1  skrll     A_SPC,
    174  1.1  skrll     A_SGR,
    175  1.1  skrll     A_DBR,
    176  1.1  skrll     F_REG_N,
    177  1.1  skrll     F_REG_M,
    178  1.1  skrll     D_REG_N,
    179  1.1  skrll     D_REG_M,
    180  1.1  skrll     X_REG_N, /* Only used for argument parsing.  */
    181  1.1  skrll     X_REG_M, /* Only used for argument parsing.  */
    182  1.1  skrll     DX_REG_N,
    183  1.1  skrll     DX_REG_M,
    184  1.1  skrll     V_REG_N,
    185  1.1  skrll     V_REG_M,
    186  1.1  skrll     XMTRX_M4,
    187  1.1  skrll     F_FR0,
    188  1.1  skrll     FPUL_N,
    189  1.1  skrll     FPUL_M,
    190  1.1  skrll     FPSCR_N,
    191  1.1  skrll     FPSCR_M
    192  1.1  skrll   }
    193  1.1  skrll sh_arg_type;
    194  1.1  skrll 
    195  1.1  skrll typedef enum
    196  1.1  skrll   {
    197  1.1  skrll     A_A1_NUM =   5,
    198  1.1  skrll     A_A0_NUM =   7,
    199  1.1  skrll     A_X0_NUM, A_X1_NUM, A_Y0_NUM, A_Y1_NUM,
    200  1.1  skrll     A_M0_NUM, A_A1G_NUM, A_M1_NUM, A_A0G_NUM
    201  1.1  skrll   }
    202  1.1  skrll sh_dsp_reg_nums;
    203  1.1  skrll 
    204  1.1  skrll /* Return a mask with bits LO to HI (inclusive) set.  */
    205  1.1  skrll #define MASK(LO,HI)  (  LO < 1   ? ((1 << (HI + 1)) - 1) \
    206  1.1  skrll 		      : HI > 30  ? (-1 << LO) \
    207  1.1  skrll 		      : LO == HI ? (1 << LO) \
    208  1.1  skrll 		      :            (((1 << (HI + 1)) - 1) & (-1 << LO)))
    209  1.1  skrll 
    210  1.1  skrll #define arch_sh1_base	    (1 << 0)
    211  1.1  skrll #define arch_sh2_base	    (1 << 1)
    212  1.1  skrll #define arch_sh2a_sh3_base  (1 << 2)
    213  1.1  skrll #define arch_sh3_base	    (1 << 3)
    214  1.1  skrll #define arch_sh2a_sh4_base  (1 << 4)
    215  1.1  skrll #define arch_sh4_base	    (1 << 5)
    216  1.1  skrll #define arch_sh4a_base	    (1 << 6)
    217  1.1  skrll #define arch_sh2a_base      (1 << 7)
    218  1.1  skrll #define arch_sh_base_mask   MASK (0, 7)
    219  1.1  skrll 
    220  1.1  skrll /* Bits 8 ... 24 are currently free.  */
    221  1.1  skrll 
    222  1.1  skrll /* This is an annotation on instruction types, but we
    223  1.1  skrll    abuse the arch field in instructions to denote it.  */
    224  1.1  skrll #define arch_op32          (1 << 25)  /* This is a 32-bit opcode.  */
    225  1.1  skrll #define arch_opann_mask    MASK (25, 25)
    226  1.1  skrll 
    227  1.1  skrll #define arch_sh_no_mmu	   (1 << 26)
    228  1.1  skrll #define arch_sh_has_mmu    (1 << 27)
    229  1.1  skrll #define arch_sh_mmu_mask   MASK (26, 27)
    230  1.1  skrll 
    231  1.1  skrll #define arch_sh_no_co	   (1 << 28)  /* Neither FPU nor DSP co-processor.  */
    232  1.1  skrll #define arch_sh_sp_fpu	   (1 << 29)  /* Single precision FPU.  */
    233  1.1  skrll #define arch_sh_dp_fpu	   (1 << 30)  /* Double precision FPU.  */
    234  1.1  skrll #define arch_sh_has_dsp	   (1 << 31)
    235  1.1  skrll #define arch_sh_co_mask    MASK (28, 31)
    236  1.1  skrll 
    237  1.1  skrll 
    238  1.1  skrll #define arch_sh1	                   (arch_sh1_base     |arch_sh_no_mmu |arch_sh_no_co)
    239  1.1  skrll #define arch_sh2	                   (arch_sh2_base     |arch_sh_no_mmu |arch_sh_no_co)
    240  1.1  skrll #define arch_sh2a	                   (arch_sh2a_base    |arch_sh_no_mmu |arch_sh_dp_fpu)
    241  1.1  skrll #define arch_sh2a_nofpu	                   (arch_sh2a_base    |arch_sh_no_mmu |arch_sh_no_co)
    242  1.1  skrll #define arch_sh2e	                   (arch_sh2_base     |arch_sh_no_mmu |arch_sh_sp_fpu)
    243  1.1  skrll #define arch_sh_dsp	                   (arch_sh2_base     |arch_sh_no_mmu |arch_sh_has_dsp)
    244  1.1  skrll #define arch_sh3_nommu	                   (arch_sh3_base     |arch_sh_no_mmu |arch_sh_no_co)
    245  1.1  skrll #define arch_sh3	                   (arch_sh3_base     |arch_sh_has_mmu|arch_sh_no_co)
    246  1.1  skrll #define arch_sh3e	                   (arch_sh3_base     |arch_sh_has_mmu|arch_sh_sp_fpu)
    247  1.1  skrll #define arch_sh3_dsp	                   (arch_sh3_base     |arch_sh_has_mmu|arch_sh_has_dsp)
    248  1.1  skrll #define arch_sh4	                   (arch_sh4_base     |arch_sh_has_mmu|arch_sh_dp_fpu)
    249  1.1  skrll #define arch_sh4a	                   (arch_sh4a_base    |arch_sh_has_mmu|arch_sh_dp_fpu)
    250  1.1  skrll #define arch_sh4al_dsp	                   (arch_sh4a_base    |arch_sh_has_mmu|arch_sh_has_dsp)
    251  1.1  skrll #define arch_sh4_nofpu	                   (arch_sh4_base     |arch_sh_has_mmu|arch_sh_no_co)
    252  1.1  skrll #define arch_sh4a_nofpu	                   (arch_sh4a_base    |arch_sh_has_mmu|arch_sh_no_co)
    253  1.1  skrll #define arch_sh4_nommu_nofpu               (arch_sh4_base     |arch_sh_no_mmu |arch_sh_no_co)
    254  1.1  skrll #define arch_sh2a_nofpu_or_sh4_nommu_nofpu (arch_sh2a_sh4_base|arch_sh_no_mmu |arch_sh_no_co)
    255  1.1  skrll #define arch_sh2a_nofpu_or_sh3_nommu       (arch_sh2a_sh3_base|arch_sh_no_mmu |arch_sh_no_co)
    256  1.1  skrll #define arch_sh2a_or_sh3e                  (arch_sh2a_sh4_base|arch_sh_no_mmu |arch_sh_sp_fpu)
    257  1.1  skrll #define arch_sh2a_or_sh4                   (arch_sh2a_sh4_base|arch_sh_no_mmu |arch_sh_dp_fpu)
    258  1.1  skrll 
    259  1.1  skrll #define SH_MERGE_ARCH_SET(SET1, SET2) ((SET1) & (SET2))
    260  1.1  skrll #define SH_VALID_BASE_ARCH_SET(SET) (((SET) & arch_sh_base_mask) != 0)
    261  1.1  skrll #define SH_VALID_MMU_ARCH_SET(SET)  (((SET) & arch_sh_mmu_mask) != 0)
    262  1.1  skrll #define SH_VALID_CO_ARCH_SET(SET)   (((SET) & arch_sh_co_mask) != 0)
    263  1.1  skrll #define SH_VALID_ARCH_SET(SET) \
    264  1.1  skrll   (SH_VALID_BASE_ARCH_SET (SET) \
    265  1.1  skrll    && SH_VALID_MMU_ARCH_SET (SET) \
    266  1.1  skrll    && SH_VALID_CO_ARCH_SET (SET))
    267  1.1  skrll #define SH_MERGE_ARCH_SET_VALID(SET1, SET2) \
    268  1.1  skrll   SH_VALID_ARCH_SET (SH_MERGE_ARCH_SET (SET1, SET2))
    269  1.1  skrll 
    270  1.1  skrll #define SH_ARCH_SET_HAS_FPU(SET) \
    271  1.1  skrll   (((SET) & (arch_sh_sp_fpu | arch_sh_dp_fpu)) != 0)
    272  1.1  skrll #define SH_ARCH_SET_HAS_DSP(SET) \
    273  1.1  skrll   (((SET) & arch_sh_has_dsp) != 0)
    274  1.1  skrll 
    275  1.1  skrll /* This is returned from the functions below when an error occurs
    276  1.1  skrll    (in addition to a call to BFD_FAIL). The value should allow
    277  1.1  skrll    the tools to continue to function in most cases - there may
    278  1.1  skrll    be some confusion between DSP and FPU etc.  */
    279  1.1  skrll #define SH_ARCH_UNKNOWN_ARCH 0xffffffff
    280  1.1  skrll 
    281  1.1  skrll /* These are defined in bfd/cpu-sh.c .  */
    282  1.1  skrll unsigned int sh_get_arch_from_bfd_mach (unsigned long mach);
    283  1.1  skrll unsigned int sh_get_arch_up_from_bfd_mach (unsigned long mach);
    284  1.1  skrll unsigned long sh_get_bfd_mach_from_arch_set (unsigned int arch_set);
    285  1.1  skrll bfd_boolean sh_merge_bfd_arch (bfd *ibfd, bfd *obfd);
    286  1.1  skrll 
    287  1.1  skrll /* Below are the 'architecture sets'.
    288  1.1  skrll    They describe the following inheritance graph:
    289  1.1  skrll 
    290  1.1  skrll                 SH1
    291  1.1  skrll                  |
    292  1.1  skrll                 SH2
    293  1.1  skrll    .------------'|`--------------------------------.
    294  1.1  skrll   /              |                                  \
    295  1.1  skrll SH-DSP          SH3-nommu/SH2A-nofpu               SH2E
    296  1.1  skrll  |               |          |`--------------------. |
    297  1.1  skrll  |               |          |                      \|
    298  1.1  skrll  |              SH3-nommu  SH4-nm-nf/SH2A-nofpu    SH3E/SH2A
    299  1.1  skrll  |               |\         |          |      \     |    |
    300  1.1  skrll  |               | `------. |     SH2A-nofpu   `----+---.|
    301  1.1  skrll  |               |         \|            \          |   SH4/SH2A
    302  1.1  skrll  |              SH3     SH4-nommu-nofpu   `---------+--. |   |
    303  1.1  skrll  |              /|\         |                       |   \|   |
    304  1.1  skrll  | .-----------' | `--------+---------------------. |  SH2A  |
    305  1.1  skrll  |/              |          /                      \|        |
    306  1.1  skrll  |               | .-------'                        |        |
    307  1.1  skrll  |               |/                                 |        |
    308  1.1  skrll SH3-dsp         SH4-nofpu                          SH3E      |
    309  1.1  skrll  |               |`-------------------------------. | .-----'
    310  1.1  skrll  |               |                                 \|/
    311  1.1  skrll  |              SH4A-nofpu                         SH4
    312  1.1  skrll  | .------------' `-------------------------------. |
    313  1.1  skrll  |/                                                \|
    314  1.1  skrll SH4AL-dsp                                          SH4A
    315  1.1  skrll */
    316  1.1  skrll 
    317  1.1  skrll /* Central branches.  */
    318  1.1  skrll #define arch_sh_up                             (arch_sh1 \
    319  1.1  skrll 		| arch_sh2_up)
    320  1.1  skrll #define arch_sh2_up                            (arch_sh2 \
    321  1.1  skrll 		| arch_sh2e_up \
    322  1.1  skrll 		| arch_sh2a_nofpu_or_sh3_nommu_up \
    323  1.1  skrll 		| arch_sh_dsp_up)
    324  1.1  skrll #define arch_sh2a_nofpu_or_sh3_nommu_up        (arch_sh2a_nofpu_or_sh3_nommu \
    325  1.1  skrll 		| arch_sh2a_nofpu_or_sh4_nommu_nofpu_up \
    326  1.1  skrll 		| arch_sh2a_or_sh3e_up \
    327  1.1  skrll 		| arch_sh3_nommu_up)
    328  1.1  skrll #define arch_sh2a_nofpu_or_sh4_nommu_nofpu_up  (arch_sh2a_nofpu_or_sh4_nommu_nofpu \
    329  1.1  skrll 		| arch_sh2a_nofpu_up \
    330  1.1  skrll 		| arch_sh2a_or_sh4_up \
    331  1.1  skrll 		| arch_sh4_nommu_nofpu_up)
    332  1.1  skrll #define arch_sh2a_nofpu_up                     (arch_sh2a_nofpu \
    333  1.1  skrll 		| arch_sh2a_up)
    334  1.1  skrll #define arch_sh3_nommu_up                      (arch_sh3_nommu \
    335  1.1  skrll 		| arch_sh3_up \
    336  1.1  skrll 		| arch_sh4_nommu_nofpu_up)
    337  1.1  skrll #define arch_sh3_up                            (arch_sh3 \
    338  1.1  skrll 		| arch_sh3e_up \
    339  1.1  skrll 		| arch_sh3_dsp_up \
    340  1.1  skrll 		| arch_sh4_nofpu_up)
    341  1.1  skrll #define arch_sh4_nommu_nofpu_up                (arch_sh4_nommu_nofpu \
    342  1.1  skrll 		| arch_sh4_nofpu_up)
    343  1.1  skrll #define arch_sh4_nofpu_up                      (arch_sh4_nofpu \
    344  1.1  skrll 		| arch_sh4_up \
    345  1.1  skrll 		| arch_sh4a_nofpu_up)
    346  1.1  skrll #define arch_sh4a_nofpu_up                     (arch_sh4a_nofpu \
    347  1.1  skrll 		| arch_sh4a_up \
    348  1.1  skrll 		| arch_sh4al_dsp_up)
    349  1.1  skrll 
    350  1.1  skrll /* Right branches.  */
    351  1.1  skrll #define arch_sh2e_up                           (arch_sh2e \
    352  1.1  skrll 		| arch_sh2a_or_sh3e_up)
    353  1.1  skrll #define arch_sh2a_or_sh3e_up                   (arch_sh2a_or_sh3e \
    354  1.1  skrll 		| arch_sh2a_or_sh4_up \
    355  1.1  skrll 		| arch_sh3e_up)
    356  1.1  skrll #define arch_sh2a_or_sh4_up                    (arch_sh2a_or_sh4 \
    357  1.1  skrll 		| arch_sh2a_up \
    358  1.1  skrll 		| arch_sh4_up)
    359  1.1  skrll #define arch_sh2a_up                           (arch_sh2a)
    360  1.1  skrll #define arch_sh3e_up                           (arch_sh3e \
    361  1.1  skrll 		| arch_sh4_up)
    362  1.1  skrll #define arch_sh4_up                            (arch_sh4 \
    363  1.1  skrll 		| arch_sh4a_up)
    364  1.1  skrll #define arch_sh4a_up                           (arch_sh4a)
    365  1.1  skrll 
    366  1.1  skrll /* Left branch.  */
    367  1.1  skrll #define arch_sh_dsp_up                         (arch_sh_dsp  \
    368  1.1  skrll 		| arch_sh3_dsp_up)
    369  1.1  skrll #define arch_sh3_dsp_up                        (arch_sh3_dsp \
    370  1.1  skrll 		| arch_sh4al_dsp_up)
    371  1.1  skrll #define arch_sh4al_dsp_up                      (arch_sh4al_dsp)
    372  1.1  skrll 
    373  1.1  skrll typedef struct
    374  1.1  skrll {
    375  1.1  skrll   char *name;
    376  1.1  skrll   sh_arg_type arg[4];
    377  1.1  skrll   sh_nibble_type nibbles[9];
    378  1.1  skrll   unsigned int arch;
    379  1.1  skrll } sh_opcode_info;
    380  1.1  skrll 
    381  1.1  skrll #ifdef DEFINE_TABLE
    382  1.1  skrll 
    383  1.1  skrll const sh_opcode_info sh_table[] =
    384  1.1  skrll   {
    385  1.1  skrll /* 0111nnnni8*1.... add #<imm>,<REG_N>  */{"add",{A_IMM,A_REG_N},{HEX_7,REG_N,IMM0_8}, arch_sh_up},
    386  1.1  skrll 
    387  1.1  skrll /* 0011nnnnmmmm1100 add <REG_M>,<REG_N> */{"add",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_C}, arch_sh_up},
    388  1.1  skrll 
    389  1.1  skrll /* 0011nnnnmmmm1110 addc <REG_M>,<REG_N>*/{"addc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_E}, arch_sh_up},
    390  1.1  skrll 
    391  1.1  skrll /* 0011nnnnmmmm1111 addv <REG_M>,<REG_N>*/{"addv",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_F}, arch_sh_up},
    392  1.1  skrll 
    393  1.1  skrll /* 11001001i8*1.... and #<imm>,R0       */{"and",{A_IMM,A_R0},{HEX_C,HEX_9,IMM0_8}, arch_sh_up},
    394  1.1  skrll 
    395  1.1  skrll /* 0010nnnnmmmm1001 and <REG_M>,<REG_N> */{"and",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_9}, arch_sh_up},
    396  1.1  skrll 
    397  1.1  skrll /* 11001101i8*1.... and.b #<imm>,@(R0,GBR)*/{"and.b",{A_IMM,A_R0_GBR},{HEX_C,HEX_D,IMM0_8}, arch_sh_up},
    398  1.1  skrll 
    399  1.1  skrll /* 1010i12......... bra <bdisp12>       */{"bra",{A_BDISP12},{HEX_A,BRANCH_12}, arch_sh_up},
    400  1.1  skrll 
    401  1.1  skrll /* 1011i12......... bsr <bdisp12>       */{"bsr",{A_BDISP12},{HEX_B,BRANCH_12}, arch_sh_up},
    402  1.1  skrll 
    403  1.1  skrll /* 10001001i8p1.... bt <bdisp8>         */{"bt",{A_BDISP8},{HEX_8,HEX_9,BRANCH_8}, arch_sh_up},
    404  1.1  skrll 
    405  1.1  skrll /* 10001011i8p1.... bf <bdisp8>         */{"bf",{A_BDISP8},{HEX_8,HEX_B,BRANCH_8}, arch_sh_up},
    406  1.1  skrll 
    407  1.1  skrll /* 10001101i8p1.... bt.s <bdisp8>       */{"bt.s",{A_BDISP8},{HEX_8,HEX_D,BRANCH_8}, arch_sh2_up},
    408  1.1  skrll 
    409  1.1  skrll /* 10001101i8p1.... bt/s <bdisp8>       */{"bt/s",{A_BDISP8},{HEX_8,HEX_D,BRANCH_8}, arch_sh2_up},
    410  1.1  skrll 
    411  1.1  skrll /* 10001111i8p1.... bf.s <bdisp8>       */{"bf.s",{A_BDISP8},{HEX_8,HEX_F,BRANCH_8}, arch_sh2_up},
    412  1.1  skrll 
    413  1.1  skrll /* 10001111i8p1.... bf/s <bdisp8>       */{"bf/s",{A_BDISP8},{HEX_8,HEX_F,BRANCH_8}, arch_sh2_up},
    414  1.1  skrll 
    415  1.1  skrll /* 0000000010001000 clrdmxy             */{"clrdmxy",{0},{HEX_0,HEX_0,HEX_8,HEX_8}, arch_sh4al_dsp_up},
    416  1.1  skrll 
    417  1.1  skrll /* 0000000000101000 clrmac              */{"clrmac",{0},{HEX_0,HEX_0,HEX_2,HEX_8}, arch_sh_up},
    418  1.1  skrll 
    419  1.1  skrll /* 0000000001001000 clrs                */{"clrs",{0},{HEX_0,HEX_0,HEX_4,HEX_8}, arch_sh_up},
    420  1.1  skrll 
    421  1.1  skrll /* 0000000000001000 clrt                */{"clrt",{0},{HEX_0,HEX_0,HEX_0,HEX_8}, arch_sh_up},
    422  1.1  skrll 
    423  1.1  skrll /* 10001000i8*1.... cmp/eq #<imm>,R0    */{"cmp/eq",{A_IMM,A_R0},{HEX_8,HEX_8,IMM0_8}, arch_sh_up},
    424  1.1  skrll 
    425  1.1  skrll /* 0011nnnnmmmm0000 cmp/eq <REG_M>,<REG_N>*/{"cmp/eq",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_0}, arch_sh_up},
    426  1.1  skrll 
    427  1.1  skrll /* 0011nnnnmmmm0011 cmp/ge <REG_M>,<REG_N>*/{"cmp/ge",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_3}, arch_sh_up},
    428  1.1  skrll 
    429  1.1  skrll /* 0011nnnnmmmm0111 cmp/gt <REG_M>,<REG_N>*/{"cmp/gt",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_7}, arch_sh_up},
    430  1.1  skrll 
    431  1.1  skrll /* 0011nnnnmmmm0110 cmp/hi <REG_M>,<REG_N>*/{"cmp/hi",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_6}, arch_sh_up},
    432  1.1  skrll 
    433  1.1  skrll /* 0011nnnnmmmm0010 cmp/hs <REG_M>,<REG_N>*/{"cmp/hs",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_2}, arch_sh_up},
    434  1.1  skrll 
    435  1.1  skrll /* 0100nnnn00010101 cmp/pl <REG_N>      */{"cmp/pl",{A_REG_N},{HEX_4,REG_N,HEX_1,HEX_5}, arch_sh_up},
    436  1.1  skrll 
    437  1.1  skrll /* 0100nnnn00010001 cmp/pz <REG_N>      */{"cmp/pz",{A_REG_N},{HEX_4,REG_N,HEX_1,HEX_1}, arch_sh_up},
    438  1.1  skrll 
    439  1.1  skrll /* 0010nnnnmmmm1100 cmp/str <REG_M>,<REG_N>*/{"cmp/str",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_C}, arch_sh_up},
    440  1.1  skrll 
    441  1.1  skrll /* 0010nnnnmmmm0111 div0s <REG_M>,<REG_N>*/{"div0s",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_7}, arch_sh_up},
    442  1.1  skrll 
    443  1.1  skrll /* 0000000000011001 div0u               */{"div0u",{0},{HEX_0,HEX_0,HEX_1,HEX_9}, arch_sh_up},
    444  1.1  skrll 
    445  1.1  skrll /* 0011nnnnmmmm0100 div1 <REG_M>,<REG_N>*/{"div1",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_4}, arch_sh_up},
    446  1.1  skrll 
    447  1.1  skrll /* 0110nnnnmmmm1110 exts.b <REG_M>,<REG_N>*/{"exts.b",{ A_REG_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_E}, arch_sh_up},
    448  1.1  skrll 
    449  1.1  skrll /* 0110nnnnmmmm1111 exts.w <REG_M>,<REG_N>*/{"exts.w",{ A_REG_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_F}, arch_sh_up},
    450  1.1  skrll 
    451  1.1  skrll /* 0110nnnnmmmm1100 extu.b <REG_M>,<REG_N>*/{"extu.b",{ A_REG_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_C}, arch_sh_up},
    452  1.1  skrll 
    453  1.1  skrll /* 0110nnnnmmmm1101 extu.w <REG_M>,<REG_N>*/{"extu.w",{ A_REG_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_D}, arch_sh_up},
    454  1.1  skrll 
    455  1.1  skrll /* 0000nnnn11100011 icbi @<REG_N>       */{"icbi",{A_IND_N},{HEX_0,REG_N,HEX_E,HEX_3}, arch_sh4a_nofpu_up},
    456  1.1  skrll 
    457  1.1  skrll /* 0100nnnn00101011 jmp @<REG_N>        */{"jmp",{A_IND_N},{HEX_4,REG_N,HEX_2,HEX_B}, arch_sh_up},
    458  1.1  skrll 
    459  1.1  skrll /* 0100nnnn00001011 jsr @<REG_N>        */{"jsr",{A_IND_N},{HEX_4,REG_N,HEX_0,HEX_B}, arch_sh_up},
    460  1.1  skrll 
    461  1.1  skrll /* 0100nnnn00001110 ldc <REG_N>,SR      */{"ldc",{A_REG_N,A_SR},{HEX_4,REG_N,HEX_0,HEX_E}, arch_sh_up},
    462  1.1  skrll 
    463  1.1  skrll /* 0100nnnn00011110 ldc <REG_N>,GBR     */{"ldc",{A_REG_N,A_GBR},{HEX_4,REG_N,HEX_1,HEX_E}, arch_sh_up},
    464  1.1  skrll 
    465  1.1  skrll /* 0100nnnn00111010 ldc <REG_N>,SGR     */{"ldc",{A_REG_N,A_SGR},{HEX_4,REG_N,HEX_3,HEX_A}, arch_sh4_nommu_nofpu_up},
    466  1.1  skrll 
    467  1.1  skrll /* 0100mmmm01001010 ldc <REG_M>,TBR     */{"ldc",{A_REG_M,A_TBR},{HEX_4,REG_M,HEX_4,HEX_A}, arch_sh2a_nofpu_up},
    468  1.1  skrll 
    469  1.1  skrll /* 0100nnnn00101110 ldc <REG_N>,VBR     */{"ldc",{A_REG_N,A_VBR},{HEX_4,REG_N,HEX_2,HEX_E}, arch_sh_up},
    470  1.1  skrll 
    471  1.1  skrll /* 0100nnnn01011110 ldc <REG_N>,MOD     */{"ldc",{A_REG_N,A_MOD},{HEX_4,REG_N,HEX_5,HEX_E}, arch_sh_dsp_up},
    472  1.1  skrll 
    473  1.1  skrll /* 0100nnnn01111110 ldc <REG_N>,RE     */{"ldc",{A_REG_N,A_RE},{HEX_4,REG_N,HEX_7,HEX_E}, arch_sh_dsp_up},
    474  1.1  skrll 
    475  1.1  skrll /* 0100nnnn01101110 ldc <REG_N>,RS     */{"ldc",{A_REG_N,A_RS},{HEX_4,REG_N,HEX_6,HEX_E}, arch_sh_dsp_up},
    476  1.1  skrll 
    477  1.1  skrll /* 0100nnnn00111110 ldc <REG_N>,SSR     */{"ldc",{A_REG_N,A_SSR},{HEX_4,REG_N,HEX_3,HEX_E}, arch_sh3_nommu_up},
    478  1.1  skrll 
    479  1.1  skrll /* 0100nnnn01001110 ldc <REG_N>,SPC     */{"ldc",{A_REG_N,A_SPC},{HEX_4,REG_N,HEX_4,HEX_E}, arch_sh3_nommu_up},
    480  1.1  skrll 
    481  1.1  skrll /* 0100nnnn11111010 ldc <REG_N>,DBR     */{"ldc",{A_REG_N,A_DBR},{HEX_4,REG_N,HEX_F,HEX_A}, arch_sh4_nommu_nofpu_up},
    482  1.1  skrll 
    483  1.1  skrll /* 0100nnnn1xxx1110 ldc <REG_N>,Rn_BANK */{"ldc",{A_REG_N,A_REG_B},{HEX_4,REG_N,REG_B,HEX_E}, arch_sh3_nommu_up},
    484  1.1  skrll 
    485  1.1  skrll /* 0100nnnn00000111 ldc.l @<REG_N>+,SR  */{"ldc.l",{A_INC_N,A_SR},{HEX_4,REG_N,HEX_0,HEX_7}, arch_sh_up},
    486  1.1  skrll 
    487  1.1  skrll /* 0100nnnn00010111 ldc.l @<REG_N>+,GBR */{"ldc.l",{A_INC_N,A_GBR},{HEX_4,REG_N,HEX_1,HEX_7}, arch_sh_up},
    488  1.1  skrll 
    489  1.1  skrll /* 0100nnnn00100111 ldc.l @<REG_N>+,VBR */{"ldc.l",{A_INC_N,A_VBR},{HEX_4,REG_N,HEX_2,HEX_7}, arch_sh_up},
    490  1.1  skrll 
    491  1.1  skrll /* 0100nnnn00110110 ldc.l @<REG_N>+,SGR */{"ldc.l",{A_INC_N,A_SGR},{HEX_4,REG_N,HEX_3,HEX_6}, arch_sh4_nommu_nofpu_up},
    492  1.1  skrll 
    493  1.1  skrll /* 0100nnnn01010111 ldc.l @<REG_N>+,MOD */{"ldc.l",{A_INC_N,A_MOD},{HEX_4,REG_N,HEX_5,HEX_7}, arch_sh_dsp_up},
    494  1.1  skrll 
    495  1.1  skrll /* 0100nnnn01110111 ldc.l @<REG_N>+,RE */{"ldc.l",{A_INC_N,A_RE},{HEX_4,REG_N,HEX_7,HEX_7}, arch_sh_dsp_up},
    496  1.1  skrll 
    497  1.1  skrll /* 0100nnnn01100111 ldc.l @<REG_N>+,RS */{"ldc.l",{A_INC_N,A_RS},{HEX_4,REG_N,HEX_6,HEX_7}, arch_sh_dsp_up},
    498  1.1  skrll 
    499  1.1  skrll /* 0100nnnn00110111 ldc.l @<REG_N>+,SSR */{"ldc.l",{A_INC_N,A_SSR},{HEX_4,REG_N,HEX_3,HEX_7}, arch_sh3_nommu_up},
    500  1.1  skrll 
    501  1.1  skrll /* 0100nnnn01000111 ldc.l @<REG_N>+,SPC */{"ldc.l",{A_INC_N,A_SPC},{HEX_4,REG_N,HEX_4,HEX_7}, arch_sh3_nommu_up},
    502  1.1  skrll 
    503  1.1  skrll /* 0100nnnn11110110 ldc.l @<REG_N>+,DBR */{"ldc.l",{A_INC_N,A_DBR},{HEX_4,REG_N,HEX_F,HEX_6}, arch_sh4_nommu_nofpu_up},
    504  1.1  skrll 
    505  1.1  skrll /* 0100nnnn1xxx0111 ldc.l @<REG_N>+,Rn_BANK */{"ldc.l",{A_INC_N,A_REG_B},{HEX_4,REG_N,REG_B,HEX_7}, arch_sh3_nommu_up},
    506  1.1  skrll 
    507  1.1  skrll /* 0100mmmm00110100 ldrc <REG_M>        */{"ldrc",{A_REG_M},{HEX_4,REG_M,HEX_3,HEX_4}, arch_sh4al_dsp_up},
    508  1.1  skrll /* 10001010i8*1.... ldrc #<imm>         */{"ldrc",{A_IMM},{HEX_8,HEX_A,IMM0_8}, arch_sh4al_dsp_up},
    509  1.1  skrll 
    510  1.1  skrll /* 10001110i8p2.... ldre @(<disp>,PC)	*/{"ldre",{A_DISP_PC},{HEX_8,HEX_E,PCRELIMM_8BY2}, arch_sh_dsp_up},
    511  1.1  skrll 
    512  1.1  skrll /* 10001100i8p2.... ldrs @(<disp>,PC)	*/{"ldrs",{A_DISP_PC},{HEX_8,HEX_C,PCRELIMM_8BY2}, arch_sh_dsp_up},
    513  1.1  skrll 
    514  1.1  skrll /* 0100nnnn00001010 lds <REG_N>,MACH    */{"lds",{A_REG_N,A_MACH},{HEX_4,REG_N,HEX_0,HEX_A}, arch_sh_up},
    515  1.1  skrll 
    516  1.1  skrll /* 0100nnnn00011010 lds <REG_N>,MACL    */{"lds",{A_REG_N,A_MACL},{HEX_4,REG_N,HEX_1,HEX_A}, arch_sh_up},
    517  1.1  skrll 
    518  1.1  skrll /* 0100nnnn00101010 lds <REG_N>,PR      */{"lds",{A_REG_N,A_PR},{HEX_4,REG_N,HEX_2,HEX_A}, arch_sh_up},
    519  1.1  skrll 
    520  1.1  skrll /* 0100nnnn01101010 lds <REG_N>,DSR	*/{"lds",{A_REG_N,A_DSR},{HEX_4,REG_N,HEX_6,HEX_A}, arch_sh_dsp_up},
    521  1.1  skrll 
    522  1.1  skrll /* 0100nnnn01111010 lds <REG_N>,A0	*/{"lds",{A_REG_N,A_A0},{HEX_4,REG_N,HEX_7,HEX_A}, arch_sh_dsp_up},
    523  1.1  skrll 
    524  1.1  skrll /* 0100nnnn10001010 lds <REG_N>,X0	*/{"lds",{A_REG_N,A_X0},{HEX_4,REG_N,HEX_8,HEX_A}, arch_sh_dsp_up},
    525  1.1  skrll 
    526  1.1  skrll /* 0100nnnn10011010 lds <REG_N>,X1	*/{"lds",{A_REG_N,A_X1},{HEX_4,REG_N,HEX_9,HEX_A}, arch_sh_dsp_up},
    527  1.1  skrll 
    528  1.1  skrll /* 0100nnnn10101010 lds <REG_N>,Y0	*/{"lds",{A_REG_N,A_Y0},{HEX_4,REG_N,HEX_A,HEX_A}, arch_sh_dsp_up},
    529  1.1  skrll 
    530  1.1  skrll /* 0100nnnn10111010 lds <REG_N>,Y1	*/{"lds",{A_REG_N,A_Y1},{HEX_4,REG_N,HEX_B,HEX_A}, arch_sh_dsp_up},
    531  1.1  skrll 
    532  1.1  skrll /* 0100nnnn01011010 lds <REG_N>,FPUL    */{"lds",{A_REG_M,FPUL_N},{HEX_4,REG_M,HEX_5,HEX_A}, arch_sh2e_up},
    533  1.1  skrll 
    534  1.1  skrll /* 0100nnnn01101010 lds <REG_M>,FPSCR   */{"lds",{A_REG_M,FPSCR_N},{HEX_4,REG_M,HEX_6,HEX_A}, arch_sh2e_up},
    535  1.1  skrll 
    536  1.1  skrll /* 0100nnnn00000110 lds.l @<REG_N>+,MACH*/{"lds.l",{A_INC_N,A_MACH},{HEX_4,REG_N,HEX_0,HEX_6}, arch_sh_up},
    537  1.1  skrll 
    538  1.1  skrll /* 0100nnnn00010110 lds.l @<REG_N>+,MACL*/{"lds.l",{A_INC_N,A_MACL},{HEX_4,REG_N,HEX_1,HEX_6}, arch_sh_up},
    539  1.1  skrll 
    540  1.1  skrll /* 0100nnnn00100110 lds.l @<REG_N>+,PR  */{"lds.l",{A_INC_N,A_PR},{HEX_4,REG_N,HEX_2,HEX_6}, arch_sh_up},
    541  1.1  skrll 
    542  1.1  skrll /* 0100nnnn01100110 lds.l @<REG_N>+,DSR	*/{"lds.l",{A_INC_N,A_DSR},{HEX_4,REG_N,HEX_6,HEX_6}, arch_sh_dsp_up},
    543  1.1  skrll 
    544  1.1  skrll /* 0100nnnn01110110 lds.l @<REG_N>+,A0	*/{"lds.l",{A_INC_N,A_A0},{HEX_4,REG_N,HEX_7,HEX_6}, arch_sh_dsp_up},
    545  1.1  skrll 
    546  1.1  skrll /* 0100nnnn10000110 lds.l @<REG_N>+,X0	*/{"lds.l",{A_INC_N,A_X0},{HEX_4,REG_N,HEX_8,HEX_6}, arch_sh_dsp_up},
    547  1.1  skrll 
    548  1.1  skrll /* 0100nnnn10010110 lds.l @<REG_N>+,X1	*/{"lds.l",{A_INC_N,A_X1},{HEX_4,REG_N,HEX_9,HEX_6}, arch_sh_dsp_up},
    549  1.1  skrll 
    550  1.1  skrll /* 0100nnnn10100110 lds.l @<REG_N>+,Y0	*/{"lds.l",{A_INC_N,A_Y0},{HEX_4,REG_N,HEX_A,HEX_6}, arch_sh_dsp_up},
    551  1.1  skrll 
    552  1.1  skrll /* 0100nnnn10110110 lds.l @<REG_N>+,Y1	*/{"lds.l",{A_INC_N,A_Y1},{HEX_4,REG_N,HEX_B,HEX_6}, arch_sh_dsp_up},
    553  1.1  skrll 
    554  1.1  skrll /* 0100nnnn01010110 lds.l @<REG_M>+,FPUL*/{"lds.l",{A_INC_M,FPUL_N},{HEX_4,REG_M,HEX_5,HEX_6}, arch_sh2e_up},
    555  1.1  skrll 
    556  1.1  skrll /* 0100nnnn01100110 lds.l @<REG_M>+,FPSCR*/{"lds.l",{A_INC_M,FPSCR_N},{HEX_4,REG_M,HEX_6,HEX_6}, arch_sh2e_up},
    557  1.1  skrll 
    558  1.1  skrll /* 0000000000111000 ldtlb               */{"ldtlb",{0},{HEX_0,HEX_0,HEX_3,HEX_8}, arch_sh3_up},
    559  1.1  skrll 
    560  1.1  skrll /* 0100nnnnmmmm1111 mac.w @<REG_M>+,@<REG_N>+*/{"mac.w",{A_INC_M,A_INC_N},{HEX_4,REG_N,REG_M,HEX_F}, arch_sh_up},
    561  1.1  skrll 
    562  1.1  skrll /* 1110nnnni8*1.... mov #<imm>,<REG_N>  */{"mov",{A_IMM,A_REG_N},{HEX_E,REG_N,IMM0_8}, arch_sh_up},
    563  1.1  skrll 
    564  1.1  skrll /* 0110nnnnmmmm0011 mov <REG_M>,<REG_N> */{"mov",{ A_REG_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_3}, arch_sh_up},
    565  1.1  skrll 
    566  1.1  skrll /* 0000nnnnmmmm0100 mov.b <REG_M>,@(R0,<REG_N>)*/{"mov.b",{ A_REG_M,A_IND_R0_REG_N},{HEX_0,REG_N,REG_M,HEX_4}, arch_sh_up},
    567  1.1  skrll 
    568  1.1  skrll /* 0010nnnnmmmm0100 mov.b <REG_M>,@-<REG_N>*/{"mov.b",{ A_REG_M,A_DEC_N},{HEX_2,REG_N,REG_M,HEX_4}, arch_sh_up},
    569  1.1  skrll 
    570  1.1  skrll /* 0010nnnnmmmm0000 mov.b <REG_M>,@<REG_N>*/{"mov.b",{ A_REG_M,A_IND_N},{HEX_2,REG_N,REG_M,HEX_0}, arch_sh_up},
    571  1.1  skrll 
    572  1.1  skrll /* 10000100mmmmi4*1 mov.b @(<disp>,<REG_M>),R0*/{"mov.b",{A_DISP_REG_M,A_R0},{HEX_8,HEX_4,REG_M,IMM0_4}, arch_sh_up},
    573  1.1  skrll 
    574  1.1  skrll /* 11000100i8*1.... mov.b @(<disp>,GBR),R0*/{"mov.b",{A_DISP_GBR,A_R0},{HEX_C,HEX_4,IMM0_8}, arch_sh_up},
    575  1.1  skrll 
    576  1.1  skrll /* 0000nnnnmmmm1100 mov.b @(R0,<REG_M>),<REG_N>*/{"mov.b",{A_IND_R0_REG_M,A_REG_N},{HEX_0,REG_N,REG_M,HEX_C}, arch_sh_up},
    577  1.1  skrll 
    578  1.1  skrll /* 0110nnnnmmmm0100 mov.b @<REG_M>+,<REG_N>*/{"mov.b",{A_INC_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_4}, arch_sh_up},
    579  1.1  skrll 
    580  1.1  skrll /* 0110nnnnmmmm0000 mov.b @<REG_M>,<REG_N>*/{"mov.b",{A_IND_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_0}, arch_sh_up},
    581  1.1  skrll 
    582  1.1  skrll /* 10000000mmmmi4*1 mov.b R0,@(<disp>,<REG_M>)*/{"mov.b",{A_R0,A_DISP_REG_M},{HEX_8,HEX_0,REG_M,IMM1_4}, arch_sh_up},
    583  1.1  skrll 
    584  1.1  skrll /* 11000000i8*1.... mov.b R0,@(<disp>,GBR)*/{"mov.b",{A_R0,A_DISP_GBR},{HEX_C,HEX_0,IMM1_8}, arch_sh_up},
    585  1.1  skrll 
    586  1.1  skrll /* 0100nnnn10001011 mov.b R0,@<REG_N>+ */{"mov.b",{A_R0,A_INC_N},{HEX_4,REG_N,HEX_8,HEX_B}, arch_sh2a_nofpu_up},
    587  1.1  skrll /* 0100nnnn11001011 mov.b @-<REG_M>,R0 */{"mov.b",{A_DEC_M,A_R0},{HEX_4,REG_M,HEX_C,HEX_B}, arch_sh2a_nofpu_up},
    588  1.1  skrll /* 0011nnnnmmmm0001 0000dddddddddddd mov.b <REG_M>,@(<DISP12>,<REG_N>) */
    589  1.1  skrll {"mov.b",{A_REG_M,A_DISP_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_0,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
    590  1.1  skrll /* 0011nnnnmmmm0001 0100dddddddddddd mov.b @(<DISP12>,<REG_M>),<REG_N> */
    591  1.1  skrll {"mov.b",{A_DISP_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_4,DISP0_12}, arch_sh2a_nofpu_up | arch_op32},
    592  1.1  skrll /* 0001nnnnmmmmi4*4 mov.l <REG_M>,@(<disp>,<REG_N>)*/{"mov.l",{ A_REG_M,A_DISP_REG_N},{HEX_1,REG_N,REG_M,IMM1_4BY4}, arch_sh_up},
    593  1.1  skrll 
    594  1.1  skrll /* 0000nnnnmmmm0110 mov.l <REG_M>,@(R0,<REG_N>)*/{"mov.l",{ A_REG_M,A_IND_R0_REG_N},{HEX_0,REG_N,REG_M,HEX_6}, arch_sh_up},
    595  1.1  skrll 
    596  1.1  skrll /* 0010nnnnmmmm0110 mov.l <REG_M>,@-<REG_N>*/{"mov.l",{ A_REG_M,A_DEC_N},{HEX_2,REG_N,REG_M,HEX_6}, arch_sh_up},
    597  1.1  skrll 
    598  1.1  skrll /* 0010nnnnmmmm0010 mov.l <REG_M>,@<REG_N>*/{"mov.l",{ A_REG_M,A_IND_N},{HEX_2,REG_N,REG_M,HEX_2}, arch_sh_up},
    599  1.1  skrll 
    600  1.1  skrll /* 0101nnnnmmmmi4*4 mov.l @(<disp>,<REG_M>),<REG_N>*/{"mov.l",{A_DISP_REG_M,A_REG_N},{HEX_5,REG_N,REG_M,IMM0_4BY4}, arch_sh_up},
    601  1.1  skrll 
    602  1.1  skrll /* 11000110i8*4.... mov.l @(<disp>,GBR),R0*/{"mov.l",{A_DISP_GBR,A_R0},{HEX_C,HEX_6,IMM0_8BY4}, arch_sh_up},
    603  1.1  skrll 
    604  1.1  skrll /* 1101nnnni8p4.... mov.l @(<disp>,PC),<REG_N>*/{"mov.l",{A_DISP_PC,A_REG_N},{HEX_D,REG_N,PCRELIMM_8BY4}, arch_sh_up},
    605  1.1  skrll 
    606  1.1  skrll /* 0000nnnnmmmm1110 mov.l @(R0,<REG_M>),<REG_N>*/{"mov.l",{A_IND_R0_REG_M,A_REG_N},{HEX_0,REG_N,REG_M,HEX_E}, arch_sh_up},
    607  1.1  skrll 
    608  1.1  skrll /* 0110nnnnmmmm0110 mov.l @<REG_M>+,<REG_N>*/{"mov.l",{A_INC_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_6}, arch_sh_up},
    609  1.1  skrll 
    610  1.1  skrll /* 0110nnnnmmmm0010 mov.l @<REG_M>,<REG_N>*/{"mov.l",{A_IND_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_2}, arch_sh_up},
    611  1.1  skrll 
    612  1.1  skrll /* 11000010i8*4.... mov.l R0,@(<disp>,GBR)*/{"mov.l",{A_R0,A_DISP_GBR},{HEX_C,HEX_2,IMM1_8BY4}, arch_sh_up},
    613  1.1  skrll 
    614  1.1  skrll /* 0100nnnn10101011 mov.l R0,@<REG_N>+ */{"mov.l",{A_R0,A_INC_N},{HEX_4,REG_N,HEX_A,HEX_B}, arch_sh2a_nofpu_up},
    615  1.1  skrll /* 0100nnnn11001011 mov.l @-<REG_M>,R0 */{"mov.l",{A_DEC_M,A_R0},{HEX_4,REG_M,HEX_E,HEX_B}, arch_sh2a_nofpu_up},
    616  1.1  skrll /* 0011nnnnmmmm0001 0010dddddddddddd mov.l <REG_M>,@(<DISP12>,<REG_N>) */
    617  1.1  skrll {"mov.l",{A_REG_M,A_DISP_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_2,DISP1_12BY4}, arch_sh2a_nofpu_up | arch_op32},
    618  1.1  skrll /* 0011nnnnmmmm0001 0110dddddddddddd mov.l @(<DISP12>,<REG_M>),<REG_N> */
    619  1.1  skrll {"mov.l",{A_DISP_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_6,DISP0_12BY4}, arch_sh2a_nofpu_up | arch_op32},
    620  1.1  skrll /* 0000nnnnmmmm0101 mov.w <REG_M>,@(R0,<REG_N>)*/{"mov.w",{ A_REG_M,A_IND_R0_REG_N},{HEX_0,REG_N,REG_M,HEX_5}, arch_sh_up},
    621  1.1  skrll 
    622  1.1  skrll /* 0010nnnnmmmm0101 mov.w <REG_M>,@-<REG_N>*/{"mov.w",{ A_REG_M,A_DEC_N},{HEX_2,REG_N,REG_M,HEX_5}, arch_sh_up},
    623  1.1  skrll 
    624  1.1  skrll /* 0010nnnnmmmm0001 mov.w <REG_M>,@<REG_N>*/{"mov.w",{ A_REG_M,A_IND_N},{HEX_2,REG_N,REG_M,HEX_1}, arch_sh_up},
    625  1.1  skrll 
    626  1.1  skrll /* 10000101mmmmi4*2 mov.w @(<disp>,<REG_M>),R0*/{"mov.w",{A_DISP_REG_M,A_R0},{HEX_8,HEX_5,REG_M,IMM0_4BY2}, arch_sh_up},
    627  1.1  skrll 
    628  1.1  skrll /* 11000101i8*2.... mov.w @(<disp>,GBR),R0*/{"mov.w",{A_DISP_GBR,A_R0},{HEX_C,HEX_5,IMM0_8BY2}, arch_sh_up},
    629  1.1  skrll 
    630  1.1  skrll /* 1001nnnni8p2.... mov.w @(<disp>,PC),<REG_N>*/{"mov.w",{A_DISP_PC,A_REG_N},{HEX_9,REG_N,PCRELIMM_8BY2}, arch_sh_up},
    631  1.1  skrll 
    632  1.1  skrll /* 0000nnnnmmmm1101 mov.w @(R0,<REG_M>),<REG_N>*/{"mov.w",{A_IND_R0_REG_M,A_REG_N},{HEX_0,REG_N,REG_M,HEX_D}, arch_sh_up},
    633  1.1  skrll 
    634  1.1  skrll /* 0110nnnnmmmm0101 mov.w @<REG_M>+,<REG_N>*/{"mov.w",{A_INC_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_5}, arch_sh_up},
    635  1.1  skrll 
    636  1.1  skrll /* 0110nnnnmmmm0001 mov.w @<REG_M>,<REG_N>*/{"mov.w",{A_IND_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_1}, arch_sh_up},
    637  1.1  skrll 
    638  1.1  skrll /* 10000001mmmmi4*2 mov.w R0,@(<disp>,<REG_M>)*/{"mov.w",{A_R0,A_DISP_REG_M},{HEX_8,HEX_1,REG_M,IMM1_4BY2}, arch_sh_up},
    639  1.1  skrll 
    640  1.1  skrll /* 11000001i8*2.... mov.w R0,@(<disp>,GBR)*/{"mov.w",{A_R0,A_DISP_GBR},{HEX_C,HEX_1,IMM1_8BY2}, arch_sh_up},
    641  1.1  skrll 
    642  1.1  skrll /* 0100nnnn10011011 mov.w R0,@<REG_N>+ */{"mov.w",{A_R0,A_INC_N},{HEX_4,REG_N,HEX_9,HEX_B}, arch_sh2a_nofpu_up},
    643  1.1  skrll /* 0100nnnn11011011 mov.w @-<REG_M>,R0 */{"mov.w",{A_DEC_M,A_R0},{HEX_4,REG_M,HEX_D,HEX_B}, arch_sh2a_nofpu_up},
    644  1.1  skrll /* 0011nnnnmmmm0001 0001dddddddddddd mov.w <REG_M>,@(<DISP12>,<REG_N>) */
    645  1.1  skrll {"mov.w",{A_REG_M,A_DISP_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_1,DISP1_12BY2}, arch_sh2a_nofpu_up | arch_op32},
    646  1.1  skrll /* 0011nnnnmmmm0001 0101dddddddddddd mov.w @(<DISP12>,<REG_M>),<REG_N> */
    647  1.1  skrll {"mov.w",{A_DISP_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_5,DISP0_12BY2}, arch_sh2a_nofpu_up | arch_op32},
    648  1.1  skrll /* 11000111i8p4.... mova @(<disp>,PC),R0*/{"mova",{A_DISP_PC,A_R0},{HEX_C,HEX_7,PCRELIMM_8BY4}, arch_sh_up},
    649  1.1  skrll /* 0000nnnn11000011 movca.l R0,@<REG_N> */{"movca.l",{A_R0,A_IND_N},{HEX_0,REG_N,HEX_C,HEX_3}, arch_sh4_nommu_nofpu_up},
    650  1.1  skrll 
    651  1.1  skrll /* 0000nnnn01110011 movco.l r0,@<REG_N> */{"movco.l",{A_R0,A_IND_N},{HEX_0,REG_N,HEX_7,HEX_3}, arch_sh4a_nofpu_up},
    652  1.1  skrll /* 0000mmmm01100011 movli.l @<REG_M>,r0 */{"movli.l",{A_IND_M,A_R0},{HEX_0,REG_M,HEX_6,HEX_3}, arch_sh4a_nofpu_up},
    653  1.1  skrll 
    654  1.1  skrll /* 0000nnnn00101001 movt <REG_N>        */{"movt",{A_REG_N},{HEX_0,REG_N,HEX_2,HEX_9}, arch_sh_up},
    655  1.1  skrll 
    656  1.1  skrll /* 0100mmmm10101001 movua.l @<REG_M>,r0 */{"movua.l",{A_IND_M,A_R0},{HEX_4,REG_M,HEX_A,HEX_9}, arch_sh4a_nofpu_up},
    657  1.1  skrll /* 0100mmmm11101001 movua.l @<REG_M>+,r0 */{"movua.l",{A_INC_M,A_R0},{HEX_4,REG_M,HEX_E,HEX_9}, arch_sh4a_nofpu_up},
    658  1.1  skrll 
    659  1.1  skrll /* 0010nnnnmmmm1111 muls.w <REG_M>,<REG_N>*/{"muls.w",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_F}, arch_sh_up},
    660  1.1  skrll /* 0010nnnnmmmm1111 muls <REG_M>,<REG_N>*/{"muls",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_F}, arch_sh_up},
    661  1.1  skrll 
    662  1.1  skrll /* 0000nnnnmmmm0111 mul.l <REG_M>,<REG_N>*/{"mul.l",{ A_REG_M,A_REG_N},{HEX_0,REG_N,REG_M,HEX_7}, arch_sh2_up},
    663  1.1  skrll 
    664  1.1  skrll /* 0010nnnnmmmm1110 mulu.w <REG_M>,<REG_N>*/{"mulu.w",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_E}, arch_sh_up},
    665  1.1  skrll /* 0010nnnnmmmm1110 mulu <REG_M>,<REG_N>*/{"mulu",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_E}, arch_sh_up},
    666  1.1  skrll 
    667  1.1  skrll /* 0110nnnnmmmm1011 neg <REG_M>,<REG_N> */{"neg",{ A_REG_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_B}, arch_sh_up},
    668  1.1  skrll 
    669  1.1  skrll /* 0110nnnnmmmm1010 negc <REG_M>,<REG_N>*/{"negc",{ A_REG_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_A}, arch_sh_up},
    670  1.1  skrll 
    671  1.1  skrll /* 0000000000001001 nop                 */{"nop",{0},{HEX_0,HEX_0,HEX_0,HEX_9}, arch_sh_up},
    672  1.1  skrll 
    673  1.1  skrll /* 0110nnnnmmmm0111 not <REG_M>,<REG_N> */{"not",{ A_REG_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_7}, arch_sh_up},
    674  1.1  skrll /* 0000nnnn10010011 ocbi @<REG_N>       */{"ocbi",{A_IND_N},{HEX_0,REG_N,HEX_9,HEX_3}, arch_sh4_nommu_nofpu_up},
    675  1.1  skrll 
    676  1.1  skrll /* 0000nnnn10100011 ocbp @<REG_N>       */{"ocbp",{A_IND_N},{HEX_0,REG_N,HEX_A,HEX_3}, arch_sh4_nommu_nofpu_up},
    677  1.1  skrll 
    678  1.1  skrll /* 0000nnnn10110011 ocbwb @<REG_N>      */{"ocbwb",{A_IND_N},{HEX_0,REG_N,HEX_B,HEX_3}, arch_sh4_nommu_nofpu_up},
    679  1.1  skrll 
    680  1.1  skrll 
    681  1.1  skrll /* 11001011i8*1.... or #<imm>,R0        */{"or",{A_IMM,A_R0},{HEX_C,HEX_B,IMM0_8}, arch_sh_up},
    682  1.1  skrll 
    683  1.1  skrll /* 0010nnnnmmmm1011 or <REG_M>,<REG_N>  */{"or",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_B}, arch_sh_up},
    684  1.1  skrll 
    685  1.1  skrll /* 11001111i8*1.... or.b #<imm>,@(R0,GBR)*/{"or.b",{A_IMM,A_R0_GBR},{HEX_C,HEX_F,IMM0_8}, arch_sh_up},
    686  1.1  skrll 
    687  1.1  skrll /* 0000nnnn10000011 pref @<REG_N>       */{"pref",{A_IND_N},{HEX_0,REG_N,HEX_8,HEX_3}, arch_sh2a_nofpu_or_sh4_nommu_nofpu_up},
    688  1.1  skrll 
    689  1.1  skrll /* 0000nnnn11010011 prefi @<REG_N>      */{"prefi",{A_IND_N},{HEX_0,REG_N,HEX_D,HEX_3}, arch_sh4a_nofpu_up},
    690  1.1  skrll 
    691  1.1  skrll /* 0100nnnn00100100 rotcl <REG_N>       */{"rotcl",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_4}, arch_sh_up},
    692  1.1  skrll 
    693  1.1  skrll /* 0100nnnn00100101 rotcr <REG_N>       */{"rotcr",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_5}, arch_sh_up},
    694  1.1  skrll 
    695  1.1  skrll /* 0100nnnn00000100 rotl <REG_N>        */{"rotl",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_4}, arch_sh_up},
    696  1.1  skrll 
    697  1.1  skrll /* 0100nnnn00000101 rotr <REG_N>        */{"rotr",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_5}, arch_sh_up},
    698  1.1  skrll 
    699  1.1  skrll /* 0000000000101011 rte                 */{"rte",{0},{HEX_0,HEX_0,HEX_2,HEX_B}, arch_sh_up},
    700  1.1  skrll 
    701  1.1  skrll /* 0000000000001011 rts                 */{"rts",{0},{HEX_0,HEX_0,HEX_0,HEX_B}, arch_sh_up},
    702  1.1  skrll 
    703  1.1  skrll /* 0000000010011000 setdmx              */{"setdmx",{0},{HEX_0,HEX_0,HEX_9,HEX_8}, arch_sh4al_dsp_up},
    704  1.1  skrll /* 0000000011001000 setdmy              */{"setdmy",{0},{HEX_0,HEX_0,HEX_C,HEX_8}, arch_sh4al_dsp_up},
    705  1.1  skrll 
    706  1.1  skrll /* 0000000001011000 sets                */{"sets",{0},{HEX_0,HEX_0,HEX_5,HEX_8}, arch_sh_up},
    707  1.1  skrll /* 0000000000011000 sett                */{"sett",{0},{HEX_0,HEX_0,HEX_1,HEX_8}, arch_sh_up},
    708  1.1  skrll 
    709  1.1  skrll /* 0100nnnn00010100 setrc <REG_N>       */{"setrc",{A_REG_N},{HEX_4,REG_N,HEX_1,HEX_4}, arch_sh_dsp_up},
    710  1.1  skrll 
    711  1.1  skrll /* 10000010i8*1.... setrc #<imm>        */{"setrc",{A_IMM},{HEX_8,HEX_2,IMM0_8}, arch_sh_dsp_up},
    712  1.1  skrll 
    713  1.1  skrll /* repeat start end <REG_N>       	*/{"repeat",{A_DISP_PC,A_DISP_PC,A_REG_N},{REPEAT,REG_N,HEX_1,HEX_4}, arch_sh_dsp_up},
    714  1.1  skrll 
    715  1.1  skrll /* repeat start end #<imm>        	*/{"repeat",{A_DISP_PC,A_DISP_PC,A_IMM},{REPEAT,HEX_2,IMM0_8,HEX_8}, arch_sh_dsp_up},
    716  1.1  skrll 
    717  1.1  skrll /* 0100nnnnmmmm1100 shad <REG_M>,<REG_N>*/{"shad",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_C}, arch_sh2a_nofpu_or_sh3_nommu_up},
    718  1.1  skrll 
    719  1.1  skrll /* 0100nnnnmmmm1101 shld <REG_M>,<REG_N>*/{"shld",{ A_REG_M,A_REG_N},{HEX_4,REG_N,REG_M,HEX_D}, arch_sh2a_nofpu_or_sh3_nommu_up},
    720  1.1  skrll 
    721  1.1  skrll /* 0100nnnn00100000 shal <REG_N>        */{"shal",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_0}, arch_sh_up},
    722  1.1  skrll 
    723  1.1  skrll /* 0100nnnn00100001 shar <REG_N>        */{"shar",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_1}, arch_sh_up},
    724  1.1  skrll 
    725  1.1  skrll /* 0100nnnn00000000 shll <REG_N>        */{"shll",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_0}, arch_sh_up},
    726  1.1  skrll 
    727  1.1  skrll /* 0100nnnn00101000 shll16 <REG_N>      */{"shll16",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_8}, arch_sh_up},
    728  1.1  skrll 
    729  1.1  skrll /* 0100nnnn00001000 shll2 <REG_N>       */{"shll2",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_8}, arch_sh_up},
    730  1.1  skrll 
    731  1.1  skrll /* 0100nnnn00011000 shll8 <REG_N>       */{"shll8",{A_REG_N},{HEX_4,REG_N,HEX_1,HEX_8}, arch_sh_up},
    732  1.1  skrll 
    733  1.1  skrll /* 0100nnnn00000001 shlr <REG_N>        */{"shlr",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_1}, arch_sh_up},
    734  1.1  skrll 
    735  1.1  skrll /* 0100nnnn00101001 shlr16 <REG_N>      */{"shlr16",{A_REG_N},{HEX_4,REG_N,HEX_2,HEX_9}, arch_sh_up},
    736  1.1  skrll 
    737  1.1  skrll /* 0100nnnn00001001 shlr2 <REG_N>       */{"shlr2",{A_REG_N},{HEX_4,REG_N,HEX_0,HEX_9}, arch_sh_up},
    738  1.1  skrll 
    739  1.1  skrll /* 0100nnnn00011001 shlr8 <REG_N>       */{"shlr8",{A_REG_N},{HEX_4,REG_N,HEX_1,HEX_9}, arch_sh_up},
    740  1.1  skrll 
    741  1.1  skrll /* 0000000000011011 sleep               */{"sleep",{0},{HEX_0,HEX_0,HEX_1,HEX_B}, arch_sh_up},
    742  1.1  skrll 
    743  1.1  skrll /* 0000nnnn00000010 stc SR,<REG_N>      */{"stc",{A_SR,A_REG_N},{HEX_0,REG_N,HEX_0,HEX_2}, arch_sh_up},
    744  1.1  skrll 
    745  1.1  skrll /* 0000nnnn00010010 stc GBR,<REG_N>     */{"stc",{A_GBR,A_REG_N},{HEX_0,REG_N,HEX_1,HEX_2}, arch_sh_up},
    746  1.1  skrll 
    747  1.1  skrll /* 0000nnnn00100010 stc VBR,<REG_N>     */{"stc",{A_VBR,A_REG_N},{HEX_0,REG_N,HEX_2,HEX_2}, arch_sh_up},
    748  1.1  skrll 
    749  1.1  skrll /* 0000nnnn01010010 stc MOD,<REG_N>     */{"stc",{A_MOD,A_REG_N},{HEX_0,REG_N,HEX_5,HEX_2}, arch_sh_dsp_up},
    750  1.1  skrll 
    751  1.1  skrll /* 0000nnnn01110010 stc RE,<REG_N>     */{"stc",{A_RE,A_REG_N},{HEX_0,REG_N,HEX_7,HEX_2}, arch_sh_dsp_up},
    752  1.1  skrll 
    753  1.1  skrll /* 0000nnnn01100010 stc RS,<REG_N>     */{"stc",{A_RS,A_REG_N},{HEX_0,REG_N,HEX_6,HEX_2}, arch_sh_dsp_up},
    754  1.1  skrll 
    755  1.1  skrll /* 0000nnnn00110010 stc SSR,<REG_N>     */{"stc",{A_SSR,A_REG_N},{HEX_0,REG_N,HEX_3,HEX_2}, arch_sh3_nommu_up},
    756  1.1  skrll 
    757  1.1  skrll /* 0000nnnn01000010 stc SPC,<REG_N>     */{"stc",{A_SPC,A_REG_N},{HEX_0,REG_N,HEX_4,HEX_2}, arch_sh3_nommu_up},
    758  1.1  skrll 
    759  1.1  skrll /* 0000nnnn00111010 stc SGR,<REG_N>     */{"stc",{A_SGR,A_REG_N},{HEX_0,REG_N,HEX_3,HEX_A}, arch_sh4_nommu_nofpu_up},
    760  1.1  skrll 
    761  1.1  skrll /* 0000nnnn11111010 stc DBR,<REG_N>     */{"stc",{A_DBR,A_REG_N},{HEX_0,REG_N,HEX_F,HEX_A}, arch_sh4_nommu_nofpu_up},
    762  1.1  skrll 
    763  1.1  skrll /* 0000nnnn1xxx0010 stc Rn_BANK,<REG_N> */{"stc",{A_REG_B,A_REG_N},{HEX_0,REG_N,REG_B,HEX_2}, arch_sh3_nommu_up},
    764  1.1  skrll 
    765  1.1  skrll /* 0000nnnn01001010 stc TBR,<REG_N> */ {"stc",{A_TBR,A_REG_N},{HEX_0,REG_N,HEX_4,HEX_A}, arch_sh2a_nofpu_up},
    766  1.1  skrll 
    767  1.1  skrll /* 0100nnnn00000011 stc.l SR,@-<REG_N>  */{"stc.l",{A_SR,A_DEC_N},{HEX_4,REG_N,HEX_0,HEX_3}, arch_sh_up},
    768  1.1  skrll 
    769  1.1  skrll /* 0100nnnn00100011 stc.l VBR,@-<REG_N> */{"stc.l",{A_VBR,A_DEC_N},{HEX_4,REG_N,HEX_2,HEX_3}, arch_sh_up},
    770  1.1  skrll 
    771  1.1  skrll /* 0100nnnn01010011 stc.l MOD,@-<REG_N> */{"stc.l",{A_MOD,A_DEC_N},{HEX_4,REG_N,HEX_5,HEX_3}, arch_sh_dsp_up},
    772  1.1  skrll 
    773  1.1  skrll /* 0100nnnn01110011 stc.l RE,@-<REG_N>  */{"stc.l",{A_RE,A_DEC_N},{HEX_4,REG_N,HEX_7,HEX_3}, arch_sh_dsp_up},
    774  1.1  skrll 
    775  1.1  skrll /* 0100nnnn01100011 stc.l RS,@-<REG_N>  */{"stc.l",{A_RS,A_DEC_N},{HEX_4,REG_N,HEX_6,HEX_3}, arch_sh_dsp_up},
    776  1.1  skrll 
    777  1.1  skrll /* 0100nnnn00110011 stc.l SSR,@-<REG_N> */{"stc.l",{A_SSR,A_DEC_N},{HEX_4,REG_N,HEX_3,HEX_3}, arch_sh3_nommu_up},
    778  1.1  skrll 
    779  1.1  skrll /* 0100nnnn01000011 stc.l SPC,@-<REG_N> */{"stc.l",{A_SPC,A_DEC_N},{HEX_4,REG_N,HEX_4,HEX_3}, arch_sh3_nommu_up},
    780  1.1  skrll 
    781  1.1  skrll /* 0100nnnn00010011 stc.l GBR,@-<REG_N> */{"stc.l",{A_GBR,A_DEC_N},{HEX_4,REG_N,HEX_1,HEX_3}, arch_sh_up},
    782  1.1  skrll 
    783  1.1  skrll /* 0100nnnn00110010 stc.l SGR,@-<REG_N> */{"stc.l",{A_SGR,A_DEC_N},{HEX_4,REG_N,HEX_3,HEX_2}, arch_sh4_nommu_nofpu_up},
    784  1.1  skrll 
    785  1.1  skrll /* 0100nnnn11110010 stc.l DBR,@-<REG_N> */{"stc.l",{A_DBR,A_DEC_N},{HEX_4,REG_N,HEX_F,HEX_2}, arch_sh4_nommu_nofpu_up},
    786  1.1  skrll 
    787  1.1  skrll /* 0100nnnn1xxx0011 stc.l Rn_BANK,@-<REG_N> */{"stc.l",{A_REG_B,A_DEC_N},{HEX_4,REG_N,REG_B,HEX_3}, arch_sh3_nommu_up},
    788  1.1  skrll 
    789  1.1  skrll /* 0000nnnn00001010 sts MACH,<REG_N>    */{"sts",{A_MACH,A_REG_N},{HEX_0,REG_N,HEX_0,HEX_A}, arch_sh_up},
    790  1.1  skrll 
    791  1.1  skrll /* 0000nnnn00011010 sts MACL,<REG_N>    */{"sts",{A_MACL,A_REG_N},{HEX_0,REG_N,HEX_1,HEX_A}, arch_sh_up},
    792  1.1  skrll 
    793  1.1  skrll /* 0000nnnn00101010 sts PR,<REG_N>      */{"sts",{A_PR,A_REG_N},{HEX_0,REG_N,HEX_2,HEX_A}, arch_sh_up},
    794  1.1  skrll 
    795  1.1  skrll /* 0000nnnn01101010 sts DSR,<REG_N>	*/{"sts",{A_DSR,A_REG_N},{HEX_0,REG_N,HEX_6,HEX_A}, arch_sh_dsp_up},
    796  1.1  skrll 
    797  1.1  skrll /* 0000nnnn01111010 sts A0,<REG_N>	*/{"sts",{A_A0,A_REG_N},{HEX_0,REG_N,HEX_7,HEX_A}, arch_sh_dsp_up},
    798  1.1  skrll 
    799  1.1  skrll /* 0000nnnn10001010 sts X0,<REG_N>	*/{"sts",{A_X0,A_REG_N},{HEX_0,REG_N,HEX_8,HEX_A}, arch_sh_dsp_up},
    800  1.1  skrll 
    801  1.1  skrll /* 0000nnnn10011010 sts X1,<REG_N>	*/{"sts",{A_X1,A_REG_N},{HEX_0,REG_N,HEX_9,HEX_A}, arch_sh_dsp_up},
    802  1.1  skrll 
    803  1.1  skrll /* 0000nnnn10101010 sts Y0,<REG_N>	*/{"sts",{A_Y0,A_REG_N},{HEX_0,REG_N,HEX_A,HEX_A}, arch_sh_dsp_up},
    804  1.1  skrll 
    805  1.1  skrll /* 0000nnnn10111010 sts Y1,<REG_N>	*/{"sts",{A_Y1,A_REG_N},{HEX_0,REG_N,HEX_B,HEX_A}, arch_sh_dsp_up},
    806  1.1  skrll 
    807  1.1  skrll /* 0000nnnn01011010 sts FPUL,<REG_N>    */{"sts",{FPUL_M,A_REG_N},{HEX_0,REG_N,HEX_5,HEX_A}, arch_sh2e_up},
    808  1.1  skrll 
    809  1.1  skrll /* 0000nnnn01101010 sts FPSCR,<REG_N>   */{"sts",{FPSCR_M,A_REG_N},{HEX_0,REG_N,HEX_6,HEX_A}, arch_sh2e_up},
    810  1.1  skrll 
    811  1.1  skrll /* 0100nnnn00000010 sts.l MACH,@-<REG_N>*/{"sts.l",{A_MACH,A_DEC_N},{HEX_4,REG_N,HEX_0,HEX_2}, arch_sh_up},
    812  1.1  skrll 
    813  1.1  skrll /* 0100nnnn00010010 sts.l MACL,@-<REG_N>*/{"sts.l",{A_MACL,A_DEC_N},{HEX_4,REG_N,HEX_1,HEX_2}, arch_sh_up},
    814  1.1  skrll 
    815  1.1  skrll /* 0100nnnn00100010 sts.l PR,@-<REG_N>  */{"sts.l",{A_PR,A_DEC_N},{HEX_4,REG_N,HEX_2,HEX_2}, arch_sh_up},
    816  1.1  skrll 
    817  1.1  skrll /* 0100nnnn01100110 sts.l DSR,@-<REG_N>	*/{"sts.l",{A_DSR,A_DEC_N},{HEX_4,REG_N,HEX_6,HEX_2}, arch_sh_dsp_up},
    818  1.1  skrll 
    819  1.1  skrll /* 0100nnnn01110110 sts.l A0,@-<REG_N>	*/{"sts.l",{A_A0,A_DEC_N},{HEX_4,REG_N,HEX_7,HEX_2}, arch_sh_dsp_up},
    820  1.1  skrll 
    821  1.1  skrll /* 0100nnnn10000110 sts.l X0,@-<REG_N>	*/{"sts.l",{A_X0,A_DEC_N},{HEX_4,REG_N,HEX_8,HEX_2}, arch_sh_dsp_up},
    822  1.1  skrll 
    823  1.1  skrll /* 0100nnnn10010110 sts.l X1,@-<REG_N>	*/{"sts.l",{A_X1,A_DEC_N},{HEX_4,REG_N,HEX_9,HEX_2}, arch_sh_dsp_up},
    824  1.1  skrll 
    825  1.1  skrll /* 0100nnnn10100110 sts.l Y0,@-<REG_N>	*/{"sts.l",{A_Y0,A_DEC_N},{HEX_4,REG_N,HEX_A,HEX_2}, arch_sh_dsp_up},
    826  1.1  skrll 
    827  1.1  skrll /* 0100nnnn10110110 sts.l Y1,@-<REG_N>	*/{"sts.l",{A_Y1,A_DEC_N},{HEX_4,REG_N,HEX_B,HEX_2}, arch_sh_dsp_up},
    828  1.1  skrll 
    829  1.1  skrll /* 0100nnnn01010010 sts.l FPUL,@-<REG_N>*/{"sts.l",{FPUL_M,A_DEC_N},{HEX_4,REG_N,HEX_5,HEX_2}, arch_sh2e_up},
    830  1.1  skrll 
    831  1.1  skrll /* 0100nnnn01100010 sts.l FPSCR,@-<REG_N>*/{"sts.l",{FPSCR_M,A_DEC_N},{HEX_4,REG_N,HEX_6,HEX_2}, arch_sh2e_up},
    832  1.1  skrll 
    833  1.1  skrll /* 0011nnnnmmmm1000 sub <REG_M>,<REG_N> */{"sub",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_8}, arch_sh_up},
    834  1.1  skrll 
    835  1.1  skrll /* 0011nnnnmmmm1010 subc <REG_M>,<REG_N>*/{"subc",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_A}, arch_sh_up},
    836  1.1  skrll 
    837  1.1  skrll /* 0011nnnnmmmm1011 subv <REG_M>,<REG_N>*/{"subv",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_B}, arch_sh_up},
    838  1.1  skrll 
    839  1.1  skrll /* 0110nnnnmmmm1000 swap.b <REG_M>,<REG_N>*/{"swap.b",{ A_REG_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_8}, arch_sh_up},
    840  1.1  skrll 
    841  1.1  skrll /* 0110nnnnmmmm1001 swap.w <REG_M>,<REG_N>*/{"swap.w",{ A_REG_M,A_REG_N},{HEX_6,REG_N,REG_M,HEX_9}, arch_sh_up},
    842  1.1  skrll 
    843  1.1  skrll /* 0000000010101011 synco               */{"synco",{0},{HEX_0,HEX_0,HEX_A,HEX_B}, arch_sh4a_nofpu_up},
    844  1.1  skrll 
    845  1.1  skrll /* 0100nnnn00011011 tas.b @<REG_N>      */{"tas.b",{A_IND_N},{HEX_4,REG_N,HEX_1,HEX_B}, arch_sh_up},
    846  1.1  skrll 
    847  1.1  skrll /* 11000011i8*1.... trapa #<imm>        */{"trapa",{A_IMM},{HEX_C,HEX_3,IMM0_8}, arch_sh_up},
    848  1.1  skrll 
    849  1.1  skrll /* 11001000i8*1.... tst #<imm>,R0       */{"tst",{A_IMM,A_R0},{HEX_C,HEX_8,IMM0_8}, arch_sh_up},
    850  1.1  skrll 
    851  1.1  skrll /* 0010nnnnmmmm1000 tst <REG_M>,<REG_N> */{"tst",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_8}, arch_sh_up},
    852  1.1  skrll 
    853  1.1  skrll /* 11001100i8*1.... tst.b #<imm>,@(R0,GBR)*/{"tst.b",{A_IMM,A_R0_GBR},{HEX_C,HEX_C,IMM0_8}, arch_sh_up},
    854  1.1  skrll 
    855  1.1  skrll /* 11001010i8*1.... xor #<imm>,R0       */{"xor",{A_IMM,A_R0},{HEX_C,HEX_A,IMM0_8}, arch_sh_up},
    856  1.1  skrll 
    857  1.1  skrll /* 0010nnnnmmmm1010 xor <REG_M>,<REG_N> */{"xor",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_A}, arch_sh_up},
    858  1.1  skrll 
    859  1.1  skrll /* 11001110i8*1.... xor.b #<imm>,@(R0,GBR)*/{"xor.b",{A_IMM,A_R0_GBR},{HEX_C,HEX_E,IMM0_8}, arch_sh_up},
    860  1.1  skrll 
    861  1.1  skrll /* 0010nnnnmmmm1101 xtrct <REG_M>,<REG_N>*/{"xtrct",{ A_REG_M,A_REG_N},{HEX_2,REG_N,REG_M,HEX_D}, arch_sh_up},
    862  1.1  skrll 
    863  1.1  skrll /* 0100nnnn00010000 dt <REG_N>          */{"dt",{A_REG_N},{HEX_4,REG_N,HEX_1,HEX_0}, arch_sh2_up},
    864  1.1  skrll 
    865  1.1  skrll /* 0011nnnnmmmm1101 dmuls.l <REG_M>,<REG_N>*/{"dmuls.l",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_D}, arch_sh2_up},
    866  1.1  skrll 
    867  1.1  skrll /* 0011nnnnmmmm0101 dmulu.l <REG_M>,<REG_N>*/{"dmulu.l",{ A_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_5}, arch_sh2_up},
    868  1.1  skrll 
    869  1.1  skrll /* 0000nnnnmmmm1111 mac.l @<REG_M>+,@<REG_N>+*/{"mac.l",{A_INC_M,A_INC_N},{HEX_0,REG_N,REG_M,HEX_F}, arch_sh2_up},
    870  1.1  skrll 
    871  1.1  skrll /* 0000nnnn00100011 braf <REG_N>       */{"braf",{A_REG_N},{HEX_0,REG_N,HEX_2,HEX_3}, arch_sh2_up},
    872  1.1  skrll 
    873  1.1  skrll /* 0000nnnn00000011 bsrf <REG_N>       */{"bsrf",{A_REG_N},{HEX_0,REG_N,HEX_0,HEX_3}, arch_sh2_up},
    874  1.1  skrll 
    875  1.1  skrll /* 111101nnmmmm0000 movs.w @-<REG_N>,<DSP_REG_M> */   {"movs.w",{A_DEC_N,DSP_REG_M},{HEX_F,SDT_REG_N,REG_M,HEX_0}, arch_sh_dsp_up},
    876  1.1  skrll 
    877  1.1  skrll /* 111101nnmmmm0001 movs.w @<REG_N>,<DSP_REG_M> */    {"movs.w",{A_IND_N,DSP_REG_M},{HEX_F,SDT_REG_N,REG_M,HEX_4}, arch_sh_dsp_up},
    878  1.1  skrll 
    879  1.1  skrll /* 111101nnmmmm0010 movs.w @<REG_N>+,<DSP_REG_M> */   {"movs.w",{A_INC_N,DSP_REG_M},{HEX_F,SDT_REG_N,REG_M,HEX_8}, arch_sh_dsp_up},
    880  1.1  skrll 
    881  1.1  skrll /* 111101nnmmmm0011 movs.w @<REG_N>+r8,<DSP_REG_M> */ {"movs.w",{AS_PMOD_N,DSP_REG_M},{HEX_F,SDT_REG_N,REG_M,HEX_C}, arch_sh_dsp_up},
    882  1.1  skrll 
    883  1.1  skrll /* 111101nnmmmm0100 movs.w <DSP_REG_M>,@-<REG_N> */   {"movs.w",{DSP_REG_M,A_DEC_N},{HEX_F,SDT_REG_N,REG_M,HEX_1}, arch_sh_dsp_up},
    884  1.1  skrll 
    885  1.1  skrll /* 111101nnmmmm0101 movs.w <DSP_REG_M>,@<REG_N> */    {"movs.w",{DSP_REG_M,A_IND_N},{HEX_F,SDT_REG_N,REG_M,HEX_5}, arch_sh_dsp_up},
    886  1.1  skrll 
    887  1.1  skrll /* 111101nnmmmm0110 movs.w <DSP_REG_M>,@<REG_N>+ */   {"movs.w",{DSP_REG_M,A_INC_N},{HEX_F,SDT_REG_N,REG_M,HEX_9}, arch_sh_dsp_up},
    888  1.1  skrll 
    889  1.1  skrll /* 111101nnmmmm0111 movs.w <DSP_REG_M>,@<REG_N>+r8 */ {"movs.w",{DSP_REG_M,AS_PMOD_N},{HEX_F,SDT_REG_N,REG_M,HEX_D}, arch_sh_dsp_up},
    890  1.1  skrll 
    891  1.1  skrll /* 111101nnmmmm1000 movs.l @-<REG_N>,<DSP_REG_M> */   {"movs.l",{A_DEC_N,DSP_REG_M},{HEX_F,SDT_REG_N,REG_M,HEX_2}, arch_sh_dsp_up},
    892  1.1  skrll 
    893  1.1  skrll /* 111101nnmmmm1001 movs.l @<REG_N>,<DSP_REG_M> */    {"movs.l",{A_IND_N,DSP_REG_M},{HEX_F,SDT_REG_N,REG_M,HEX_6}, arch_sh_dsp_up},
    894  1.1  skrll 
    895  1.1  skrll /* 111101nnmmmm1010 movs.l @<REG_N>+,<DSP_REG_M> */   {"movs.l",{A_INC_N,DSP_REG_M},{HEX_F,SDT_REG_N,REG_M,HEX_A}, arch_sh_dsp_up},
    896  1.1  skrll 
    897  1.1  skrll /* 111101nnmmmm1011 movs.l @<REG_N>+r8,<DSP_REG_M> */ {"movs.l",{AS_PMOD_N,DSP_REG_M},{HEX_F,SDT_REG_N,REG_M,HEX_E}, arch_sh_dsp_up},
    898  1.1  skrll 
    899  1.1  skrll /* 111101nnmmmm1100 movs.l <DSP_REG_M>,@-<REG_N> */   {"movs.l",{DSP_REG_M,A_DEC_N},{HEX_F,SDT_REG_N,REG_M,HEX_3}, arch_sh_dsp_up},
    900  1.1  skrll 
    901  1.1  skrll /* 111101nnmmmm1101 movs.l <DSP_REG_M>,@<REG_N> */    {"movs.l",{DSP_REG_M,A_IND_N},{HEX_F,SDT_REG_N,REG_M,HEX_7}, arch_sh_dsp_up},
    902  1.1  skrll 
    903  1.1  skrll /* 111101nnmmmm1110 movs.l <DSP_REG_M>,@<REG_N>+ */   {"movs.l",{DSP_REG_M,A_INC_N},{HEX_F,SDT_REG_N,REG_M,HEX_B}, arch_sh_dsp_up},
    904  1.1  skrll 
    905  1.1  skrll /* 111101nnmmmm1111 movs.l <DSP_REG_M>,@<REG_N>+r8 */ {"movs.l",{DSP_REG_M,AS_PMOD_N},{HEX_F,SDT_REG_N,REG_M,HEX_F}, arch_sh_dsp_up},
    906  1.1  skrll 
    907  1.1  skrll /* 0*0*0*00** nopx */ {"nopx",{0},{PPI,NOPX}, arch_sh_dsp_up},
    908  1.1  skrll /* *0*0*0**00 nopy */ {"nopy",{0},{PPI,NOPY}, arch_sh_dsp_up},
    909  1.1  skrll /* n*m*0*01** movx.w @<REG_N>,<DSP_REG_X> */    {"movx.w",{AX_IND_N,DSP_REG_X},{PPI,MOVX,HEX_1}, arch_sh_dsp_up},
    910  1.1  skrll /* n*m*0*10** movx.w @<REG_N>+,<DSP_REG_X> */   {"movx.w",{AX_INC_N,DSP_REG_X},{PPI,MOVX,HEX_2}, arch_sh_dsp_up},
    911  1.1  skrll /* n*m*0*11** movx.w @<REG_N>+r8,<DSP_REG_X> */ {"movx.w",{AX_PMOD_N,DSP_REG_X},{PPI,MOVX,HEX_3}, arch_sh_dsp_up},
    912  1.1  skrll /* n*m*1*01** movx.w <DSP_REG_M>,@<REG_N> */    {"movx.w",{DSP_REG_A_M,AX_IND_N},{PPI,MOVX,HEX_9}, arch_sh_dsp_up},
    913  1.1  skrll /* n*m*1*10** movx.w <DSP_REG_M>,@<REG_N>+ */   {"movx.w",{DSP_REG_A_M,AX_INC_N},{PPI,MOVX,HEX_A}, arch_sh_dsp_up},
    914  1.1  skrll /* n*m*1*11** movx.w <DSP_REG_M>,@<REG_N>+r8 */ {"movx.w",{DSP_REG_A_M,AX_PMOD_N},{PPI,MOVX,HEX_B}, arch_sh_dsp_up},
    915  1.1  skrll 
    916  1.1  skrll /* nnmm000100 movx.w @<REG_Axy>,<DSP_REG_XY> */ {"movx.w",{AXY_IND_N,DSP_REG_XY},{PPI,MOVX_NOPY,HEX_0,HEX_4}, arch_sh4al_dsp_up},
    917  1.1  skrll /* nnmm001000 movx.w @<REG_Axy>+,<DSP_REG_XY> */{"movx.w",{AXY_INC_N,DSP_REG_XY},{PPI,MOVX_NOPY,HEX_0,HEX_8}, arch_sh4al_dsp_up},
    918  1.1  skrll /* nnmm001100 movx.w @<REG_Axy>+r8,<DSP_REG_XY> */{"movx.w",{AXY_PMOD_N,DSP_REG_XY},{PPI,MOVX_NOPY,HEX_0,HEX_C}, arch_sh4al_dsp_up},
    919  1.1  skrll /* nnmm100100 movx.w <DSP_REG_AX>,@<REG_Axy> */ {"movx.w",{DSP_REG_AX,AXY_IND_N},{PPI,MOVX_NOPY,HEX_2,HEX_4}, arch_sh4al_dsp_up},
    920  1.1  skrll /* nnmm101000 movx.w <DSP_REG_AX>,@<REG_Axy>+ */{"movx.w",{DSP_REG_AX,AXY_INC_N},{PPI,MOVX_NOPY,HEX_2,HEX_8}, arch_sh4al_dsp_up},
    921  1.1  skrll /* nnmm101100 movx.w <DSP_REG_AX>,@<REG_Axy>+r8 */{"movx.w",{DSP_REG_AX,AXY_PMOD_N},{PPI,MOVX_NOPY,HEX_2,HEX_C}, arch_sh4al_dsp_up},
    922  1.1  skrll 
    923  1.1  skrll /* nnmm010100 movx.l @<REG_Axy>,<DSP_REG_XY> */ {"movx.l",{AXY_IND_N,DSP_REG_XY},{PPI,MOVX_NOPY,HEX_1,HEX_4}, arch_sh4al_dsp_up},
    924  1.1  skrll /* nnmm011000 movx.l @<REG_Axy>+,<DSP_REG_XY> */{"movx.l",{AXY_INC_N,DSP_REG_XY},{PPI,MOVX_NOPY,HEX_1,HEX_8}, arch_sh4al_dsp_up},
    925  1.1  skrll /* nnmm011100 movx.l @<REG_Axy>+r8,<DSP_REG_XY> */{"movx.l",{AXY_PMOD_N,DSP_REG_XY},{PPI,MOVX_NOPY,HEX_1,HEX_C}, arch_sh4al_dsp_up},
    926  1.1  skrll /* nnmm110100 movx.l <DSP_REG_AX>,@<REG_Axy> */ {"movx.l",{DSP_REG_AX,AXY_IND_N},{PPI,MOVX_NOPY,HEX_3,HEX_4}, arch_sh4al_dsp_up},
    927  1.1  skrll /* nnmm111000 movx.l <DSP_REG_AX>,@<REG_Axy>+ */{"movx.l",{DSP_REG_AX,AXY_INC_N},{PPI,MOVX_NOPY,HEX_3,HEX_8}, arch_sh4al_dsp_up},
    928  1.1  skrll /* nnmm111100 movx.l <DSP_REG_AX>,@<REG_Axy>+r8 */{"movx.l",{DSP_REG_AX,AXY_PMOD_N},{PPI,MOVX_NOPY,HEX_3,HEX_C}, arch_sh4al_dsp_up},
    929  1.1  skrll 
    930  1.1  skrll /* *n*m*0**01 movy.w @<REG_N>,<DSP_REG_Y> */    {"movy.w",{AY_IND_N,DSP_REG_Y},{PPI,MOVY,HEX_1}, arch_sh_dsp_up},
    931  1.1  skrll /* *n*m*0**10 movy.w @<REG_N>+,<DSP_REG_Y> */   {"movy.w",{AY_INC_N,DSP_REG_Y},{PPI,MOVY,HEX_2}, arch_sh_dsp_up},
    932  1.1  skrll /* *n*m*0**11 movy.w @<REG_N>+r9,<DSP_REG_Y> */ {"movy.w",{AY_PMOD_N,DSP_REG_Y},{PPI,MOVY,HEX_3}, arch_sh_dsp_up},
    933  1.1  skrll /* *n*m*1**01 movy.w <DSP_REG_M>,@<REG_N> */    {"movy.w",{DSP_REG_A_M,AY_IND_N},{PPI,MOVY,HEX_9}, arch_sh_dsp_up},
    934  1.1  skrll /* *n*m*1**10 movy.w <DSP_REG_M>,@<REG_N>+ */   {"movy.w",{DSP_REG_A_M,AY_INC_N},{PPI,MOVY,HEX_A}, arch_sh_dsp_up},
    935  1.1  skrll /* *n*m*1**11 movy.w <DSP_REG_M>,@<REG_N>+r9 */ {"movy.w",{DSP_REG_A_M,AY_PMOD_N},{PPI,MOVY,HEX_B}, arch_sh_dsp_up},
    936  1.1  skrll 
    937  1.1  skrll /* nnmm000001 movy.w @<REG_Ayx>,<DSP_REG_YX> */ {"movy.w",{AYX_IND_N,DSP_REG_YX},{PPI,MOVY_NOPX,HEX_0,HEX_1}, arch_sh4al_dsp_up},
    938  1.1  skrll /* nnmm000010 movy.w @<REG_Ayx>+,<DSP_REG_YX> */{"movy.w",{AYX_INC_N,DSP_REG_YX},{PPI,MOVY_NOPX,HEX_0,HEX_2}, arch_sh4al_dsp_up},
    939  1.1  skrll /* nnmm000011 movy.w @<REG_Ayx>+r9,<DSP_REG_YX> */{"movy.w",{AYX_PMOD_N,DSP_REG_YX},{PPI,MOVY_NOPX,HEX_0,HEX_3}, arch_sh4al_dsp_up},
    940  1.1  skrll /* nnmm010001 movy.w <DSP_REG_AY>,@<REG_Ayx> */ {"movy.w",{DSP_REG_AY,AYX_IND_N},{PPI,MOVY_NOPX,HEX_1,HEX_1}, arch_sh4al_dsp_up},
    941  1.1  skrll /* nnmm010010 movy.w <DSP_REG_AY>,@<REG_Ayx>+ */{"movy.w",{DSP_REG_AY,AYX_INC_N},{PPI,MOVY_NOPX,HEX_1,HEX_2}, arch_sh4al_dsp_up},
    942  1.1  skrll /* nnmm010011 movy.w <DSP_REG_AY>,@<REG_Ayx>+r9 */{"movy.w",{DSP_REG_AY,AYX_PMOD_N},{PPI,MOVY_NOPX,HEX_1,HEX_3}, arch_sh4al_dsp_up},
    943  1.1  skrll 
    944  1.1  skrll /* nnmm100001 movy.l @<REG_Ayx>,<DSP_REG_YX> */ {"movy.l",{AYX_IND_N,DSP_REG_YX},{PPI,MOVY_NOPX,HEX_2,HEX_1}, arch_sh4al_dsp_up},
    945  1.1  skrll /* nnmm100010 movy.l @<REG_Ayx>+,<DSP_REG_YX> */{"movy.l",{AYX_INC_N,DSP_REG_YX},{PPI,MOVY_NOPX,HEX_2,HEX_2}, arch_sh4al_dsp_up},
    946  1.1  skrll /* nnmm100011 movy.l @<REG_Ayx>+r9,<DSP_REG_YX> */{"movy.l",{AYX_PMOD_N,DSP_REG_YX},{PPI,MOVY_NOPX,HEX_2,HEX_3}, arch_sh4al_dsp_up},
    947  1.1  skrll /* nnmm110001 movy.l <DSP_REG_AY>,@<REG_Ayx> */ {"movy.l",{DSP_REG_AY,AYX_IND_N},{PPI,MOVY_NOPX,HEX_3,HEX_1}, arch_sh4al_dsp_up},
    948  1.1  skrll /* nnmm110010 movy.l <DSP_REG_AY>,@<REG_Ayx>+ */{"movy.l",{DSP_REG_AY,AYX_INC_N},{PPI,MOVY_NOPX,HEX_3,HEX_2}, arch_sh4al_dsp_up},
    949  1.1  skrll /* nnmm110011 movy.l <DSP_REG_AY>,@<REG_Ayx>+r9 */{"movy.l",{DSP_REG_AY,AYX_PMOD_N},{PPI,MOVY_NOPX,HEX_3,HEX_3}, arch_sh4al_dsp_up},
    950  1.1  skrll 
    951  1.1  skrll /* 01aaeeffxxyyggnn pmuls Se,Sf,Dg */ {"pmuls",{DSP_REG_E,DSP_REG_F,DSP_REG_G},{PPI,PMUL}, arch_sh_dsp_up},
    952  1.1  skrll /* 10100000xxyynnnn psubc <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    953  1.1  skrll {"psubc",{DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPI3,HEX_A,HEX_0}, arch_sh_dsp_up},
    954  1.1  skrll /* 10110000xxyynnnn paddc <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    955  1.1  skrll {"paddc",{DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPI3,HEX_B,HEX_0}, arch_sh_dsp_up},
    956  1.1  skrll /* 10000100xxyynnnn pcmp <DSP_REG_X>,<DSP_REG_Y> */
    957  1.1  skrll {"pcmp", {DSP_REG_X,DSP_REG_Y},{PPI,PPI3,HEX_8,HEX_4}, arch_sh_dsp_up},
    958  1.1  skrll /* 10100100xxyynnnn pwsb <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    959  1.1  skrll {"pwsb", {DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPI3,HEX_A,HEX_4}, arch_sh_dsp_up},
    960  1.1  skrll /* 10110100xxyynnnn pwad <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    961  1.1  skrll {"pwad", {DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPI3,HEX_B,HEX_4}, arch_sh_dsp_up},
    962  1.1  skrll /* 10001000xxyynnnn pabs <DSP_REG_X>,<DSP_REG_N> */
    963  1.1  skrll {"pabs", {DSP_REG_X,DSP_REG_N},{PPI,PPI3NC,HEX_8,HEX_8}, arch_sh_dsp_up},
    964  1.1  skrll /* 1000100!xx01nnnn pabs <DSP_REG_X>,<DSP_REG_N> */
    965  1.1  skrll {"pabs", {DSP_REG_X,DSP_REG_N},{PPI,PPIC,HEX_8,HEX_9,HEX_1}, arch_sh4al_dsp_up},
    966  1.1  skrll /* 10101000xxyynnnn pabs <DSP_REG_Y>,<DSP_REG_N> */
    967  1.1  skrll {"pabs", {DSP_REG_Y,DSP_REG_N},{PPI,PPI3NC,HEX_A,HEX_8}, arch_sh_dsp_up},
    968  1.1  skrll /* 1010100!01yynnnn pabs <DSP_REG_Y>,<DSP_REG_N> */
    969  1.1  skrll {"pabs", {DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_A,HEX_9,HEX_4}, arch_sh4al_dsp_up},
    970  1.1  skrll /* 10011000xxyynnnn prnd <DSP_REG_X>,<DSP_REG_N> */
    971  1.1  skrll {"prnd", {DSP_REG_X,DSP_REG_N},{PPI,PPI3NC,HEX_9,HEX_8}, arch_sh_dsp_up},
    972  1.1  skrll /* 1001100!xx01nnnn prnd <DSP_REG_X>,<DSP_REG_N> */
    973  1.1  skrll {"prnd", {DSP_REG_X,DSP_REG_N},{PPI,PPIC,HEX_9,HEX_9,HEX_1}, arch_sh4al_dsp_up},
    974  1.1  skrll /* 10111000xxyynnnn prnd <DSP_REG_Y>,<DSP_REG_N> */
    975  1.1  skrll {"prnd", {DSP_REG_Y,DSP_REG_N},{PPI,PPI3NC,HEX_B,HEX_8}, arch_sh_dsp_up},
    976  1.1  skrll /* 1011100!01yynnnn prnd <DSP_REG_Y>,<DSP_REG_N> */
    977  1.1  skrll {"prnd", {DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_B,HEX_9,HEX_4}, arch_sh4al_dsp_up},
    978  1.1  skrll 
    979  1.1  skrll {"dct",{0},{PPI,PDC,HEX_1}, arch_sh_dsp_up},
    980  1.1  skrll {"dcf",{0},{PPI,PDC,HEX_2}, arch_sh_dsp_up},
    981  1.1  skrll 
    982  1.1  skrll /* 10000001xxyynnnn pshl <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    983  1.1  skrll {"pshl", {DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_8,HEX_1}, arch_sh_dsp_up},
    984  1.1  skrll /* 00000iiiiiiinnnn pshl #<imm>,<DSP_REG_N> */ {"pshl",{A_IMM,DSP_REG_N},{PPI,PSH,HEX_0}, arch_sh_dsp_up},
    985  1.1  skrll /* 10010001xxyynnnn psha <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    986  1.1  skrll {"psha", {DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_9,HEX_1}, arch_sh_dsp_up},
    987  1.1  skrll /* 00010iiiiiiinnnn psha #<imm>,<DSP_REG_N> */ {"psha",{A_IMM,DSP_REG_N},{PPI,PSH,HEX_1}, arch_sh_dsp_up},
    988  1.1  skrll /* 10100001xxyynnnn psub <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    989  1.1  skrll {"psub", {DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_A,HEX_1}, arch_sh_dsp_up},
    990  1.1  skrll /* 10000101xxyynnnn psub <DSP_REG_Y>,<DSP_REG_X>,<DSP_REG_N> */
    991  1.1  skrll {"psub", {DSP_REG_Y,DSP_REG_X,DSP_REG_N},{PPI,PPIC,HEX_8,HEX_5}, arch_sh4al_dsp_up},
    992  1.1  skrll /* 10110001xxyynnnn padd <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    993  1.1  skrll {"padd", {DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_B,HEX_1}, arch_sh_dsp_up},
    994  1.1  skrll /* 10010101xxyynnnn pand <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    995  1.1  skrll {"pand", {DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_9,HEX_5}, arch_sh_dsp_up},
    996  1.1  skrll /* 10100101xxyynnnn pxor <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    997  1.1  skrll {"pxor", {DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_A,HEX_5}, arch_sh_dsp_up},
    998  1.1  skrll /* 10110101xxyynnnn por  <DSP_REG_X>,<DSP_REG_Y>,<DSP_REG_N> */
    999  1.1  skrll {"por",  {DSP_REG_X,DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_B,HEX_5}, arch_sh_dsp_up},
   1000  1.1  skrll /* 10001001xxyynnnn pdec <DSP_REG_X>,<DSP_REG_N> */
   1001  1.1  skrll {"pdec", {DSP_REG_X,DSP_REG_N},{PPI,PPIC,HEX_8,HEX_9}, arch_sh_dsp_up},
   1002  1.1  skrll /* 10101001xxyynnnn pdec <DSP_REG_Y>,<DSP_REG_N> */
   1003  1.1  skrll {"pdec", {DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_A,HEX_9}, arch_sh_dsp_up},
   1004  1.1  skrll /* 10011001xx00nnnn pinc <DSP_REG_X>,<DSP_REG_N> */
   1005  1.1  skrll {"pinc", {DSP_REG_X,DSP_REG_N},{PPI,PPIC,HEX_9,HEX_9,HEX_XX00}, arch_sh_dsp_up},
   1006  1.1  skrll /* 1011100100yynnnn pinc <DSP_REG_Y>,<DSP_REG_N> */
   1007  1.1  skrll {"pinc", {DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_B,HEX_9,HEX_00YY}, arch_sh_dsp_up},
   1008  1.1  skrll /* 10001101xxyynnnn pclr <DSP_REG_N> */
   1009  1.1  skrll {"pclr", {DSP_REG_N},{PPI,PPIC,HEX_8,HEX_D}, arch_sh_dsp_up},
   1010  1.1  skrll /* 10011101xx00nnnn pdmsb <DSP_REG_X>,<DSP_REG_N> */
   1011  1.1  skrll {"pdmsb", {DSP_REG_X,DSP_REG_N},{PPI,PPIC,HEX_9,HEX_D,HEX_XX00}, arch_sh_dsp_up},
   1012  1.1  skrll /* 1011110100yynnnn pdmsb <DSP_REG_Y>,<DSP_REG_N> */
   1013  1.1  skrll {"pdmsb", {DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_B,HEX_D,HEX_00YY}, arch_sh_dsp_up},
   1014  1.1  skrll /* 11001001xxyynnnn pneg  <DSP_REG_X>,<DSP_REG_N> */
   1015  1.1  skrll {"pneg",  {DSP_REG_X,DSP_REG_N},{PPI,PPIC,HEX_C,HEX_9}, arch_sh_dsp_up},
   1016  1.1  skrll /* 11101001xxyynnnn pneg  <DSP_REG_Y>,<DSP_REG_N> */
   1017  1.1  skrll {"pneg",  {DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_E,HEX_9}, arch_sh_dsp_up},
   1018  1.1  skrll /* 11011001xxyynnnn pcopy <DSP_REG_X>,<DSP_REG_N> */
   1019  1.1  skrll {"pcopy", {DSP_REG_X,DSP_REG_N},{PPI,PPIC,HEX_D,HEX_9}, arch_sh_dsp_up},
   1020  1.1  skrll /* 11111001xxyynnnn pcopy <DSP_REG_Y>,<DSP_REG_N> */
   1021  1.1  skrll {"pcopy", {DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_F,HEX_9}, arch_sh_dsp_up},
   1022  1.1  skrll /* 11001101xxyynnnn psts MACH,<DSP_REG_N> */
   1023  1.1  skrll {"psts", {A_MACH,DSP_REG_N},{PPI,PPIC,HEX_C,HEX_D}, arch_sh_dsp_up},
   1024  1.1  skrll /* 11011101xxyynnnn psts MACL,<DSP_REG_N> */
   1025  1.1  skrll {"psts", {A_MACL,DSP_REG_N},{PPI,PPIC,HEX_D,HEX_D}, arch_sh_dsp_up},
   1026  1.1  skrll /* 11101101xxyynnnn plds <DSP_REG_N>,MACH */
   1027  1.1  skrll {"plds", {DSP_REG_N,A_MACH},{PPI,PPIC,HEX_E,HEX_D}, arch_sh_dsp_up},
   1028  1.1  skrll /* 11111101xxyynnnn plds <DSP_REG_N>,MACL */
   1029  1.1  skrll {"plds", {DSP_REG_N,A_MACL},{PPI,PPIC,HEX_F,HEX_D}, arch_sh_dsp_up},
   1030  1.1  skrll /* 10011101xx01zzzz pswap <DSP_REG_X>,<DSP_REG_N> */
   1031  1.1  skrll {"pswap", {DSP_REG_X,DSP_REG_N},{PPI,PPIC,HEX_9,HEX_D,HEX_1}, arch_sh4al_dsp_up},
   1032  1.1  skrll /* 1011110101yyzzzz pswap <DSP_REG_Y>,<DSP_REG_N> */
   1033  1.1  skrll {"pswap", {DSP_REG_Y,DSP_REG_N},{PPI,PPIC,HEX_B,HEX_D,HEX_4}, arch_sh4al_dsp_up},
   1034  1.1  skrll 
   1035  1.1  skrll /* 1111nnnn01011101 fabs <F_REG_N>     */{"fabs",{F_REG_N},{HEX_F,REG_N,HEX_5,HEX_D}, arch_sh2e_up},
   1036  1.1  skrll /* 1111nnn001011101 fabs <D_REG_N>     */{"fabs",{D_REG_N},{HEX_F,REG_N,HEX_5,HEX_D}, arch_sh2a_or_sh4_up},
   1037  1.1  skrll 
   1038  1.1  skrll /* 1111nnnnmmmm0000 fadd <F_REG_M>,<F_REG_N>*/{"fadd",{F_REG_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_0}, arch_sh2e_up},
   1039  1.1  skrll /* 1111nnn0mmm00000 fadd <D_REG_M>,<D_REG_N>*/{"fadd",{D_REG_M,D_REG_N},{HEX_F,REG_N,REG_M,HEX_0}, arch_sh2a_or_sh4_up},
   1040  1.1  skrll 
   1041  1.1  skrll /* 1111nnnnmmmm0100 fcmp/eq <F_REG_M>,<F_REG_N>*/{"fcmp/eq",{F_REG_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_4}, arch_sh2e_up},
   1042  1.1  skrll /* 1111nnn0mmm00100 fcmp/eq <D_REG_M>,<D_REG_N>*/{"fcmp/eq",{D_REG_M,D_REG_N},{HEX_F,REG_N,REG_M,HEX_4}, arch_sh2a_or_sh4_up},
   1043  1.1  skrll 
   1044  1.1  skrll /* 1111nnnnmmmm0101 fcmp/gt <F_REG_M>,<F_REG_N>*/{"fcmp/gt",{F_REG_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_5}, arch_sh2e_up},
   1045  1.1  skrll /* 1111nnn0mmm00101 fcmp/gt <D_REG_M>,<D_REG_N>*/{"fcmp/gt",{D_REG_M,D_REG_N},{HEX_F,REG_N,REG_M,HEX_5}, arch_sh2a_or_sh4_up},
   1046  1.1  skrll 
   1047  1.1  skrll /* 1111nnn010111101 fcnvds <D_REG_N>,FPUL*/{"fcnvds",{D_REG_N,FPUL_M},{HEX_F,REG_N_D,HEX_B,HEX_D}, arch_sh2a_or_sh4_up},
   1048  1.1  skrll 
   1049  1.1  skrll /* 1111nnn010101101 fcnvsd FPUL,<D_REG_N>*/{"fcnvsd",{FPUL_M,D_REG_N},{HEX_F,REG_N_D,HEX_A,HEX_D}, arch_sh2a_or_sh4_up},
   1050  1.1  skrll 
   1051  1.1  skrll /* 1111nnnnmmmm0011 fdiv <F_REG_M>,<F_REG_N>*/{"fdiv",{F_REG_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_3}, arch_sh2e_up},
   1052  1.1  skrll /* 1111nnn0mmm00011 fdiv <D_REG_M>,<D_REG_N>*/{"fdiv",{D_REG_M,D_REG_N},{HEX_F,REG_N,REG_M,HEX_3}, arch_sh2a_or_sh4_up},
   1053  1.1  skrll 
   1054  1.1  skrll /* 1111nnmm11101101 fipr <V_REG_M>,<V_REG_N>*/{"fipr",{V_REG_M,V_REG_N},{HEX_F,REG_NM,HEX_E,HEX_D}, arch_sh4_up},
   1055  1.1  skrll 
   1056  1.1  skrll /* 1111nnnn10001101 fldi0 <F_REG_N>    */{"fldi0",{F_REG_N},{HEX_F,REG_N,HEX_8,HEX_D}, arch_sh2e_up},
   1057  1.1  skrll 
   1058  1.1  skrll /* 1111nnnn10011101 fldi1 <F_REG_N>    */{"fldi1",{F_REG_N},{HEX_F,REG_N,HEX_9,HEX_D}, arch_sh2e_up},
   1059  1.1  skrll 
   1060  1.1  skrll /* 1111nnnn00011101 flds <F_REG_N>,FPUL*/{"flds",{F_REG_N,FPUL_M},{HEX_F,REG_N,HEX_1,HEX_D}, arch_sh2e_up},
   1061  1.1  skrll 
   1062  1.1  skrll /* 1111nnnn00101101 float FPUL,<F_REG_N>*/{"float",{FPUL_M,F_REG_N},{HEX_F,REG_N,HEX_2,HEX_D}, arch_sh2e_up},
   1063  1.1  skrll /* 1111nnn000101101 float FPUL,<D_REG_N>*/{"float",{FPUL_M,D_REG_N},{HEX_F,REG_N,HEX_2,HEX_D}, arch_sh2a_or_sh4_up},
   1064  1.1  skrll 
   1065  1.1  skrll /* 1111nnnnmmmm1110 fmac FR0,<F_REG_M>,<F_REG_N>*/{"fmac",{F_FR0,F_REG_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_E}, arch_sh2e_up},
   1066  1.1  skrll 
   1067  1.1  skrll /* 1111nnnnmmmm1100 fmov <F_REG_M>,<F_REG_N>*/{"fmov",{F_REG_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_C}, arch_sh2e_up},
   1068  1.1  skrll /* 1111nnn1mmmm1100 fmov <DX_REG_M>,<DX_REG_N>*/{"fmov",{DX_REG_M,DX_REG_N},{HEX_F,REG_N,REG_M,HEX_C}, arch_sh2a_or_sh4_up},
   1069  1.1  skrll 
   1070  1.1  skrll /* 1111nnnnmmmm1000 fmov @<REG_M>,<F_REG_N>*/{"fmov",{A_IND_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_8}, arch_sh2e_up},
   1071  1.1  skrll /* 1111nnn1mmmm1000 fmov @<REG_M>,<DX_REG_N>*/{"fmov",{A_IND_M,DX_REG_N},{HEX_F,REG_N,REG_M,HEX_8}, arch_sh2a_or_sh4_up},
   1072  1.1  skrll 
   1073  1.1  skrll /* 1111nnnnmmmm1010 fmov <F_REG_M>,@<REG_N>*/{"fmov",{F_REG_M,A_IND_N},{HEX_F,REG_N,REG_M,HEX_A}, arch_sh2e_up},
   1074  1.1  skrll /* 1111nnnnmmm11010 fmov <DX_REG_M>,@<REG_N>*/{"fmov",{DX_REG_M,A_IND_N},{HEX_F,REG_N,REG_M,HEX_A}, arch_sh2a_or_sh4_up},
   1075  1.1  skrll 
   1076  1.1  skrll /* 1111nnnnmmmm1001 fmov @<REG_M>+,<F_REG_N>*/{"fmov",{A_INC_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_9}, arch_sh2e_up},
   1077  1.1  skrll /* 1111nnn1mmmm1001 fmov @<REG_M>+,<DX_REG_N>*/{"fmov",{A_INC_M,DX_REG_N},{HEX_F,REG_N,REG_M,HEX_9}, arch_sh2a_or_sh4_up},
   1078  1.1  skrll 
   1079  1.1  skrll /* 1111nnnnmmmm1011 fmov <F_REG_M>,@-<REG_N>*/{"fmov",{F_REG_M,A_DEC_N},{HEX_F,REG_N,REG_M,HEX_B}, arch_sh2e_up},
   1080  1.1  skrll /* 1111nnnnmmm11011 fmov <DX_REG_M>,@-<REG_N>*/{"fmov",{DX_REG_M,A_DEC_N},{HEX_F,REG_N,REG_M,HEX_B}, arch_sh2a_or_sh4_up},
   1081  1.1  skrll 
   1082  1.1  skrll /* 1111nnnnmmmm0110 fmov @(R0,<REG_M>),<F_REG_N>*/{"fmov",{A_IND_R0_REG_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_6}, arch_sh2e_up},
   1083  1.1  skrll /* 1111nnn1mmmm0110 fmov @(R0,<REG_M>),<DX_REG_N>*/{"fmov",{A_IND_R0_REG_M,DX_REG_N},{HEX_F,REG_N,REG_M,HEX_6}, arch_sh2a_or_sh4_up},
   1084  1.1  skrll 
   1085  1.1  skrll /* 1111nnnnmmmm0111 fmov <F_REG_M>,@(R0,<REG_N>)*/{"fmov",{F_REG_M,A_IND_R0_REG_N},{HEX_F,REG_N,REG_M,HEX_7}, arch_sh2e_up},
   1086  1.1  skrll /* 1111nnnnmmm10111 fmov <DX_REG_M>,@(R0,<REG_N>)*/{"fmov",{DX_REG_M,A_IND_R0_REG_N},{HEX_F,REG_N,REG_M,HEX_7}, arch_sh2a_or_sh4_up},
   1087  1.1  skrll 
   1088  1.1  skrll /* 1111nnn1mmmm1000 fmov.d @<REG_M>,<DX_REG_N>*/{"fmov.d",{A_IND_M,DX_REG_N},{HEX_F,REG_N,REG_M,HEX_8}, arch_sh2a_or_sh4_up},
   1089  1.1  skrll /* 1111nnnnmmm11010 fmov.d <DX_REG_M>,@<REG_N>*/{"fmov.d",{DX_REG_M,A_IND_N},{HEX_F,REG_N,REG_M,HEX_A}, arch_sh2a_or_sh4_up},
   1090  1.1  skrll /* 1111nnn1mmmm1001 fmov.d @<REG_M>+,<DX_REG_N>*/{"fmov.d",{A_INC_M,DX_REG_N},{HEX_F,REG_N,REG_M,HEX_9}, arch_sh2a_or_sh4_up},
   1091  1.1  skrll /* 1111nnnnmmm11011 fmov.d <DX_REG_M>,@-<REG_N>*/{"fmov.d",{DX_REG_M,A_DEC_N},{HEX_F,REG_N,REG_M,HEX_B}, arch_sh2a_or_sh4_up},
   1092  1.1  skrll /* 1111nnn1mmmm0110 fmov.d @(R0,<REG_M>),<DX_REG_N>*/{"fmov.d",{A_IND_R0_REG_M,DX_REG_N},{HEX_F,REG_N,REG_M,HEX_6}, arch_sh2a_or_sh4_up},
   1093  1.1  skrll /* 1111nnnnmmm10111 fmov.d <DX_REG_M>,@(R0,<REG_N>)*/{"fmov.d",{DX_REG_M,A_IND_R0_REG_N},{HEX_F,REG_N,REG_M,HEX_7}, arch_sh2a_or_sh4_up},
   1094  1.1  skrll /* 0011nnnnmmmm0001 0011dddddddddddd fmov.d <DX_REG_M>,@(<DISP12>,<REG_N>) */
   1095  1.1  skrll {"fmov.d",{DX_REG_M,A_DISP_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_3,DISP1_12BY8}, arch_sh2a_up | arch_op32},
   1096  1.1  skrll /* 0011nnnnmmmm0001 0111dddddddddddd fmov.d @(<DISP12>,<REG_M>),<DX_REG_N> */
   1097  1.1  skrll {"fmov.d",{A_DISP_REG_M,DX_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_7,DISP0_12BY8}, arch_sh2a_up | arch_op32},
   1098  1.1  skrll 
   1099  1.1  skrll /* 1111nnnnmmmm1000 fmov.s @<REG_M>,<F_REG_N>*/{"fmov.s",{A_IND_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_8}, arch_sh2e_up},
   1100  1.1  skrll 
   1101  1.1  skrll /* 1111nnnnmmmm1010 fmov.s <F_REG_M>,@<REG_N>*/{"fmov.s",{F_REG_M,A_IND_N},{HEX_F,REG_N,REG_M,HEX_A}, arch_sh2e_up},
   1102  1.1  skrll 
   1103  1.1  skrll /* 1111nnnnmmmm1001 fmov.s @<REG_M>+,<F_REG_N>*/{"fmov.s",{A_INC_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_9}, arch_sh2e_up},
   1104  1.1  skrll 
   1105  1.1  skrll /* 1111nnnnmmmm1011 fmov.s <F_REG_M>,@-<REG_N>*/{"fmov.s",{F_REG_M,A_DEC_N},{HEX_F,REG_N,REG_M,HEX_B}, arch_sh2e_up},
   1106  1.1  skrll 
   1107  1.1  skrll /* 1111nnnnmmmm0110 fmov.s @(R0,<REG_M>),<F_REG_N>*/{"fmov.s",{A_IND_R0_REG_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_6}, arch_sh2e_up},
   1108  1.1  skrll 
   1109  1.1  skrll /* 1111nnnnmmmm0111 fmov.s <F_REG_M>,@(R0,<REG_N>)*/{"fmov.s",{F_REG_M,A_IND_R0_REG_N},{HEX_F,REG_N,REG_M,HEX_7}, arch_sh2e_up},
   1110  1.1  skrll /* 0011nnnnmmmm0001 0011dddddddddddd fmov.s <F_REG_M>,@(<DISP12>,<REG_N>) */
   1111  1.1  skrll {"fmov.s",{F_REG_M,A_DISP_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_3,DISP1_12BY4}, arch_sh2a_up | arch_op32},
   1112  1.1  skrll /* 0011nnnnmmmm0001 0111dddddddddddd fmov.s @(<DISP12>,<REG_M>),<F_REG_N> */
   1113  1.1  skrll {"fmov.s",{A_DISP_REG_M,F_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_7,DISP0_12BY4}, arch_sh2a_up | arch_op32},
   1114  1.1  skrll 
   1115  1.1  skrll /* 1111nnnnmmmm0010 fmul <F_REG_M>,<F_REG_N>*/{"fmul",{F_REG_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_2}, arch_sh2e_up},
   1116  1.1  skrll /* 1111nnn0mmm00010 fmul <D_REG_M>,<D_REG_N>*/{"fmul",{D_REG_M,D_REG_N},{HEX_F,REG_N,REG_M,HEX_2}, arch_sh2a_or_sh4_up},
   1117  1.1  skrll 
   1118  1.1  skrll /* 1111nnnn01001101 fneg <F_REG_N>     */{"fneg",{F_REG_N},{HEX_F,REG_N,HEX_4,HEX_D}, arch_sh2e_up},
   1119  1.1  skrll /* 1111nnn001001101 fneg <D_REG_N>     */{"fneg",{D_REG_N},{HEX_F,REG_N,HEX_4,HEX_D}, arch_sh2a_or_sh4_up},
   1120  1.1  skrll 
   1121  1.1  skrll /* 1111011111111101 fpchg               */{"fpchg",{0},{HEX_F,HEX_7,HEX_F,HEX_D}, arch_sh4a_up},
   1122  1.1  skrll 
   1123  1.1  skrll /* 1111101111111101 frchg               */{"frchg",{0},{HEX_F,HEX_B,HEX_F,HEX_D}, arch_sh4_up},
   1124  1.1  skrll 
   1125  1.1  skrll /* 1111nnn011111101 fsca FPUL,<D_REG_N> */{"fsca",{FPUL_M,D_REG_N},{HEX_F,REG_N_D,HEX_F,HEX_D}, arch_sh4_up},
   1126  1.1  skrll 
   1127  1.1  skrll /* 1111001111111101 fschg               */{"fschg",{0},{HEX_F,HEX_3,HEX_F,HEX_D}, arch_sh2a_or_sh4_up},
   1128  1.1  skrll 
   1129  1.1  skrll /* 1111nnnn01101101 fsqrt <F_REG_N>    */{"fsqrt",{F_REG_N},{HEX_F,REG_N,HEX_6,HEX_D}, arch_sh2a_or_sh3e_up},
   1130  1.1  skrll /* 1111nnn001101101 fsqrt <D_REG_N>    */{"fsqrt",{D_REG_N},{HEX_F,REG_N,HEX_6,HEX_D}, arch_sh2a_or_sh4_up},
   1131  1.1  skrll 
   1132  1.1  skrll /* 1111nnnn01111101 fsrra <F_REG_N>    */{"fsrra",{F_REG_N},{HEX_F,REG_N,HEX_7,HEX_D}, arch_sh4_up},
   1133  1.1  skrll 
   1134  1.1  skrll /* 1111nnnn00001101 fsts FPUL,<F_REG_N>*/{"fsts",{FPUL_M,F_REG_N},{HEX_F,REG_N,HEX_0,HEX_D}, arch_sh2e_up},
   1135  1.1  skrll 
   1136  1.1  skrll /* 1111nnnnmmmm0001 fsub <F_REG_M>,<F_REG_N>*/{"fsub",{F_REG_M,F_REG_N},{HEX_F,REG_N,REG_M,HEX_1}, arch_sh2e_up},
   1137  1.1  skrll /* 1111nnn0mmm00001 fsub <D_REG_M>,<D_REG_N>*/{"fsub",{D_REG_M,D_REG_N},{HEX_F,REG_N,REG_M,HEX_1}, arch_sh2a_or_sh4_up},
   1138  1.1  skrll 
   1139  1.1  skrll /* 1111nnnn00111101 ftrc <F_REG_N>,FPUL*/{"ftrc",{F_REG_N,FPUL_M},{HEX_F,REG_N,HEX_3,HEX_D}, arch_sh2e_up},
   1140  1.1  skrll /* 1111nnnn00111101 ftrc <D_REG_N>,FPUL*/{"ftrc",{D_REG_N,FPUL_M},{HEX_F,REG_N,HEX_3,HEX_D}, arch_sh2a_or_sh4_up},
   1141  1.1  skrll 
   1142  1.1  skrll /* 1111nn0111111101 ftrv XMTRX_M4,<V_REG_n>*/{"ftrv",{XMTRX_M4,V_REG_N},{HEX_F,REG_N_B01,HEX_F,HEX_D}, arch_sh4_up},
   1143  1.1  skrll 
   1144  1.1  skrll   /* 10000110nnnn0iii bclr #<imm>, <REG_N> */  {"bclr",{A_IMM, A_REG_N},{HEX_8,HEX_6,REG_N,IMM0_3c}, arch_sh2a_nofpu_up},
   1145  1.1  skrll   /* 0011nnnn0iii1001 0000dddddddddddd bclr.b #<imm>,@(<DISP12>,<REG_N>) */
   1146  1.1  skrll {"bclr.b",{A_IMM,A_DISP_REG_N},{HEX_3,REG_N,IMM0_3Uc,HEX_9,HEX_0,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
   1147  1.1  skrll   /* 10000111nnnn1iii bld #<imm>, <REG_N> */   {"bld",{A_IMM, A_REG_N},{HEX_8,HEX_7,REG_N,IMM0_3s}, arch_sh2a_nofpu_up},
   1148  1.1  skrll   /* 0011nnnn0iii1001 0011dddddddddddd bld.b #<imm>,@(<DISP12>,<REG_N>) */
   1149  1.1  skrll {"bld.b",{A_IMM,A_DISP_REG_N},{HEX_3,REG_N,IMM0_3Uc,HEX_9,HEX_3,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
   1150  1.1  skrll   /* 10000110nnnn1iii bset #<imm>, <REG_N> */  {"bset",{A_IMM, A_REG_N},{HEX_8,HEX_6,REG_N,IMM0_3s}, arch_sh2a_nofpu_up},
   1151  1.1  skrll   /* 0011nnnn0iii1001 0001dddddddddddd bset.b #<imm>,@(<DISP12>,<REG_N>) */
   1152  1.1  skrll {"bset.b",{A_IMM,A_DISP_REG_N},{HEX_3,REG_N,IMM0_3Uc,HEX_9,HEX_1,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
   1153  1.1  skrll   /* 10000111nnnn0iii bst #<imm>, <REG_N> */   {"bst",{A_IMM, A_REG_N},{HEX_8,HEX_7,REG_N,IMM0_3c}, arch_sh2a_nofpu_up},
   1154  1.1  skrll   /* 0011nnnn0iii1001 0010dddddddddddd bst.b #<imm>,@(<DISP12>,<REG_N>) */
   1155  1.1  skrll {"bst.b",{A_IMM,A_DISP_REG_N},{HEX_3,REG_N,IMM0_3Uc,HEX_9,HEX_2,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
   1156  1.1  skrll   /* 0100nnnn10010001 clips.b <REG_N> */       {"clips.b",{A_REG_N},{HEX_4,REG_N,HEX_9,HEX_1}, arch_sh2a_nofpu_up},
   1157  1.1  skrll   /* 0100nnnn10010101 clips.w <REG_N> */       {"clips.w",{A_REG_N},{HEX_4,REG_N,HEX_9,HEX_5}, arch_sh2a_nofpu_up},
   1158  1.1  skrll   /* 0100nnnn10000001 clipu.b <REG_N> */       {"clipu.b",{A_REG_N},{HEX_4,REG_N,HEX_8,HEX_1}, arch_sh2a_nofpu_up},
   1159  1.1  skrll   /* 0100nnnn10000101 clipu.w <REG_N> */       {"clipu.w",{A_REG_N},{HEX_4,REG_N,HEX_8,HEX_5}, arch_sh2a_nofpu_up},
   1160  1.1  skrll   /* 0100nnnn10010100 divs R0,<REG_N> */       {"divs",{A_R0,A_REG_N},{HEX_4,REG_N,HEX_9,HEX_4}, arch_sh2a_nofpu_up},
   1161  1.1  skrll   /* 0100nnnn10000100 divu R0,<REG_N> */       {"divu",{A_R0,A_REG_N},{HEX_4,REG_N,HEX_8,HEX_4}, arch_sh2a_nofpu_up},
   1162  1.1  skrll   /* 0100mmmm01001011 jsr/n @<REG_M>  */       {"jsr/n",{A_IND_M},{HEX_4,REG_M,HEX_4,HEX_B}, arch_sh2a_nofpu_up},
   1163  1.1  skrll   /* 10000011dddddddd jsr/n @@(<disp>,TBR) */  {"jsr/n",{A_DISP2_TBR},{HEX_8,HEX_3,IMM0_8BY4}, arch_sh2a_nofpu_up},
   1164  1.1  skrll   /* 0100mmmm11100101 ldbank @<REG_M>,R0 */    {"ldbank",{A_IND_M,A_R0},{HEX_4,REG_M,HEX_E,HEX_5}, arch_sh2a_nofpu_up},
   1165  1.1  skrll   /* 0100mmmm11110001 movml.l <REG_M>,@-R15 */ {"movml.l",{A_REG_M,A_DEC_R15},{HEX_4,REG_M,HEX_F,HEX_1}, arch_sh2a_nofpu_up},
   1166  1.1  skrll   /* 0100mmmm11110101 movml.l @R15+,<REG_M> */ {"movml.l",{A_INC_R15,A_REG_M},{HEX_4,REG_M,HEX_F,HEX_5}, arch_sh2a_nofpu_up},
   1167  1.1  skrll   /* 0100mmmm11110000 movml.l <REG_M>,@-R15 */ {"movmu.l",{A_REG_M,A_DEC_R15},{HEX_4,REG_M,HEX_F,HEX_0}, arch_sh2a_nofpu_up},
   1168  1.1  skrll   /* 0100mmmm11110100 movml.l @R15+,<REG_M> */ {"movmu.l",{A_INC_R15,A_REG_M},{HEX_4,REG_M,HEX_F,HEX_4}, arch_sh2a_nofpu_up},
   1169  1.1  skrll   /* 0000nnnn00111001 movrt <REG_N> */         {"movrt",{A_REG_N},{HEX_0,REG_N,HEX_3,HEX_9}, arch_sh2a_nofpu_up},
   1170  1.1  skrll   /* 0100nnnn10000000 mulr R0,<REG_N> */       {"mulr",{A_R0,A_REG_N},{HEX_4,REG_N,HEX_8,HEX_0}, arch_sh2a_nofpu_up},
   1171  1.1  skrll   /* 0000000001101000 nott */                  {"nott",{A_END},{HEX_0,HEX_0,HEX_6,HEX_8}, arch_sh2a_nofpu_up},
   1172  1.1  skrll   /* 0000000001011011 resbank */               {"resbank",{A_END},{HEX_0,HEX_0,HEX_5,HEX_B}, arch_sh2a_nofpu_up},
   1173  1.1  skrll   /* 0000000001101011 rts/n */                 {"rts/n",{A_END},{HEX_0,HEX_0,HEX_6,HEX_B}, arch_sh2a_nofpu_up},
   1174  1.1  skrll   /* 0000mmmm01111011 rtv/n <REG_M>*/          {"rtv/n",{A_REG_M},{HEX_0,REG_M,HEX_7,HEX_B}, arch_sh2a_nofpu_up},
   1175  1.1  skrll   /* 0100nnnn11100001 stbank R0,@<REG_N>*/     {"stbank",{A_R0,A_IND_N},{HEX_4,REG_N,HEX_E,HEX_1}, arch_sh2a_nofpu_up},
   1176  1.1  skrll 
   1177  1.1  skrll /* 0011nnnn0iii1001 0100dddddddddddd band.b #<imm>,@(<DISP12>,<REG_N>) */
   1178  1.1  skrll {"band.b",{A_IMM,A_DISP_REG_N},{HEX_3,REG_N,IMM0_3Uc,HEX_9,HEX_4,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
   1179  1.1  skrll /* 0011nnnn0iii1001 1100dddddddddddd bandnot.b #<imm>,@(<DISP12>,<REG_N>) */
   1180  1.1  skrll {"bandnot.b",{A_IMM,A_DISP_REG_N},{HEX_3,REG_N,IMM0_3Uc,HEX_9,HEX_C,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
   1181  1.1  skrll /* 0011nnnn0iii1001 1011dddddddddddd bldnot.b #<imm>,@(<DISP12>,<REG_N>) */
   1182  1.1  skrll {"bldnot.b",{A_IMM,A_DISP_REG_N},{HEX_3,REG_N,IMM0_3Uc,HEX_9,HEX_B,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
   1183  1.1  skrll /* 0011nnnn0iii1001 0101dddddddddddd bor.b #<imm>,@(<DISP12>,<REG_N>) */
   1184  1.1  skrll {"bor.b",{A_IMM,A_DISP_REG_N},{HEX_3,REG_N,IMM0_3Uc,HEX_9,HEX_5,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
   1185  1.1  skrll /* 0011nnnn0iii1001 1101dddddddddddd bornot.b #<imm>,@(<DISP12>,<REG_N>) */
   1186  1.1  skrll {"bornot.b",{A_IMM,A_DISP_REG_N},{HEX_3,REG_N,IMM0_3Uc,HEX_9,HEX_D,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
   1187  1.1  skrll /* 0011nnnn0iii1001 0110dddddddddddd bxor.b #<imm>,@(<DISP12>,<REG_N>) */
   1188  1.1  skrll {"bxor.b",{A_IMM,A_DISP_REG_N},{HEX_3,REG_N,IMM0_3Uc,HEX_9,HEX_6,DISP1_12}, arch_sh2a_nofpu_up | arch_op32},
   1189  1.1  skrll /* 0000nnnniiii0000 iiiiiiiiiiiiiiii movi20 #<imm>,<REG_N> */
   1190  1.1  skrll {"movi20",{A_IMM,A_REG_N},{HEX_0,REG_N,IMM0_20_4,HEX_0,IMM0_20}, arch_sh2a_nofpu_up | arch_op32},
   1191  1.1  skrll /* 0000nnnniiii0001 iiiiiiiiiiiiiiii movi20s #<imm>,<REG_N> */
   1192  1.1  skrll {"movi20s",{A_IMM,A_REG_N},{HEX_0,REG_N,IMM0_20_4,HEX_1,IMM0_20BY8}, arch_sh2a_nofpu_up | arch_op32},
   1193  1.1  skrll /* 0011nnnnmmmm0001 1000dddddddddddd movu.b @(<DISP12>,<REG_M>),<REG_N> */
   1194  1.1  skrll {"movu.b",{A_DISP_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_8,DISP0_12}, arch_sh2a_nofpu_up | arch_op32},
   1195  1.1  skrll /* 0011nnnnmmmm0001 1001dddddddddddd movu.w @(<DISP12>,<REG_M>),<REG_N> */
   1196  1.1  skrll {"movu.w",{A_DISP_REG_M,A_REG_N},{HEX_3,REG_N,REG_M,HEX_1,HEX_9,DISP0_12BY2}, arch_sh2a_nofpu_up | arch_op32},
   1197  1.1  skrll 
   1198  1.1  skrll { 0, {0}, {0}, 0 }
   1199  1.1  skrll };
   1200  1.1  skrll 
   1201  1.1  skrll #endif
   1202