Home | History | Annotate | Line # | Download | only in opcodes
cris-opc.c revision 1.1.1.7.2.1
      1          1.1     skrll /* cris-opc.c -- Table of opcodes for the CRIS processor.
      2  1.1.1.7.2.1  perseant    Copyright (C) 2000-2024 Free Software Foundation, Inc.
      3          1.1     skrll    Contributed by Axis Communications AB, Lund, Sweden.
      4          1.1     skrll    Originally written for GAS 1.38.1 by Mikael Asker.
      5          1.1     skrll    Reorganized by Hans-Peter Nilsson.
      6          1.1     skrll 
      7          1.1     skrll    This file is part of the GNU opcodes library.
      8          1.1     skrll 
      9          1.1     skrll    This library is free software; you can redistribute it and/or modify
     10          1.1     skrll    it under the terms of the GNU General Public License as published by
     11          1.1     skrll    the Free Software Foundation; either version 3, or (at your option)
     12          1.1     skrll    any later version.
     13          1.1     skrll 
     14          1.1     skrll    It is distributed in the hope that it will be useful, but WITHOUT
     15          1.1     skrll    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     16          1.1     skrll    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     17          1.1     skrll    License for more details.
     18          1.1     skrll 
     19          1.1     skrll    You should have received a copy of the GNU General Public License
     20          1.1     skrll    along with this program; if not, write to the Free Software
     21          1.1     skrll    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
     22          1.1     skrll    MA 02110-1301, USA.  */
     23          1.1     skrll 
     24          1.1     skrll #include "opcode/cris.h"
     25          1.1     skrll 
     26          1.1     skrll #ifndef NULL
     27          1.1     skrll #define NULL (0)
     28          1.1     skrll #endif
     29          1.1     skrll 
     30          1.1     skrll /* This table isn't used for CRISv32 and the size of immediate operands.  */
     31          1.1     skrll const struct cris_spec_reg
     32          1.1     skrll cris_spec_regs[] =
     33          1.1     skrll {
     34          1.1     skrll   {"bz",  0,  1, cris_ver_v32p,	   NULL},
     35          1.1     skrll   {"p0",  0,  1, 0,		   NULL},
     36          1.1     skrll   {"vr",  1,  1, 0,		   NULL},
     37          1.1     skrll   {"p1",  1,  1, 0,		   NULL},
     38          1.1     skrll   {"pid", 2,  1, cris_ver_v32p,    NULL},
     39          1.1     skrll   {"p2",  2,  1, cris_ver_v32p,	   NULL},
     40          1.1     skrll   {"p2",  2,  1, cris_ver_warning, NULL},
     41          1.1     skrll   {"srs", 3,  1, cris_ver_v32p,    NULL},
     42          1.1     skrll   {"p3",  3,  1, cris_ver_v32p,	   NULL},
     43          1.1     skrll   {"p3",  3,  1, cris_ver_warning, NULL},
     44          1.1     skrll   {"wz",  4,  2, cris_ver_v32p,	   NULL},
     45          1.1     skrll   {"p4",  4,  2, 0,		   NULL},
     46          1.1     skrll   {"ccr", 5,  2, cris_ver_v0_10,   NULL},
     47          1.1     skrll   {"exs", 5,  4, cris_ver_v32p,	   NULL},
     48          1.1     skrll   {"p5",  5,  2, cris_ver_v0_10,   NULL},
     49          1.1     skrll   {"p5",  5,  4, cris_ver_v32p,	   NULL},
     50          1.1     skrll   {"dcr0",6,  2, cris_ver_v0_3,	   NULL},
     51          1.1     skrll   {"eda", 6,  4, cris_ver_v32p,	   NULL},
     52          1.1     skrll   {"p6",  6,  2, cris_ver_v0_3,	   NULL},
     53          1.1     skrll   {"p6",  6,  4, cris_ver_v32p,	   NULL},
     54          1.1     skrll   {"dcr1/mof", 7, 4, cris_ver_v10p,
     55          1.1     skrll    "Register `dcr1/mof' with ambiguous size specified.  Guessing 4 bytes"},
     56          1.1     skrll   {"dcr1/mof", 7, 2, cris_ver_v0_3,
     57          1.1     skrll    "Register `dcr1/mof' with ambiguous size specified.  Guessing 2 bytes"},
     58          1.1     skrll   {"mof", 7,  4, cris_ver_v10p,	   NULL},
     59          1.1     skrll   {"dcr1",7,  2, cris_ver_v0_3,	   NULL},
     60          1.1     skrll   {"p7",  7,  4, cris_ver_v10p,	   NULL},
     61          1.1     skrll   {"p7",  7,  2, cris_ver_v0_3,	   NULL},
     62          1.1     skrll   {"dz",  8,  4, cris_ver_v32p,	   NULL},
     63          1.1     skrll   {"p8",  8,  4, 0,		   NULL},
     64          1.1     skrll   {"ibr", 9,  4, cris_ver_v0_10,   NULL},
     65          1.1     skrll   {"ebp", 9,  4, cris_ver_v32p,	   NULL},
     66          1.1     skrll   {"p9",  9,  4, 0,		   NULL},
     67          1.1     skrll   {"irp", 10, 4, cris_ver_v0_10,   NULL},
     68          1.1     skrll   {"erp", 10, 4, cris_ver_v32p,	   NULL},
     69          1.1     skrll   {"p10", 10, 4, 0,		   NULL},
     70          1.1     skrll   {"srp", 11, 4, 0,		   NULL},
     71          1.1     skrll   {"p11", 11, 4, 0,		   NULL},
     72          1.1     skrll   /* For disassembly use only.  Accept at assembly with a warning.  */
     73          1.1     skrll   {"bar/dtp0", 12, 4, cris_ver_warning,
     74          1.1     skrll    "Ambiguous register `bar/dtp0' specified"},
     75          1.1     skrll   {"nrp", 12, 4, cris_ver_v32p,	   NULL},
     76          1.1     skrll   {"bar", 12, 4, cris_ver_v8_10,   NULL},
     77          1.1     skrll   {"dtp0",12, 4, cris_ver_v0_3,	   NULL},
     78          1.1     skrll   {"p12", 12, 4, 0,		   NULL},
     79          1.1     skrll   /* For disassembly use only.  Accept at assembly with a warning.  */
     80          1.1     skrll   {"dccr/dtp1",13, 4, cris_ver_warning,
     81          1.1     skrll    "Ambiguous register `dccr/dtp1' specified"},
     82          1.1     skrll   {"ccs", 13, 4, cris_ver_v32p,	   NULL},
     83          1.1     skrll   {"dccr",13, 4, cris_ver_v8_10,   NULL},
     84          1.1     skrll   {"dtp1",13, 4, cris_ver_v0_3,	   NULL},
     85          1.1     skrll   {"p13", 13, 4, 0,		   NULL},
     86          1.1     skrll   {"brp", 14, 4, cris_ver_v3_10,   NULL},
     87          1.1     skrll   {"usp", 14, 4, cris_ver_v32p,	   NULL},
     88          1.1     skrll   {"p14", 14, 4, cris_ver_v3p,	   NULL},
     89          1.1     skrll   {"usp", 15, 4, cris_ver_v10,	   NULL},
     90          1.1     skrll   {"spc", 15, 4, cris_ver_v32p,	   NULL},
     91          1.1     skrll   {"p15", 15, 4, cris_ver_v10p,	   NULL},
     92          1.1     skrll   {NULL, 0, 0, cris_ver_version_all, NULL}
     93          1.1     skrll };
     94          1.1     skrll 
     95          1.1     skrll /* Add version specifiers to this table when necessary.
     96          1.1     skrll    The (now) regular coding of register names suggests a simpler
     97          1.1     skrll    implementation.  */
     98          1.1     skrll const struct cris_support_reg cris_support_regs[] =
     99          1.1     skrll {
    100          1.1     skrll   {"s0", 0},
    101          1.1     skrll   {"s1", 1},
    102          1.1     skrll   {"s2", 2},
    103          1.1     skrll   {"s3", 3},
    104          1.1     skrll   {"s4", 4},
    105          1.1     skrll   {"s5", 5},
    106          1.1     skrll   {"s6", 6},
    107          1.1     skrll   {"s7", 7},
    108          1.1     skrll   {"s8", 8},
    109          1.1     skrll   {"s9", 9},
    110          1.1     skrll   {"s10", 10},
    111          1.1     skrll   {"s11", 11},
    112          1.1     skrll   {"s12", 12},
    113          1.1     skrll   {"s13", 13},
    114          1.1     skrll   {"s14", 14},
    115          1.1     skrll   {"s15", 15},
    116          1.1     skrll   {NULL, 0}
    117          1.1     skrll };
    118          1.1     skrll 
    119          1.1     skrll /* All CRIS opcodes are 16 bits.
    120          1.1     skrll 
    121          1.1     skrll    - The match component is a mask saying which bits must match a
    122          1.1     skrll      particular opcode in order for an instruction to be an instance
    123          1.1     skrll      of that opcode.
    124          1.1     skrll 
    125          1.1     skrll    - The args component is a string containing characters symbolically
    126          1.1     skrll      matching the operands of an instruction.  Used for both assembly
    127          1.1     skrll      and disassembly.
    128          1.1     skrll 
    129          1.1     skrll      Operand-matching characters:
    130          1.1     skrll      [ ] , space
    131          1.1     skrll         Verbatim.
    132          1.1     skrll      A	The string "ACR" (case-insensitive).
    133          1.1     skrll      B	Not really an operand.  It causes a "BDAP -size,SP" prefix to be
    134          1.1     skrll 	output for the PUSH alias-instructions and recognizes a push-
    135          1.1     skrll 	prefix at disassembly.  This letter isn't recognized for v32.
    136          1.1     skrll 	Must be followed by a R or P letter.
    137          1.1     skrll      !	Non-match pattern, will not match if there's a prefix insn.
    138          1.1     skrll      b	Non-matching operand, used for branches with 16-bit
    139          1.1     skrll 	displacement. Only recognized by the disassembler.
    140          1.1     skrll      c	5-bit unsigned immediate in bits <4:0>.
    141          1.1     skrll      C	4-bit unsigned immediate in bits <3:0>.
    142          1.1     skrll      d  At assembly, optionally (as in put other cases before this one)
    143          1.1     skrll 	".d" or ".D" at the start of the operands, followed by one space
    144          1.1     skrll 	character.  At disassembly, nothing.
    145          1.1     skrll      D	General register in bits <15:12> and <3:0>.
    146          1.1     skrll      f	List of flags in bits <15:12> and <3:0>.
    147          1.1     skrll      i	6-bit signed immediate in bits <5:0>.
    148          1.1     skrll      I	6-bit unsigned immediate in bits <5:0>.
    149          1.1     skrll      M	Size modifier (B, W or D) for CLEAR instructions.
    150          1.1     skrll      m	Size modifier (B, W or D) in bits <5:4>
    151          1.1     skrll      N  A 32-bit dword, like in the difference between s and y.
    152          1.1     skrll         This has no effect on bits in the opcode.  Can also be expressed
    153          1.1     skrll 	as "[pc+]" in input.
    154          1.1     skrll      n  As N, but PC-relative (to the start of the instruction).
    155          1.1     skrll      o	[-128..127] word offset in bits <7:1> and <0>.  Used by 8-bit
    156          1.1     skrll 	branch instructions.
    157          1.1     skrll      O	[-128..127] offset in bits <7:0>.  Also matches a comma and a
    158          1.1     skrll 	general register after the expression, in bits <15:12>.  Used
    159          1.1     skrll 	only for the BDAP prefix insn (in v32 the ADDOQ insn; same opcode).
    160          1.1     skrll      P	Special register in bits <15:12>.
    161          1.1     skrll      p	Indicates that the insn is a prefix insn.  Must be first
    162          1.1     skrll 	character.
    163          1.1     skrll      Q  As O, but don't relax; force an 8-bit offset.
    164          1.1     skrll      R	General register in bits <15:12>.
    165          1.1     skrll      r	General register in bits <3:0>.
    166          1.1     skrll      S	Source operand in bit <10> and a prefix; a 3-operand prefix
    167          1.1     skrll 	without side-effect.
    168          1.1     skrll      s	Source operand in bits <10> and <3:0>, optionally with a
    169          1.1     skrll 	side-effect prefix, except [pc] (the name, not R15 as in ACR)
    170          1.1     skrll 	isn't allowed for v32 and higher.
    171          1.1     skrll      T  Support register in bits <15:12>.
    172          1.1     skrll      u  4-bit (PC-relative) unsigned immediate word offset in bits <3:0>.
    173          1.1     skrll      U  Relaxes to either u or n, instruction is assumed LAPCQ or LAPC.
    174          1.1     skrll 	Not recognized at disassembly.
    175          1.1     skrll      x	Register-dot-modifier, for example "r5.w" in bits <15:12> and <5:4>.
    176          1.1     skrll      y	Like 's' but do not allow an integer at assembly.
    177          1.1     skrll      Y	The difference s-y; only an integer is allowed.
    178          1.1     skrll      z	Size modifier (B or W) in bit <4>.  */
    179          1.1     skrll 
    180          1.1     skrll 
    181          1.1     skrll /* Please note the order of the opcodes in this table is significant.
    182          1.1     skrll    The assembler requires that all instances of the same mnemonic must
    183          1.1     skrll    be consecutive.  If they aren't, the assembler might not recognize
    184          1.1     skrll    them, or may indicate an internal error.
    185          1.1     skrll 
    186          1.1     skrll    The disassembler should not normally care about the order of the
    187          1.1     skrll    opcodes, but will prefer an earlier alternative if the "match-score"
    188          1.1     skrll    (see cris-dis.c) is computed as equal.
    189          1.1     skrll 
    190          1.1     skrll    It should not be significant for proper execution that this table is
    191          1.1     skrll    in alphabetical order, but please follow that convention for an easy
    192          1.1     skrll    overview.  */
    193          1.1     skrll 
    194          1.1     skrll const struct cris_opcode
    195          1.1     skrll cris_opcodes[] =
    196          1.1     skrll {
    197          1.1     skrll   {"abs",     0x06B0, 0x0940,		  "r,R",     0, SIZE_NONE,     0,
    198          1.1     skrll    cris_abs_op},
    199          1.1     skrll 
    200          1.1     skrll   {"add",     0x0600, 0x09c0,		  "m r,R",   0, SIZE_NONE,     0,
    201          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
    202          1.1     skrll 
    203          1.1     skrll   {"add",     0x0A00, 0x01c0,		  "m s,R",   0, SIZE_FIELD,    0,
    204          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    205          1.1     skrll 
    206          1.1     skrll   {"add",     0x0A00, 0x01c0,		  "m S,D",   0, SIZE_NONE,
    207          1.1     skrll    cris_ver_v0_10,
    208          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    209          1.1     skrll 
    210          1.1     skrll   {"add",     0x0a00, 0x05c0,		  "m S,R,r", 0, SIZE_NONE,
    211          1.1     skrll    cris_ver_v0_10,
    212          1.1     skrll    cris_three_operand_add_sub_cmp_and_or_op},
    213          1.1     skrll 
    214          1.1     skrll   {"add",     0x0A00, 0x01c0,		  "m s,R",   0, SIZE_FIELD,
    215          1.1     skrll    cris_ver_v32p,
    216          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    217          1.1     skrll 
    218          1.1     skrll   {"addc",    0x0570, 0x0A80,		  "r,R",     0, SIZE_FIX_32,
    219          1.1     skrll    cris_ver_v32p,
    220          1.1     skrll    cris_not_implemented_op},
    221          1.1     skrll 
    222          1.1     skrll   {"addc",    0x09A0, 0x0250,		  "s,R",     0, SIZE_FIX_32,
    223          1.1     skrll    cris_ver_v32p,
    224          1.1     skrll    cris_not_implemented_op},
    225          1.1     skrll 
    226          1.1     skrll   {"addi",    0x0540, 0x0A80,		  "x,r,A",   0, SIZE_NONE,
    227          1.1     skrll    cris_ver_v32p,
    228          1.1     skrll    cris_addi_op},
    229          1.1     skrll 
    230          1.1     skrll   {"addi",    0x0500, 0x0Ac0,		  "x,r",     0, SIZE_NONE,     0,
    231          1.1     skrll    cris_addi_op},
    232          1.1     skrll 
    233          1.1     skrll   /* This collates after "addo", but we want to disassemble as "addoq",
    234          1.1     skrll      not "addo".  */
    235          1.1     skrll   {"addoq",   0x0100, 0x0E00,		  "Q,A",     0, SIZE_NONE,
    236          1.1     skrll    cris_ver_v32p,
    237          1.1     skrll    cris_not_implemented_op},
    238          1.1     skrll 
    239          1.1     skrll   {"addo",    0x0940, 0x0280,		  "m s,R,A", 0, SIZE_FIELD_SIGNED,
    240          1.1     skrll    cris_ver_v32p,
    241          1.1     skrll    cris_not_implemented_op},
    242          1.1     skrll 
    243          1.1     skrll   /* This must be located after the insn above, lest we misinterpret
    244          1.1     skrll      "addo.b -1,r0,acr" as "addo .b-1,r0,acr".  FIXME: Sounds like a
    245          1.1     skrll      parser bug.  */
    246          1.1     skrll   {"addo",   0x0100, 0x0E00,		  "O,A",     0, SIZE_NONE,
    247          1.1     skrll    cris_ver_v32p,
    248          1.1     skrll    cris_not_implemented_op},
    249          1.1     skrll 
    250          1.1     skrll   {"addq",    0x0200, 0x0Dc0,		  "I,R",     0, SIZE_NONE,     0,
    251          1.1     skrll    cris_quick_mode_add_sub_op},
    252          1.1     skrll 
    253          1.1     skrll   {"adds",    0x0420, 0x0Bc0,		  "z r,R",   0, SIZE_NONE,     0,
    254          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
    255          1.1     skrll 
    256          1.1     skrll   /* FIXME: SIZE_FIELD_SIGNED and all necessary changes.  */
    257          1.1     skrll   {"adds",    0x0820, 0x03c0,		  "z s,R",   0, SIZE_FIELD,    0,
    258          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    259          1.1     skrll 
    260          1.1     skrll   {"adds",    0x0820, 0x03c0,		  "z S,D",   0, SIZE_NONE,
    261          1.1     skrll    cris_ver_v0_10,
    262          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    263          1.1     skrll 
    264          1.1     skrll   {"adds",    0x0820, 0x07c0,		  "z S,R,r", 0, SIZE_NONE,
    265          1.1     skrll    cris_ver_v0_10,
    266          1.1     skrll    cris_three_operand_add_sub_cmp_and_or_op},
    267          1.1     skrll 
    268          1.1     skrll   {"addu",    0x0400, 0x0be0,		  "z r,R",   0, SIZE_NONE,     0,
    269          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
    270          1.1     skrll 
    271          1.1     skrll   /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes.  */
    272          1.1     skrll   {"addu",    0x0800, 0x03e0,		  "z s,R",   0, SIZE_FIELD,    0,
    273          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    274          1.1     skrll 
    275          1.1     skrll   {"addu",    0x0800, 0x03e0,		  "z S,D",   0, SIZE_NONE,
    276          1.1     skrll    cris_ver_v0_10,
    277          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    278          1.1     skrll 
    279          1.1     skrll   {"addu",    0x0800, 0x07e0,		  "z S,R,r", 0, SIZE_NONE,
    280          1.1     skrll    cris_ver_v0_10,
    281          1.1     skrll    cris_three_operand_add_sub_cmp_and_or_op},
    282          1.1     skrll 
    283          1.1     skrll   {"and",     0x0700, 0x08C0,		  "m r,R",   0, SIZE_NONE,     0,
    284          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
    285          1.1     skrll 
    286          1.1     skrll   {"and",     0x0B00, 0x00C0,		  "m s,R",   0, SIZE_FIELD,    0,
    287          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    288          1.1     skrll 
    289          1.1     skrll   {"and",     0x0B00, 0x00C0,		  "m S,D",   0, SIZE_NONE,
    290          1.1     skrll    cris_ver_v0_10,
    291          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    292          1.1     skrll 
    293          1.1     skrll   {"and",     0x0B00, 0x04C0,		  "m S,R,r", 0, SIZE_NONE,
    294          1.1     skrll    cris_ver_v0_10,
    295          1.1     skrll    cris_three_operand_add_sub_cmp_and_or_op},
    296          1.1     skrll 
    297          1.1     skrll   {"andq",    0x0300, 0x0CC0,		  "i,R",     0, SIZE_NONE,     0,
    298          1.1     skrll    cris_quick_mode_and_cmp_move_or_op},
    299          1.1     skrll 
    300          1.1     skrll   {"asr",     0x0780, 0x0840,		  "m r,R",   0, SIZE_NONE,     0,
    301          1.1     skrll    cris_asr_op},
    302          1.1     skrll 
    303          1.1     skrll   {"asrq",    0x03a0, 0x0c40,		  "c,R",     0, SIZE_NONE,     0,
    304          1.1     skrll    cris_asrq_op},
    305          1.1     skrll 
    306          1.1     skrll   {"ax",      0x15B0, 0xEA4F,		  "",	     0, SIZE_NONE,     0,
    307          1.1     skrll    cris_ax_ei_setf_op},
    308          1.1     skrll 
    309          1.1     skrll   /* FIXME: Should use branch #defines.  */
    310          1.1     skrll   {"b",	      0x0dff, 0x0200,		  "b",	     1, SIZE_NONE,     0,
    311          1.1     skrll    cris_sixteen_bit_offset_branch_op},
    312          1.1     skrll 
    313          1.1     skrll   {"ba",
    314          1.1     skrll    BA_QUICK_OPCODE,
    315          1.1     skrll    0x0F00+(0xF-CC_A)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    316          1.1     skrll    cris_eight_bit_offset_branch_op},
    317          1.1     skrll 
    318          1.1     skrll   /* Needs to come after the usual "ba o", which might be relaxed to
    319          1.1     skrll      this one.  */
    320          1.1     skrll   {"ba",     BA_DWORD_OPCODE,
    321          1.1     skrll    0xffff & (~BA_DWORD_OPCODE),		  "n",	     0, SIZE_FIX_32,
    322          1.1     skrll    cris_ver_v32p,
    323          1.1     skrll    cris_none_reg_mode_jump_op},
    324          1.1     skrll 
    325          1.1     skrll   {"bas",     0x0EBF, 0x0140,		  "n,P",     0, SIZE_FIX_32,
    326          1.1     skrll    cris_ver_v32p,
    327          1.1     skrll    cris_none_reg_mode_jump_op},
    328          1.1     skrll 
    329          1.1     skrll   {"basc",     0x0EFF, 0x0100,		  "n,P",     0, SIZE_FIX_32,
    330          1.1     skrll    cris_ver_v32p,
    331          1.1     skrll    cris_none_reg_mode_jump_op},
    332          1.1     skrll 
    333          1.1     skrll   {"bcc",
    334          1.1     skrll    BRANCH_QUICK_OPCODE+CC_CC*0x1000,
    335          1.1     skrll    0x0f00+(0xF-CC_CC)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    336          1.1     skrll    cris_eight_bit_offset_branch_op},
    337          1.1     skrll 
    338          1.1     skrll   {"bcs",
    339          1.1     skrll    BRANCH_QUICK_OPCODE+CC_CS*0x1000,
    340          1.1     skrll    0x0f00+(0xF-CC_CS)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    341          1.1     skrll    cris_eight_bit_offset_branch_op},
    342          1.1     skrll 
    343          1.1     skrll   {"bdap",
    344          1.1     skrll    BDAP_INDIR_OPCODE, BDAP_INDIR_Z_BITS,  "pm s,R",  0, SIZE_FIELD_SIGNED,
    345          1.1     skrll    cris_ver_v0_10,
    346          1.1     skrll    cris_bdap_prefix},
    347          1.1     skrll 
    348          1.1     skrll   {"bdap",
    349          1.1     skrll    BDAP_QUICK_OPCODE, BDAP_QUICK_Z_BITS,  "pO",	     0, SIZE_NONE,
    350          1.1     skrll    cris_ver_v0_10,
    351          1.1     skrll    cris_quick_mode_bdap_prefix},
    352          1.1     skrll 
    353          1.1     skrll   {"beq",
    354          1.1     skrll    BRANCH_QUICK_OPCODE+CC_EQ*0x1000,
    355          1.1     skrll    0x0f00+(0xF-CC_EQ)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    356          1.1     skrll    cris_eight_bit_offset_branch_op},
    357          1.1     skrll 
    358          1.1     skrll   /* This is deliberately put before "bext" to trump it, even though not
    359          1.1     skrll      in alphabetical order, since we don't do excluding version checks
    360          1.1     skrll      for v0..v10.  */
    361          1.1     skrll   {"bwf",
    362          1.1     skrll    BRANCH_QUICK_OPCODE+CC_EXT*0x1000,
    363          1.1     skrll    0x0f00+(0xF-CC_EXT)*0x1000,		  "o",	     1, SIZE_NONE,
    364          1.1     skrll    cris_ver_v10,
    365          1.1     skrll    cris_eight_bit_offset_branch_op},
    366          1.1     skrll 
    367          1.1     skrll   {"bext",
    368          1.1     skrll    BRANCH_QUICK_OPCODE+CC_EXT*0x1000,
    369          1.1     skrll    0x0f00+(0xF-CC_EXT)*0x1000,		  "o",	     1, SIZE_NONE,
    370          1.1     skrll    cris_ver_v0_3,
    371          1.1     skrll    cris_eight_bit_offset_branch_op},
    372          1.1     skrll 
    373          1.1     skrll   {"bge",
    374          1.1     skrll    BRANCH_QUICK_OPCODE+CC_GE*0x1000,
    375          1.1     skrll    0x0f00+(0xF-CC_GE)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    376          1.1     skrll    cris_eight_bit_offset_branch_op},
    377          1.1     skrll 
    378          1.1     skrll   {"bgt",
    379          1.1     skrll    BRANCH_QUICK_OPCODE+CC_GT*0x1000,
    380          1.1     skrll    0x0f00+(0xF-CC_GT)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    381          1.1     skrll    cris_eight_bit_offset_branch_op},
    382          1.1     skrll 
    383          1.1     skrll   {"bhi",
    384          1.1     skrll    BRANCH_QUICK_OPCODE+CC_HI*0x1000,
    385          1.1     skrll    0x0f00+(0xF-CC_HI)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    386          1.1     skrll    cris_eight_bit_offset_branch_op},
    387          1.1     skrll 
    388          1.1     skrll   {"bhs",
    389          1.1     skrll    BRANCH_QUICK_OPCODE+CC_HS*0x1000,
    390          1.1     skrll    0x0f00+(0xF-CC_HS)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    391          1.1     skrll    cris_eight_bit_offset_branch_op},
    392          1.1     skrll 
    393          1.1     skrll   {"biap", BIAP_OPCODE, BIAP_Z_BITS,	  "pm r,R",  0, SIZE_NONE,
    394          1.1     skrll    cris_ver_v0_10,
    395          1.1     skrll    cris_biap_prefix},
    396          1.1     skrll 
    397          1.1     skrll   {"ble",
    398          1.1     skrll    BRANCH_QUICK_OPCODE+CC_LE*0x1000,
    399          1.1     skrll    0x0f00+(0xF-CC_LE)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    400          1.1     skrll    cris_eight_bit_offset_branch_op},
    401          1.1     skrll 
    402          1.1     skrll   {"blo",
    403          1.1     skrll    BRANCH_QUICK_OPCODE+CC_LO*0x1000,
    404          1.1     skrll    0x0f00+(0xF-CC_LO)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    405          1.1     skrll    cris_eight_bit_offset_branch_op},
    406          1.1     skrll 
    407          1.1     skrll   {"bls",
    408          1.1     skrll    BRANCH_QUICK_OPCODE+CC_LS*0x1000,
    409          1.1     skrll    0x0f00+(0xF-CC_LS)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    410          1.1     skrll    cris_eight_bit_offset_branch_op},
    411          1.1     skrll 
    412          1.1     skrll   {"blt",
    413          1.1     skrll    BRANCH_QUICK_OPCODE+CC_LT*0x1000,
    414          1.1     skrll    0x0f00+(0xF-CC_LT)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    415          1.1     skrll    cris_eight_bit_offset_branch_op},
    416          1.1     skrll 
    417          1.1     skrll   {"bmi",
    418          1.1     skrll    BRANCH_QUICK_OPCODE+CC_MI*0x1000,
    419          1.1     skrll    0x0f00+(0xF-CC_MI)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    420          1.1     skrll    cris_eight_bit_offset_branch_op},
    421          1.1     skrll 
    422          1.1     skrll   {"bmod",    0x0ab0, 0x0140,		  "s,R",     0, SIZE_FIX_32,
    423          1.1     skrll    cris_ver_sim_v0_10,
    424          1.1     skrll    cris_not_implemented_op},
    425          1.1     skrll 
    426          1.1     skrll   {"bmod",    0x0ab0, 0x0140,		  "S,D",     0, SIZE_NONE,
    427          1.1     skrll    cris_ver_sim_v0_10,
    428          1.1     skrll    cris_not_implemented_op},
    429          1.1     skrll 
    430          1.1     skrll   {"bmod",    0x0ab0, 0x0540,		  "S,R,r",   0, SIZE_NONE,
    431          1.1     skrll    cris_ver_sim_v0_10,
    432          1.1     skrll    cris_not_implemented_op},
    433          1.1     skrll 
    434          1.1     skrll   {"bne",
    435          1.1     skrll    BRANCH_QUICK_OPCODE+CC_NE*0x1000,
    436          1.1     skrll    0x0f00+(0xF-CC_NE)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    437          1.1     skrll    cris_eight_bit_offset_branch_op},
    438          1.1     skrll 
    439          1.1     skrll   {"bound",   0x05c0, 0x0A00,		  "m r,R",   0, SIZE_NONE,     0,
    440          1.1     skrll    cris_two_operand_bound_op},
    441          1.1     skrll   /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes.  */
    442          1.1     skrll   {"bound",   0x09c0, 0x0200,		  "m s,R",   0, SIZE_FIELD,
    443          1.1     skrll    cris_ver_v0_10,
    444          1.1     skrll    cris_two_operand_bound_op},
    445          1.1     skrll   /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes.  */
    446          1.1     skrll   {"bound",   0x0dcf, 0x0200,		  "m Y,R",   0, SIZE_FIELD,    0,
    447          1.1     skrll    cris_two_operand_bound_op},
    448          1.1     skrll   {"bound",   0x09c0, 0x0200,		  "m S,D",   0, SIZE_NONE,
    449          1.1     skrll    cris_ver_v0_10,
    450          1.1     skrll    cris_two_operand_bound_op},
    451          1.1     skrll   {"bound",   0x09c0, 0x0600,		  "m S,R,r", 0, SIZE_NONE,
    452          1.1     skrll    cris_ver_v0_10,
    453          1.1     skrll    cris_three_operand_bound_op},
    454          1.1     skrll 
    455          1.1     skrll   {"bpl",
    456          1.1     skrll    BRANCH_QUICK_OPCODE+CC_PL*0x1000,
    457          1.1     skrll    0x0f00+(0xF-CC_PL)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    458          1.1     skrll    cris_eight_bit_offset_branch_op},
    459          1.1     skrll 
    460          1.1     skrll   {"break",   0xe930, 0x16c0,		  "C",	     0, SIZE_NONE,
    461          1.1     skrll    cris_ver_v3p,
    462          1.1     skrll    cris_break_op},
    463          1.1     skrll 
    464          1.1     skrll   {"bsb",
    465          1.1     skrll    BRANCH_QUICK_OPCODE+CC_EXT*0x1000,
    466          1.1     skrll    0x0f00+(0xF-CC_EXT)*0x1000,		  "o",	     1, SIZE_NONE,
    467          1.1     skrll    cris_ver_v32p,
    468          1.1     skrll    cris_eight_bit_offset_branch_op},
    469          1.1     skrll 
    470          1.1     skrll   {"bsr",     0xBEBF, 0x4140,		  "n",	     0, SIZE_FIX_32,
    471          1.1     skrll    cris_ver_v32p,
    472          1.1     skrll    cris_none_reg_mode_jump_op},
    473          1.1     skrll 
    474          1.1     skrll   {"bsrc",     0xBEFF, 0x4100,		  "n",	     0, SIZE_FIX_32,
    475          1.1     skrll    cris_ver_v32p,
    476          1.1     skrll    cris_none_reg_mode_jump_op},
    477          1.1     skrll 
    478          1.1     skrll   {"bstore",  0x0af0, 0x0100,		  "s,R",     0, SIZE_FIX_32,
    479          1.1     skrll    cris_ver_warning,
    480          1.1     skrll    cris_not_implemented_op},
    481          1.1     skrll 
    482          1.1     skrll   {"bstore",  0x0af0, 0x0100,		  "S,D",     0, SIZE_NONE,
    483          1.1     skrll    cris_ver_warning,
    484          1.1     skrll    cris_not_implemented_op},
    485          1.1     skrll 
    486          1.1     skrll   {"bstore",  0x0af0, 0x0500,		  "S,R,r",   0, SIZE_NONE,
    487          1.1     skrll    cris_ver_warning,
    488          1.1     skrll    cris_not_implemented_op},
    489          1.1     skrll 
    490          1.1     skrll   {"btst",    0x04F0, 0x0B00,		  "r,R",     0, SIZE_NONE,     0,
    491          1.1     skrll    cris_btst_nop_op},
    492          1.1     skrll   {"btstq",   0x0380, 0x0C60,		  "c,R",     0, SIZE_NONE,     0,
    493          1.1     skrll    cris_btst_nop_op},
    494          1.1     skrll 
    495          1.1     skrll   {"bvc",
    496          1.1     skrll    BRANCH_QUICK_OPCODE+CC_VC*0x1000,
    497          1.1     skrll    0x0f00+(0xF-CC_VC)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    498          1.1     skrll    cris_eight_bit_offset_branch_op},
    499          1.1     skrll 
    500          1.1     skrll   {"bvs",
    501          1.1     skrll    BRANCH_QUICK_OPCODE+CC_VS*0x1000,
    502          1.1     skrll    0x0f00+(0xF-CC_VS)*0x1000,		  "o",	     1, SIZE_NONE,     0,
    503          1.1     skrll    cris_eight_bit_offset_branch_op},
    504          1.1     skrll 
    505          1.1     skrll   {"clear",   0x0670, 0x3980,		  "M r",     0, SIZE_NONE,     0,
    506          1.1     skrll    cris_reg_mode_clear_op},
    507          1.1     skrll 
    508          1.1     skrll   {"clear",   0x0A70, 0x3180,		  "M y",     0, SIZE_NONE,     0,
    509          1.1     skrll    cris_none_reg_mode_clear_test_op},
    510          1.1     skrll 
    511          1.1     skrll   {"clear",   0x0A70, 0x3180,		  "M S",     0, SIZE_NONE,
    512          1.1     skrll    cris_ver_v0_10,
    513          1.1     skrll    cris_none_reg_mode_clear_test_op},
    514          1.1     skrll 
    515          1.1     skrll   {"clearf",  0x05F0, 0x0A00,		  "f",	     0, SIZE_NONE,     0,
    516          1.1     skrll    cris_clearf_di_op},
    517          1.1     skrll 
    518          1.1     skrll   {"cmp",     0x06C0, 0x0900,		  "m r,R",   0, SIZE_NONE,     0,
    519          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
    520          1.1     skrll 
    521          1.1     skrll   {"cmp",     0x0Ac0, 0x0100,		  "m s,R",   0, SIZE_FIELD,    0,
    522          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    523          1.1     skrll 
    524          1.1     skrll   {"cmp",     0x0Ac0, 0x0100,		  "m S,D",   0, SIZE_NONE,
    525          1.1     skrll    cris_ver_v0_10,
    526          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    527          1.1     skrll 
    528          1.1     skrll   {"cmpq",    0x02C0, 0x0D00,		  "i,R",     0, SIZE_NONE,     0,
    529          1.1     skrll    cris_quick_mode_and_cmp_move_or_op},
    530          1.1     skrll 
    531          1.1     skrll   /* FIXME: SIZE_FIELD_SIGNED and all necessary changes.  */
    532          1.1     skrll   {"cmps",    0x08e0, 0x0300,		  "z s,R",   0, SIZE_FIELD,    0,
    533          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    534          1.1     skrll 
    535          1.1     skrll   {"cmps",    0x08e0, 0x0300,		  "z S,D",   0, SIZE_NONE,
    536          1.1     skrll    cris_ver_v0_10,
    537          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    538          1.1     skrll 
    539          1.1     skrll   /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes.  */
    540          1.1     skrll   {"cmpu",    0x08c0, 0x0320,		  "z s,R" ,  0, SIZE_FIELD,    0,
    541          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    542          1.1     skrll 
    543          1.1     skrll   {"cmpu",    0x08c0, 0x0320,		  "z S,D",   0, SIZE_NONE,
    544          1.1     skrll    cris_ver_v0_10,
    545          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    546          1.1     skrll 
    547          1.1     skrll   {"di",      0x25F0, 0xDA0F,		  "",	     0, SIZE_NONE,     0,
    548          1.1     skrll    cris_clearf_di_op},
    549          1.1     skrll 
    550          1.1     skrll   {"dip",     DIP_OPCODE, DIP_Z_BITS,	  "ps",	     0, SIZE_FIX_32,
    551          1.1     skrll    cris_ver_v0_10,
    552          1.1     skrll    cris_dip_prefix},
    553          1.1     skrll 
    554          1.1     skrll   {"div",     0x0980, 0x0640,		  "m R,r",   0, SIZE_FIELD,    0,
    555          1.1     skrll    cris_not_implemented_op},
    556          1.1     skrll 
    557          1.1     skrll   {"dstep",   0x06f0, 0x0900,		  "r,R",     0, SIZE_NONE,     0,
    558          1.1     skrll    cris_dstep_logshift_mstep_neg_not_op},
    559          1.1     skrll 
    560          1.1     skrll   {"ei",      0x25B0, 0xDA4F,		  "",	     0, SIZE_NONE,     0,
    561          1.1     skrll    cris_ax_ei_setf_op},
    562          1.1     skrll 
    563          1.1     skrll   {"fidxd",    0x0ab0, 0xf540,		  "[r]",     0, SIZE_NONE,
    564          1.1     skrll    cris_ver_v32p,
    565          1.1     skrll    cris_not_implemented_op},
    566          1.1     skrll 
    567          1.1     skrll   {"fidxi",    0x0d30, 0xF2C0,		  "[r]",     0, SIZE_NONE,
    568          1.1     skrll    cris_ver_v32p,
    569          1.1     skrll    cris_not_implemented_op},
    570          1.1     skrll 
    571          1.1     skrll   {"ftagd",    0x1AB0, 0xE540,		  "[r]",     0, SIZE_NONE,
    572          1.1     skrll    cris_ver_v32p,
    573          1.1     skrll    cris_not_implemented_op},
    574          1.1     skrll 
    575          1.1     skrll   {"ftagi",    0x1D30, 0xE2C0,		  "[r]",     0, SIZE_NONE,
    576          1.1     skrll    cris_ver_v32p,
    577          1.1     skrll    cris_not_implemented_op},
    578          1.1     skrll 
    579          1.1     skrll   {"halt",    0xF930, 0x06CF,		  "",	     0, SIZE_NONE,
    580          1.1     skrll    cris_ver_v32p,
    581          1.1     skrll    cris_not_implemented_op},
    582          1.1     skrll 
    583          1.1     skrll   {"jas",    0x09B0, 0x0640,		  "r,P",     0, SIZE_NONE,
    584          1.1     skrll    cris_ver_v32p,
    585          1.1     skrll    cris_reg_mode_jump_op},
    586          1.1     skrll 
    587          1.1     skrll   {"jas",    0x0DBF, 0x0240,		  "N,P",     0, SIZE_FIX_32,
    588          1.1     skrll    cris_ver_v32p,
    589          1.1     skrll    cris_reg_mode_jump_op},
    590          1.1     skrll 
    591          1.1     skrll   {"jasc",    0x0B30, 0x04C0,		  "r,P",     0, SIZE_NONE,
    592          1.1     skrll    cris_ver_v32p,
    593          1.1     skrll    cris_reg_mode_jump_op},
    594          1.1     skrll 
    595          1.1     skrll   {"jasc",    0x0F3F, 0x00C0,		  "N,P",     0, SIZE_FIX_32,
    596          1.1     skrll    cris_ver_v32p,
    597          1.1     skrll    cris_reg_mode_jump_op},
    598          1.1     skrll 
    599          1.1     skrll   {"jbrc",    0x69b0, 0x9640,		  "r",	     0, SIZE_NONE,
    600          1.1     skrll    cris_ver_v8_10,
    601          1.1     skrll    cris_reg_mode_jump_op},
    602          1.1     skrll 
    603          1.1     skrll   {"jbrc",    0x6930, 0x92c0,		  "s",	     0, SIZE_FIX_32,
    604          1.1     skrll    cris_ver_v8_10,
    605          1.1     skrll    cris_none_reg_mode_jump_op},
    606          1.1     skrll 
    607          1.1     skrll   {"jbrc",    0x6930, 0x92c0,		  "S",	     0, SIZE_NONE,
    608          1.1     skrll    cris_ver_v8_10,
    609          1.1     skrll    cris_none_reg_mode_jump_op},
    610          1.1     skrll 
    611          1.1     skrll   {"jir",     0xA9b0, 0x5640,		  "r",	     0, SIZE_NONE,
    612          1.1     skrll    cris_ver_v8_10,
    613          1.1     skrll    cris_reg_mode_jump_op},
    614          1.1     skrll 
    615          1.1     skrll   {"jir",     0xA930, 0x52c0,		  "s",	     0, SIZE_FIX_32,
    616          1.1     skrll    cris_ver_v8_10,
    617          1.1     skrll    cris_none_reg_mode_jump_op},
    618          1.1     skrll 
    619          1.1     skrll   {"jir",     0xA930, 0x52c0,		  "S",	     0, SIZE_NONE,
    620          1.1     skrll    cris_ver_v8_10,
    621          1.1     skrll    cris_none_reg_mode_jump_op},
    622          1.1     skrll 
    623          1.1     skrll   {"jirc",    0x29b0, 0xd640,		  "r",	     0, SIZE_NONE,
    624          1.1     skrll    cris_ver_v8_10,
    625          1.1     skrll    cris_reg_mode_jump_op},
    626          1.1     skrll 
    627          1.1     skrll   {"jirc",    0x2930, 0xd2c0,		  "s",	     0, SIZE_FIX_32,
    628          1.1     skrll    cris_ver_v8_10,
    629          1.1     skrll    cris_none_reg_mode_jump_op},
    630          1.1     skrll 
    631          1.1     skrll   {"jirc",    0x2930, 0xd2c0,		  "S",	     0, SIZE_NONE,
    632          1.1     skrll    cris_ver_v8_10,
    633          1.1     skrll    cris_none_reg_mode_jump_op},
    634          1.1     skrll 
    635          1.1     skrll   {"jsr",     0xB9b0, 0x4640,		  "r",	     0, SIZE_NONE,     0,
    636          1.1     skrll    cris_reg_mode_jump_op},
    637          1.1     skrll 
    638          1.1     skrll   {"jsr",     0xB930, 0x42c0,		  "s",	     0, SIZE_FIX_32,
    639          1.1     skrll    cris_ver_v0_10,
    640          1.1     skrll    cris_none_reg_mode_jump_op},
    641          1.1     skrll 
    642          1.1     skrll   {"jsr",     0xBDBF, 0x4240,		  "N",	     0, SIZE_FIX_32,
    643          1.1     skrll    cris_ver_v32p,
    644          1.1     skrll    cris_none_reg_mode_jump_op},
    645          1.1     skrll 
    646          1.1     skrll   {"jsr",     0xB930, 0x42c0,		  "S",	     0, SIZE_NONE,
    647          1.1     skrll    cris_ver_v0_10,
    648          1.1     skrll    cris_none_reg_mode_jump_op},
    649          1.1     skrll 
    650          1.1     skrll   {"jsrc",    0x39b0, 0xc640,		  "r",	     0, SIZE_NONE,
    651          1.1     skrll    cris_ver_v8_10,
    652          1.1     skrll    cris_reg_mode_jump_op},
    653          1.1     skrll 
    654          1.1     skrll   {"jsrc",    0x3930, 0xc2c0,		  "s",	     0, SIZE_FIX_32,
    655          1.1     skrll    cris_ver_v8_10,
    656          1.1     skrll    cris_none_reg_mode_jump_op},
    657          1.1     skrll 
    658          1.1     skrll   {"jsrc",    0x3930, 0xc2c0,		  "S",	     0, SIZE_NONE,
    659          1.1     skrll    cris_ver_v8_10,
    660          1.1     skrll    cris_none_reg_mode_jump_op},
    661          1.1     skrll 
    662          1.1     skrll   {"jsrc",    0xBB30, 0x44C0,		  "r",       0, SIZE_NONE,
    663          1.1     skrll    cris_ver_v32p,
    664          1.1     skrll    cris_reg_mode_jump_op},
    665          1.1     skrll 
    666          1.1     skrll   {"jsrc",    0xBF3F, 0x40C0,		  "N",	     0, SIZE_FIX_32,
    667          1.1     skrll    cris_ver_v32p,
    668          1.1     skrll    cris_reg_mode_jump_op},
    669          1.1     skrll 
    670          1.1     skrll   {"jump",    0x09b0, 0xF640,		  "r",	     0, SIZE_NONE,     0,
    671          1.1     skrll    cris_reg_mode_jump_op},
    672          1.1     skrll 
    673          1.1     skrll   {"jump",
    674          1.1     skrll    JUMP_INDIR_OPCODE, JUMP_INDIR_Z_BITS,  "s",	     0, SIZE_FIX_32,
    675          1.1     skrll    cris_ver_v0_10,
    676          1.1     skrll    cris_none_reg_mode_jump_op},
    677          1.1     skrll 
    678          1.1     skrll   {"jump",
    679          1.1     skrll    JUMP_INDIR_OPCODE, JUMP_INDIR_Z_BITS,  "S",	     0, SIZE_NONE,
    680          1.1     skrll    cris_ver_v0_10,
    681          1.1     skrll    cris_none_reg_mode_jump_op},
    682          1.1     skrll 
    683          1.1     skrll   {"jump",    0x09F0, 0x060F,		  "P",	     0, SIZE_NONE,
    684          1.1     skrll    cris_ver_v32p,
    685          1.1     skrll    cris_none_reg_mode_jump_op},
    686          1.1     skrll 
    687          1.1     skrll   {"jump",
    688          1.1     skrll    JUMP_PC_INCR_OPCODE_V32,
    689          1.1     skrll    (0xffff & ~JUMP_PC_INCR_OPCODE_V32),	  "N",	     0, SIZE_FIX_32,
    690          1.1     skrll    cris_ver_v32p,
    691          1.1     skrll    cris_none_reg_mode_jump_op},
    692          1.1     skrll 
    693          1.1     skrll   {"jmpu",    0x8930, 0x72c0,		  "s",	     0, SIZE_FIX_32,
    694          1.1     skrll    cris_ver_v10,
    695          1.1     skrll    cris_none_reg_mode_jump_op},
    696          1.1     skrll 
    697          1.1     skrll   {"jmpu",    0x8930, 0x72c0,		   "S",	     0, SIZE_NONE,
    698          1.1     skrll    cris_ver_v10,
    699          1.1     skrll    cris_none_reg_mode_jump_op},
    700          1.1     skrll 
    701          1.1     skrll   {"lapc",    0x0970, 0x0680,		  "U,R",    0, SIZE_NONE,
    702          1.1     skrll    cris_ver_v32p,
    703          1.1     skrll    cris_not_implemented_op},
    704          1.1     skrll 
    705          1.1     skrll   {"lapc",    0x0D7F, 0x0280,		  "dn,R",    0, SIZE_FIX_32,
    706          1.1     skrll    cris_ver_v32p,
    707          1.1     skrll    cris_not_implemented_op},
    708          1.1     skrll 
    709          1.1     skrll   {"lapcq",   0x0970, 0x0680,		  "u,R",     0, SIZE_NONE,
    710          1.1     skrll    cris_ver_v32p,
    711          1.1     skrll    cris_addi_op},
    712          1.1     skrll 
    713          1.1     skrll   {"lsl",     0x04C0, 0x0B00,		  "m r,R",   0, SIZE_NONE,     0,
    714          1.1     skrll    cris_dstep_logshift_mstep_neg_not_op},
    715          1.1     skrll 
    716          1.1     skrll   {"lslq",    0x03c0, 0x0C20,		  "c,R",     0, SIZE_NONE,     0,
    717          1.1     skrll    cris_dstep_logshift_mstep_neg_not_op},
    718          1.1     skrll 
    719          1.1     skrll   {"lsr",     0x07C0, 0x0800,		  "m r,R",   0, SIZE_NONE,     0,
    720          1.1     skrll    cris_dstep_logshift_mstep_neg_not_op},
    721          1.1     skrll 
    722          1.1     skrll   {"lsrq",    0x03e0, 0x0C00,		  "c,R",     0, SIZE_NONE,     0,
    723          1.1     skrll    cris_dstep_logshift_mstep_neg_not_op},
    724          1.1     skrll 
    725          1.1     skrll   {"lz",      0x0730, 0x08C0,		  "r,R",     0, SIZE_NONE,
    726          1.1     skrll    cris_ver_v3p,
    727          1.1     skrll    cris_not_implemented_op},
    728          1.1     skrll 
    729          1.1     skrll   {"mcp",      0x07f0, 0x0800,		  "P,r",     0, SIZE_NONE,
    730          1.1     skrll    cris_ver_v32p,
    731          1.1     skrll    cris_not_implemented_op},
    732          1.1     skrll 
    733          1.1     skrll   {"move",    0x0640, 0x0980,		  "m r,R",   0, SIZE_NONE,     0,
    734          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
    735          1.1     skrll 
    736          1.1     skrll   {"move",    0x0A40, 0x0180,		  "m s,R",   0, SIZE_FIELD,    0,
    737          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    738          1.1     skrll 
    739          1.1     skrll   {"move",    0x0A40, 0x0180,		  "m S,D",   0, SIZE_NONE,
    740          1.1     skrll    cris_ver_v0_10,
    741          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    742          1.1     skrll 
    743          1.1     skrll   {"move",    0x0630, 0x09c0,		  "r,P",     0, SIZE_NONE,     0,
    744          1.1     skrll    cris_move_to_preg_op},
    745          1.1     skrll 
    746          1.1     skrll   {"move",    0x0670, 0x0980,		  "P,r",     0, SIZE_NONE,     0,
    747          1.1     skrll    cris_reg_mode_move_from_preg_op},
    748          1.1     skrll 
    749          1.1     skrll   {"move",    0x0BC0, 0x0000,		  "m R,y",   0, SIZE_FIELD,    0,
    750          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    751          1.1     skrll 
    752          1.1     skrll   {"move",    0x0BC0, 0x0000,		  "m D,S",   0, SIZE_NONE,
    753          1.1     skrll    cris_ver_v0_10,
    754          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    755          1.1     skrll 
    756          1.1     skrll   {"move",
    757          1.1     skrll    MOVE_M_TO_PREG_OPCODE, MOVE_M_TO_PREG_ZBITS,
    758          1.1     skrll    "s,P",   0, SIZE_SPEC_REG, 0,
    759          1.1     skrll    cris_move_to_preg_op},
    760          1.1     skrll 
    761          1.1     skrll   {"move",    0x0A30, 0x01c0,		  "S,P",     0, SIZE_NONE,
    762          1.1     skrll    cris_ver_v0_10,
    763          1.1     skrll    cris_move_to_preg_op},
    764          1.1     skrll 
    765          1.1     skrll   {"move",    0x0A70, 0x0180,		  "P,y",     0, SIZE_SPEC_REG, 0,
    766          1.1     skrll    cris_none_reg_mode_move_from_preg_op},
    767          1.1     skrll 
    768          1.1     skrll   {"move",    0x0A70, 0x0180,		  "P,S",     0, SIZE_NONE,
    769          1.1     skrll    cris_ver_v0_10,
    770          1.1     skrll    cris_none_reg_mode_move_from_preg_op},
    771          1.1     skrll 
    772          1.1     skrll   {"move",    0x0B70, 0x0480,		  "r,T",     0, SIZE_NONE,
    773          1.1     skrll    cris_ver_v32p,
    774          1.1     skrll    cris_not_implemented_op},
    775          1.1     skrll 
    776          1.1     skrll   {"move",    0x0F70, 0x0080,		  "T,r",     0, SIZE_NONE,
    777          1.1     skrll    cris_ver_v32p,
    778          1.1     skrll    cris_not_implemented_op},
    779          1.1     skrll 
    780          1.1     skrll   {"movem",   0x0BF0, 0x0000,		  "R,y",     0, SIZE_FIX_32,   0,
    781          1.1     skrll    cris_move_reg_to_mem_movem_op},
    782          1.1     skrll 
    783          1.1     skrll   {"movem",   0x0BF0, 0x0000,		  "D,S",     0, SIZE_NONE,
    784          1.1     skrll    cris_ver_v0_10,
    785          1.1     skrll    cris_move_reg_to_mem_movem_op},
    786          1.1     skrll 
    787          1.1     skrll   {"movem",   0x0BB0, 0x0040,		  "s,R",     0, SIZE_FIX_32,   0,
    788          1.1     skrll    cris_move_mem_to_reg_movem_op},
    789          1.1     skrll 
    790          1.1     skrll   {"movem",   0x0BB0, 0x0040,		  "S,D",     0, SIZE_NONE,
    791          1.1     skrll    cris_ver_v0_10,
    792          1.1     skrll    cris_move_mem_to_reg_movem_op},
    793          1.1     skrll 
    794          1.1     skrll   {"moveq",   0x0240, 0x0D80,		  "i,R",     0, SIZE_NONE,     0,
    795          1.1     skrll    cris_quick_mode_and_cmp_move_or_op},
    796          1.1     skrll 
    797          1.1     skrll   {"movs",    0x0460, 0x0B80,		  "z r,R",   0, SIZE_NONE,     0,
    798          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
    799          1.1     skrll 
    800          1.1     skrll   /* FIXME: SIZE_FIELD_SIGNED and all necessary changes.  */
    801          1.1     skrll   {"movs",    0x0860, 0x0380,		  "z s,R",   0, SIZE_FIELD,    0,
    802          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    803          1.1     skrll 
    804          1.1     skrll   {"movs",    0x0860, 0x0380,		  "z S,D",   0, SIZE_NONE,
    805          1.1     skrll    cris_ver_v0_10,
    806          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    807          1.1     skrll 
    808          1.1     skrll   {"movu",    0x0440, 0x0Ba0,		  "z r,R",   0, SIZE_NONE,     0,
    809          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
    810          1.1     skrll 
    811          1.1     skrll   /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes.  */
    812          1.1     skrll   {"movu",    0x0840, 0x03a0,		  "z s,R",   0, SIZE_FIELD,    0,
    813          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    814          1.1     skrll 
    815          1.1     skrll   {"movu",    0x0840, 0x03a0,		  "z S,D",   0, SIZE_NONE,
    816          1.1     skrll    cris_ver_v0_10,
    817          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    818          1.1     skrll 
    819          1.1     skrll   {"mstep",   0x07f0, 0x0800,		  "r,R",     0, SIZE_NONE,
    820          1.1     skrll    cris_ver_v0_10,
    821          1.1     skrll    cris_dstep_logshift_mstep_neg_not_op},
    822          1.1     skrll 
    823          1.1     skrll   {"muls",    0x0d00, 0x02c0,		  "m r,R",   0, SIZE_NONE,
    824          1.1     skrll    cris_ver_v10p,
    825          1.1     skrll    cris_muls_op},
    826          1.1     skrll 
    827          1.1     skrll   {"mulu",    0x0900, 0x06c0,		  "m r,R",   0, SIZE_NONE,
    828          1.1     skrll    cris_ver_v10p,
    829          1.1     skrll    cris_mulu_op},
    830          1.1     skrll 
    831          1.1     skrll   {"neg",     0x0580, 0x0A40,		  "m r,R",   0, SIZE_NONE,     0,
    832          1.1     skrll    cris_dstep_logshift_mstep_neg_not_op},
    833          1.1     skrll 
    834          1.1     skrll   {"nop",     NOP_OPCODE, NOP_Z_BITS,	  "",	     0, SIZE_NONE,
    835          1.1     skrll    cris_ver_v0_10,
    836          1.1     skrll    cris_btst_nop_op},
    837          1.1     skrll 
    838          1.1     skrll   {"nop",     NOP_OPCODE_V32, NOP_Z_BITS_V32, "",    0, SIZE_NONE,
    839          1.1     skrll    cris_ver_v32p,
    840          1.1     skrll    cris_btst_nop_op},
    841          1.1     skrll 
    842          1.1     skrll   {"not",     0x8770, 0x7880,		  "r",	     0, SIZE_NONE,     0,
    843          1.1     skrll    cris_dstep_logshift_mstep_neg_not_op},
    844          1.1     skrll 
    845          1.1     skrll   {"or",      0x0740, 0x0880,		  "m r,R",   0, SIZE_NONE,     0,
    846          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
    847          1.1     skrll 
    848          1.1     skrll   {"or",      0x0B40, 0x0080,		  "m s,R",   0, SIZE_FIELD,    0,
    849          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    850          1.1     skrll 
    851          1.1     skrll   {"or",      0x0B40, 0x0080,		  "m S,D",   0, SIZE_NONE,
    852          1.1     skrll    cris_ver_v0_10,
    853          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    854          1.1     skrll 
    855          1.1     skrll   {"or",      0x0B40, 0x0480,		  "m S,R,r", 0, SIZE_NONE,
    856          1.1     skrll    cris_ver_v0_10,
    857          1.1     skrll    cris_three_operand_add_sub_cmp_and_or_op},
    858          1.1     skrll 
    859          1.1     skrll   {"orq",     0x0340, 0x0C80,		  "i,R",     0, SIZE_NONE,     0,
    860          1.1     skrll    cris_quick_mode_and_cmp_move_or_op},
    861          1.1     skrll 
    862          1.1     skrll   {"pop",     0x0E6E, 0x0191,		  "!R",	     0, SIZE_NONE,
    863          1.1     skrll    cris_ver_v0_10,
    864          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    865          1.1     skrll 
    866          1.1     skrll   {"pop",     0x0e3e, 0x01c1,		  "!P",	     0, SIZE_NONE,
    867          1.1     skrll    cris_ver_v0_10,
    868          1.1     skrll    cris_none_reg_mode_move_from_preg_op},
    869          1.1     skrll 
    870          1.1     skrll   {"push",    0x0FEE, 0x0011,		  "BR",	     0, SIZE_NONE,
    871          1.1     skrll    cris_ver_v0_10,
    872          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
    873          1.1     skrll 
    874          1.1     skrll   {"push",    0x0E7E, 0x0181,		  "BP",	     0, SIZE_NONE,
    875          1.1     skrll    cris_ver_v0_10,
    876          1.1     skrll    cris_move_to_preg_op},
    877          1.1     skrll 
    878          1.1     skrll   {"rbf",     0x3b30, 0xc0c0,		  "y",	     0, SIZE_NONE,
    879          1.1     skrll    cris_ver_v10,
    880          1.1     skrll    cris_not_implemented_op},
    881          1.1     skrll 
    882          1.1     skrll   {"rbf",     0x3b30, 0xc0c0,		  "S",	     0, SIZE_NONE,
    883          1.1     skrll    cris_ver_v10,
    884          1.1     skrll    cris_not_implemented_op},
    885          1.1     skrll 
    886          1.1     skrll   {"rfe",     0x2930, 0xD6CF,		  "",	     0, SIZE_NONE,
    887          1.1     skrll    cris_ver_v32p,
    888          1.1     skrll    cris_not_implemented_op},
    889          1.1     skrll 
    890          1.1     skrll   {"rfg",     0x4930, 0xB6CF,		  "",	     0, SIZE_NONE,
    891          1.1     skrll    cris_ver_v32p,
    892          1.1     skrll    cris_not_implemented_op},
    893          1.1     skrll 
    894          1.1     skrll   {"rfn",     0x5930, 0xA6CF,		  "",	     0, SIZE_NONE,
    895          1.1     skrll    cris_ver_v32p,
    896          1.1     skrll    cris_not_implemented_op},
    897          1.1     skrll 
    898          1.1     skrll   {"ret",     0xB67F, 0x4980,		  "",	     1, SIZE_NONE,
    899          1.1     skrll    cris_ver_v0_10,
    900          1.1     skrll    cris_reg_mode_move_from_preg_op},
    901          1.1     skrll 
    902          1.1     skrll   {"ret",     0xB9F0, 0x460F,		  "",	     1, SIZE_NONE,
    903          1.1     skrll    cris_ver_v32p,
    904          1.1     skrll    cris_reg_mode_move_from_preg_op},
    905          1.1     skrll 
    906          1.1     skrll   {"retb",    0xe67f, 0x1980,		  "",	     1, SIZE_NONE,
    907          1.1     skrll    cris_ver_v0_10,
    908          1.1     skrll    cris_reg_mode_move_from_preg_op},
    909          1.1     skrll 
    910          1.1     skrll   {"rete",     0xA9F0, 0x560F,		  "",	     1, SIZE_NONE,
    911          1.1     skrll    cris_ver_v32p,
    912          1.1     skrll    cris_reg_mode_move_from_preg_op},
    913          1.1     skrll 
    914          1.1     skrll   {"reti",    0xA67F, 0x5980,		  "",	     1, SIZE_NONE,
    915          1.1     skrll    cris_ver_v0_10,
    916          1.1     skrll    cris_reg_mode_move_from_preg_op},
    917          1.1     skrll 
    918          1.1     skrll   {"retn",     0xC9F0, 0x360F,		  "",	     1, SIZE_NONE,
    919          1.1     skrll    cris_ver_v32p,
    920          1.1     skrll    cris_reg_mode_move_from_preg_op},
    921          1.1     skrll 
    922          1.1     skrll   {"sbfs",    0x3b70, 0xc080,		  "y",	     0, SIZE_NONE,
    923          1.1     skrll    cris_ver_v10,
    924          1.1     skrll    cris_not_implemented_op},
    925          1.1     skrll 
    926          1.1     skrll   {"sbfs",    0x3b70, 0xc080,		  "S",	     0, SIZE_NONE,
    927          1.1     skrll    cris_ver_v10,
    928          1.1     skrll    cris_not_implemented_op},
    929          1.1     skrll 
    930          1.1     skrll   {"sa",
    931          1.1     skrll    0x0530+CC_A*0x1000,
    932          1.1     skrll    0x0AC0+(0xf-CC_A)*0x1000,		  "r",	     0, SIZE_NONE,     0,
    933          1.1     skrll    cris_scc_op},
    934          1.1     skrll 
    935          1.1     skrll   {"ssb",
    936          1.1     skrll    0x0530+CC_EXT*0x1000,
    937          1.1     skrll    0x0AC0+(0xf-CC_EXT)*0x1000,		  "r",	     0, SIZE_NONE,
    938          1.1     skrll    cris_ver_v32p,
    939          1.1     skrll    cris_scc_op},
    940          1.1     skrll 
    941          1.1     skrll   {"scc",
    942          1.1     skrll    0x0530+CC_CC*0x1000,
    943          1.1     skrll    0x0AC0+(0xf-CC_CC)*0x1000,		  "r",	     0, SIZE_NONE,     0,
    944          1.1     skrll    cris_scc_op},
    945          1.1     skrll 
    946          1.1     skrll   {"scs",
    947          1.1     skrll    0x0530+CC_CS*0x1000,
    948          1.1     skrll    0x0AC0+(0xf-CC_CS)*0x1000,		  "r",	     0, SIZE_NONE,     0,
    949          1.1     skrll    cris_scc_op},
    950          1.1     skrll 
    951          1.1     skrll   {"seq",
    952          1.1     skrll    0x0530+CC_EQ*0x1000,
    953          1.1     skrll    0x0AC0+(0xf-CC_EQ)*0x1000,		  "r",	     0, SIZE_NONE,     0,
    954          1.1     skrll    cris_scc_op},
    955          1.1     skrll 
    956          1.1     skrll   {"setf",    0x05b0, 0x0A40,		  "f",	     0, SIZE_NONE,     0,
    957          1.1     skrll    cris_ax_ei_setf_op},
    958          1.1     skrll 
    959          1.1     skrll   {"sfe",    0x3930, 0xC6CF,		  "",	     0, SIZE_NONE,
    960          1.1     skrll    cris_ver_v32p,
    961          1.1     skrll    cris_not_implemented_op},
    962          1.1     skrll 
    963          1.1     skrll   /* Need to have "swf" in front of "sext" so it is the one displayed in
    964          1.1     skrll      disassembly.  */
    965          1.1     skrll   {"swf",
    966          1.1     skrll    0x0530+CC_EXT*0x1000,
    967          1.1     skrll    0x0AC0+(0xf-CC_EXT)*0x1000,		  "r",	     0, SIZE_NONE,
    968          1.1     skrll    cris_ver_v10,
    969          1.1     skrll    cris_scc_op},
    970          1.1     skrll 
    971          1.1     skrll   {"sext",
    972          1.1     skrll    0x0530+CC_EXT*0x1000,
    973          1.1     skrll    0x0AC0+(0xf-CC_EXT)*0x1000,		  "r",	     0, SIZE_NONE,
    974          1.1     skrll    cris_ver_v0_3,
    975          1.1     skrll    cris_scc_op},
    976          1.1     skrll 
    977          1.1     skrll   {"sge",
    978          1.1     skrll    0x0530+CC_GE*0x1000,
    979          1.1     skrll    0x0AC0+(0xf-CC_GE)*0x1000,		  "r",	     0, SIZE_NONE,     0,
    980          1.1     skrll    cris_scc_op},
    981          1.1     skrll 
    982          1.1     skrll   {"sgt",
    983          1.1     skrll    0x0530+CC_GT*0x1000,
    984          1.1     skrll    0x0AC0+(0xf-CC_GT)*0x1000,		  "r",	     0, SIZE_NONE,     0,
    985          1.1     skrll    cris_scc_op},
    986          1.1     skrll 
    987          1.1     skrll   {"shi",
    988          1.1     skrll    0x0530+CC_HI*0x1000,
    989          1.1     skrll    0x0AC0+(0xf-CC_HI)*0x1000,		  "r",	     0, SIZE_NONE,     0,
    990          1.1     skrll    cris_scc_op},
    991          1.1     skrll 
    992          1.1     skrll   {"shs",
    993          1.1     skrll    0x0530+CC_HS*0x1000,
    994          1.1     skrll    0x0AC0+(0xf-CC_HS)*0x1000,		  "r",	     0, SIZE_NONE,     0,
    995          1.1     skrll    cris_scc_op},
    996          1.1     skrll 
    997          1.1     skrll   {"sle",
    998          1.1     skrll    0x0530+CC_LE*0x1000,
    999          1.1     skrll    0x0AC0+(0xf-CC_LE)*0x1000,		  "r",	     0, SIZE_NONE,     0,
   1000          1.1     skrll    cris_scc_op},
   1001          1.1     skrll 
   1002          1.1     skrll   {"slo",
   1003          1.1     skrll    0x0530+CC_LO*0x1000,
   1004          1.1     skrll    0x0AC0+(0xf-CC_LO)*0x1000,		  "r",	     0, SIZE_NONE,     0,
   1005          1.1     skrll    cris_scc_op},
   1006          1.1     skrll 
   1007          1.1     skrll   {"sls",
   1008          1.1     skrll    0x0530+CC_LS*0x1000,
   1009          1.1     skrll    0x0AC0+(0xf-CC_LS)*0x1000,		  "r",	     0, SIZE_NONE,     0,
   1010          1.1     skrll    cris_scc_op},
   1011          1.1     skrll 
   1012          1.1     skrll   {"slt",
   1013          1.1     skrll    0x0530+CC_LT*0x1000,
   1014          1.1     skrll    0x0AC0+(0xf-CC_LT)*0x1000,		  "r",	     0, SIZE_NONE,     0,
   1015          1.1     skrll    cris_scc_op},
   1016          1.1     skrll 
   1017          1.1     skrll   {"smi",
   1018          1.1     skrll    0x0530+CC_MI*0x1000,
   1019          1.1     skrll    0x0AC0+(0xf-CC_MI)*0x1000,		  "r",	     0, SIZE_NONE,     0,
   1020          1.1     skrll    cris_scc_op},
   1021          1.1     skrll 
   1022          1.1     skrll   {"sne",
   1023          1.1     skrll    0x0530+CC_NE*0x1000,
   1024          1.1     skrll    0x0AC0+(0xf-CC_NE)*0x1000,		  "r",	     0, SIZE_NONE,     0,
   1025          1.1     skrll    cris_scc_op},
   1026          1.1     skrll 
   1027          1.1     skrll   {"spl",
   1028          1.1     skrll    0x0530+CC_PL*0x1000,
   1029          1.1     skrll    0x0AC0+(0xf-CC_PL)*0x1000,		  "r",	     0, SIZE_NONE,     0,
   1030          1.1     skrll    cris_scc_op},
   1031          1.1     skrll 
   1032          1.1     skrll   {"sub",     0x0680, 0x0940,		  "m r,R",   0, SIZE_NONE,     0,
   1033          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
   1034          1.1     skrll 
   1035          1.1     skrll   {"sub",     0x0a80, 0x0140,		  "m s,R",   0, SIZE_FIELD,    0,
   1036          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
   1037          1.1     skrll 
   1038          1.1     skrll   {"sub",     0x0a80, 0x0140,		  "m S,D",   0, SIZE_NONE,
   1039          1.1     skrll    cris_ver_v0_10,
   1040          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
   1041          1.1     skrll 
   1042          1.1     skrll   {"sub",     0x0a80, 0x0540,		  "m S,R,r", 0, SIZE_NONE,
   1043          1.1     skrll    cris_ver_v0_10,
   1044          1.1     skrll    cris_three_operand_add_sub_cmp_and_or_op},
   1045          1.1     skrll 
   1046          1.1     skrll   {"subq",    0x0280, 0x0d40,		  "I,R",     0, SIZE_NONE,     0,
   1047          1.1     skrll    cris_quick_mode_add_sub_op},
   1048          1.1     skrll 
   1049          1.1     skrll   {"subs",    0x04a0, 0x0b40,		  "z r,R",   0, SIZE_NONE,     0,
   1050          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
   1051          1.1     skrll 
   1052          1.1     skrll   /* FIXME: SIZE_FIELD_SIGNED and all necessary changes.  */
   1053          1.1     skrll   {"subs",    0x08a0, 0x0340,		  "z s,R",   0, SIZE_FIELD,    0,
   1054          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
   1055          1.1     skrll 
   1056          1.1     skrll   {"subs",    0x08a0, 0x0340,		  "z S,D",   0, SIZE_NONE,
   1057          1.1     skrll    cris_ver_v0_10,
   1058          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
   1059          1.1     skrll 
   1060          1.1     skrll   {"subs",    0x08a0, 0x0740,		  "z S,R,r", 0, SIZE_NONE,
   1061          1.1     skrll    cris_ver_v0_10,
   1062          1.1     skrll    cris_three_operand_add_sub_cmp_and_or_op},
   1063          1.1     skrll 
   1064          1.1     skrll   {"subu",    0x0480, 0x0b60,		  "z r,R",   0, SIZE_NONE,     0,
   1065          1.1     skrll    cris_reg_mode_add_sub_cmp_and_or_move_op},
   1066          1.1     skrll 
   1067          1.1     skrll   /* FIXME: SIZE_FIELD_UNSIGNED and all necessary changes.  */
   1068          1.1     skrll   {"subu",    0x0880, 0x0360,		  "z s,R",   0, SIZE_FIELD,    0,
   1069          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
   1070          1.1     skrll 
   1071          1.1     skrll   {"subu",    0x0880, 0x0360,		  "z S,D",   0, SIZE_NONE,
   1072          1.1     skrll    cris_ver_v0_10,
   1073          1.1     skrll    cris_none_reg_mode_add_sub_cmp_and_or_move_op},
   1074          1.1     skrll 
   1075          1.1     skrll   {"subu",    0x0880, 0x0760,		  "z S,R,r", 0, SIZE_NONE,
   1076          1.1     skrll    cris_ver_v0_10,
   1077          1.1     skrll    cris_three_operand_add_sub_cmp_and_or_op},
   1078          1.1     skrll 
   1079          1.1     skrll   {"svc",
   1080          1.1     skrll    0x0530+CC_VC*0x1000,
   1081          1.1     skrll    0x0AC0+(0xf-CC_VC)*0x1000,		  "r",	     0, SIZE_NONE,     0,
   1082          1.1     skrll    cris_scc_op},
   1083          1.1     skrll 
   1084          1.1     skrll   {"svs",
   1085          1.1     skrll    0x0530+CC_VS*0x1000,
   1086          1.1     skrll    0x0AC0+(0xf-CC_VS)*0x1000,		  "r",	     0, SIZE_NONE,     0,
   1087          1.1     skrll    cris_scc_op},
   1088          1.1     skrll 
   1089          1.1     skrll   /* The insn "swapn" is the same as "not" and will be disassembled as
   1090          1.1     skrll      such, but the swap* family of mnmonics are generally v8-and-higher
   1091          1.1     skrll      only, so count it in.  */
   1092          1.1     skrll   {"swapn",   0x8770, 0x7880,		  "r",	     0, SIZE_NONE,
   1093          1.1     skrll    cris_ver_v8p,
   1094          1.1     skrll    cris_not_implemented_op},
   1095          1.1     skrll 
   1096          1.1     skrll   {"swapw",   0x4770, 0xb880,		  "r",	     0, SIZE_NONE,
   1097          1.1     skrll    cris_ver_v8p,
   1098          1.1     skrll    cris_not_implemented_op},
   1099          1.1     skrll 
   1100          1.1     skrll   {"swapnw",  0xc770, 0x3880,		  "r",	     0, SIZE_NONE,
   1101          1.1     skrll    cris_ver_v8p,
   1102          1.1     skrll    cris_not_implemented_op},
   1103          1.1     skrll 
   1104          1.1     skrll   {"swapb",   0x2770, 0xd880,		  "r",	     0, SIZE_NONE,
   1105          1.1     skrll    cris_ver_v8p,
   1106          1.1     skrll    cris_not_implemented_op},
   1107          1.1     skrll 
   1108          1.1     skrll   {"swapnb",  0xA770, 0x5880,		  "r",	     0, SIZE_NONE,
   1109          1.1     skrll    cris_ver_v8p,
   1110          1.1     skrll    cris_not_implemented_op},
   1111          1.1     skrll 
   1112          1.1     skrll   {"swapwb",  0x6770, 0x9880,		  "r",	     0, SIZE_NONE,
   1113          1.1     skrll    cris_ver_v8p,
   1114          1.1     skrll    cris_not_implemented_op},
   1115          1.1     skrll 
   1116          1.1     skrll   {"swapnwb", 0xE770, 0x1880,		  "r",	     0, SIZE_NONE,
   1117          1.1     skrll    cris_ver_v8p,
   1118          1.1     skrll    cris_not_implemented_op},
   1119          1.1     skrll 
   1120          1.1     skrll   {"swapr",   0x1770, 0xe880,		  "r",	     0, SIZE_NONE,
   1121          1.1     skrll    cris_ver_v8p,
   1122          1.1     skrll    cris_not_implemented_op},
   1123          1.1     skrll 
   1124          1.1     skrll   {"swapnr",  0x9770, 0x6880,		  "r",	     0, SIZE_NONE,
   1125          1.1     skrll    cris_ver_v8p,
   1126          1.1     skrll    cris_not_implemented_op},
   1127          1.1     skrll 
   1128          1.1     skrll   {"swapwr",  0x5770, 0xa880,		  "r",	     0, SIZE_NONE,
   1129          1.1     skrll    cris_ver_v8p,
   1130          1.1     skrll    cris_not_implemented_op},
   1131          1.1     skrll 
   1132          1.1     skrll   {"swapnwr", 0xd770, 0x2880,		  "r",	     0, SIZE_NONE,
   1133          1.1     skrll    cris_ver_v8p,
   1134          1.1     skrll    cris_not_implemented_op},
   1135          1.1     skrll 
   1136          1.1     skrll   {"swapbr",  0x3770, 0xc880,		  "r",	     0, SIZE_NONE,
   1137          1.1     skrll    cris_ver_v8p,
   1138          1.1     skrll    cris_not_implemented_op},
   1139          1.1     skrll 
   1140          1.1     skrll   {"swapnbr", 0xb770, 0x4880,		  "r",	     0, SIZE_NONE,
   1141          1.1     skrll    cris_ver_v8p,
   1142          1.1     skrll    cris_not_implemented_op},
   1143          1.1     skrll 
   1144          1.1     skrll   {"swapwbr", 0x7770, 0x8880,		  "r",	     0, SIZE_NONE,
   1145          1.1     skrll    cris_ver_v8p,
   1146          1.1     skrll    cris_not_implemented_op},
   1147          1.1     skrll 
   1148          1.1     skrll   {"swapnwbr", 0xf770, 0x0880,		  "r",	     0, SIZE_NONE,
   1149          1.1     skrll    cris_ver_v8p,
   1150          1.1     skrll    cris_not_implemented_op},
   1151          1.1     skrll 
   1152          1.1     skrll   {"test",    0x0640, 0x0980,		  "m D",     0, SIZE_NONE,
   1153          1.1     skrll    cris_ver_v0_10,
   1154          1.1     skrll    cris_reg_mode_test_op},
   1155          1.1     skrll 
   1156          1.1     skrll   {"test",    0x0b80, 0xf040,		  "m y",     0, SIZE_FIELD,    0,
   1157          1.1     skrll    cris_none_reg_mode_clear_test_op},
   1158          1.1     skrll 
   1159          1.1     skrll   {"test",    0x0b80, 0xf040,		  "m S",     0, SIZE_NONE,
   1160          1.1     skrll    cris_ver_v0_10,
   1161          1.1     skrll    cris_none_reg_mode_clear_test_op},
   1162          1.1     skrll 
   1163          1.1     skrll   {"xor",     0x07B0, 0x0840,		  "r,R",     0, SIZE_NONE,     0,
   1164          1.1     skrll    cris_xor_op},
   1165          1.1     skrll 
   1166          1.1     skrll   {NULL, 0, 0, NULL, 0, 0, 0, cris_not_implemented_op}
   1167          1.1     skrll };
   1168          1.1     skrll 
   1169          1.1     skrll /* Condition-names, indexed by the CC_* numbers as found in cris.h. */
   1170          1.1     skrll const char * const
   1171          1.1     skrll cris_cc_strings[] =
   1172          1.1     skrll {
   1173          1.1     skrll   "hs",
   1174          1.1     skrll   "lo",
   1175          1.1     skrll   "ne",
   1176          1.1     skrll   "eq",
   1177          1.1     skrll   "vc",
   1178          1.1     skrll   "vs",
   1179          1.1     skrll   "pl",
   1180          1.1     skrll   "mi",
   1181          1.1     skrll   "ls",
   1182          1.1     skrll   "hi",
   1183          1.1     skrll   "ge",
   1184          1.1     skrll   "lt",
   1185          1.1     skrll   "gt",
   1186          1.1     skrll   "le",
   1187          1.1     skrll   "a",
   1188          1.1     skrll   /* This is a placeholder.  In v0, this would be "ext".  In v32, this
   1189          1.1     skrll      is "sb".  See cris_conds15.  */
   1190          1.1     skrll   "wf"
   1191          1.1     skrll };
   1192          1.1     skrll 
   1193          1.1     skrll /* Different names and semantics for condition 1111 (0xf).  */
   1194          1.1     skrll const struct cris_cond15 cris_cond15s[] =
   1195          1.1     skrll {
   1196          1.1     skrll   /* FIXME: In what version did condition "ext" disappear?  */
   1197          1.1     skrll   {"ext", cris_ver_v0_3},
   1198          1.1     skrll   {"wf", cris_ver_v10},
   1199          1.1     skrll   {"sb", cris_ver_v32p},
   1200          1.1     skrll   {NULL, 0}
   1201          1.1     skrll };
   1202          1.1     skrll 
   1203          1.1     skrll 
   1204          1.1     skrll /*
   1205          1.1     skrll  * Local variables:
   1206          1.1     skrll  * eval: (c-set-style "gnu")
   1207          1.1     skrll  * indent-tabs-mode: t
   1208          1.1     skrll  * End:
   1209          1.1     skrll  */
   1210