Home | History | Annotate | Line # | Download | only in opcodes
iq2000-opc.c revision 1.11
      1 /* DO NOT EDIT!  -*- buffer-read-only: t -*- vi:set ro:  */
      2 /* Instruction opcode table for iq2000.
      3 
      4 THIS FILE IS MACHINE GENERATED WITH CGEN.
      5 
      6 Copyright (C) 1996-2024 Free Software Foundation, Inc.
      7 
      8 This file is part of the GNU Binutils and/or GDB, the GNU debugger.
      9 
     10    This file is free software; you can redistribute it and/or modify
     11    it under the terms of the GNU General Public License as published by
     12    the Free Software Foundation; either version 3, or (at your option)
     13    any later version.
     14 
     15    It is distributed in the hope that it will be useful, but WITHOUT
     16    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     17    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     18    License for more details.
     19 
     20    You should have received a copy of the GNU General Public License along
     21    with this program; if not, write to the Free Software Foundation, Inc.,
     22    51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
     23 
     24 */
     25 
     26 #include "sysdep.h"
     27 #include "ansidecl.h"
     28 #include "bfd.h"
     29 #include "symcat.h"
     30 #include "iq2000-desc.h"
     31 #include "iq2000-opc.h"
     32 #include "libiberty.h"
     33 
     34 /* The hash functions are recorded here to help keep assembler code out of
     35    the disassembler and vice versa.  */
     36 
     37 static int asm_hash_insn_p        (const CGEN_INSN *);
     38 static unsigned int asm_hash_insn (const char *);
     39 static int dis_hash_insn_p        (const CGEN_INSN *);
     40 static unsigned int dis_hash_insn (const char *, CGEN_INSN_INT);
     41 
     42 /* Instruction formats.  */
     43 
     44 #define F(f) & iq2000_cgen_ifld_table[IQ2000_##f]
     45 static const CGEN_IFMT ifmt_empty ATTRIBUTE_UNUSED = {
     46   0, 0, 0x0, { { 0 } }
     47 };
     48 
     49 static const CGEN_IFMT ifmt_add2 ATTRIBUTE_UNUSED = {
     50   32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RT) }, { F (F_RD_RS) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
     51 };
     52 
     53 static const CGEN_IFMT ifmt_add ATTRIBUTE_UNUSED = {
     54   32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
     55 };
     56 
     57 static const CGEN_IFMT ifmt_addi2 ATTRIBUTE_UNUSED = {
     58   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RT_RS) }, { F (F_IMM) }, { 0 } }
     59 };
     60 
     61 static const CGEN_IFMT ifmt_addi ATTRIBUTE_UNUSED = {
     62   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
     63 };
     64 
     65 static const CGEN_IFMT ifmt_ram ATTRIBUTE_UNUSED = {
     66   32, 32, 0xfc000020, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_5) }, { F (F_MASKL) }, { 0 } }
     67 };
     68 
     69 static const CGEN_IFMT ifmt_sll ATTRIBUTE_UNUSED = {
     70   32, 32, 0xffe0003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
     71 };
     72 
     73 static const CGEN_IFMT ifmt_sllv2 ATTRIBUTE_UNUSED = {
     74   32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RD_RT) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
     75 };
     76 
     77 static const CGEN_IFMT ifmt_slmv2 ATTRIBUTE_UNUSED = {
     78   32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RD_RT) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
     79 };
     80 
     81 static const CGEN_IFMT ifmt_slmv ATTRIBUTE_UNUSED = {
     82   32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
     83 };
     84 
     85 static const CGEN_IFMT ifmt_slti2 ATTRIBUTE_UNUSED = {
     86   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RT_RS) }, { F (F_IMM) }, { 0 } }
     87 };
     88 
     89 static const CGEN_IFMT ifmt_slti ATTRIBUTE_UNUSED = {
     90   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
     91 };
     92 
     93 static const CGEN_IFMT ifmt_sra2 ATTRIBUTE_UNUSED = {
     94   32, 32, 0xffe0003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RD_RT) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
     95 };
     96 
     97 static const CGEN_IFMT ifmt_bbi ATTRIBUTE_UNUSED = {
     98   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } }
     99 };
    100 
    101 static const CGEN_IFMT ifmt_bbv ATTRIBUTE_UNUSED = {
    102   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } }
    103 };
    104 
    105 static const CGEN_IFMT ifmt_bgez ATTRIBUTE_UNUSED = {
    106   32, 32, 0xfc1f0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } }
    107 };
    108 
    109 static const CGEN_IFMT ifmt_jalr ATTRIBUTE_UNUSED = {
    110   32, 32, 0xfc1f07ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
    111 };
    112 
    113 static const CGEN_IFMT ifmt_jr ATTRIBUTE_UNUSED = {
    114   32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
    115 };
    116 
    117 static const CGEN_IFMT ifmt_lb ATTRIBUTE_UNUSED = {
    118   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
    119 };
    120 
    121 static const CGEN_IFMT ifmt_lui ATTRIBUTE_UNUSED = {
    122   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
    123 };
    124 
    125 static const CGEN_IFMT ifmt_break ATTRIBUTE_UNUSED = {
    126   32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
    127 };
    128 
    129 static const CGEN_IFMT ifmt_syscall ATTRIBUTE_UNUSED = {
    130   32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_EXCODE) }, { F (F_FUNC) }, { 0 } }
    131 };
    132 
    133 static const CGEN_IFMT ifmt_andoui ATTRIBUTE_UNUSED = {
    134   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
    135 };
    136 
    137 static const CGEN_IFMT ifmt_andoui2 ATTRIBUTE_UNUSED = {
    138   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RT_RS) }, { F (F_IMM) }, { 0 } }
    139 };
    140 
    141 static const CGEN_IFMT ifmt_mrgb ATTRIBUTE_UNUSED = {
    142   32, 32, 0xfc00043f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_10) }, { F (F_MASK) }, { F (F_FUNC) }, { 0 } }
    143 };
    144 
    145 static const CGEN_IFMT ifmt_mrgb2 ATTRIBUTE_UNUSED = {
    146   32, 32, 0xfc00043f, { { F (F_OPCODE) }, { F (F_RT) }, { F (F_RD_RS) }, { F (F_10) }, { F (F_MASK) }, { F (F_FUNC) }, { 0 } }
    147 };
    148 
    149 static const CGEN_IFMT ifmt_bc0f ATTRIBUTE_UNUSED = {
    150   32, 32, 0xffff0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_OFFSET) }, { 0 } }
    151 };
    152 
    153 static const CGEN_IFMT ifmt_cfc0 ATTRIBUTE_UNUSED = {
    154   32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_10_11) }, { 0 } }
    155 };
    156 
    157 static const CGEN_IFMT ifmt_chkhdr ATTRIBUTE_UNUSED = {
    158   32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
    159 };
    160 
    161 static const CGEN_IFMT ifmt_lulck ATTRIBUTE_UNUSED = {
    162   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
    163 };
    164 
    165 static const CGEN_IFMT ifmt_pkrlr1 ATTRIBUTE_UNUSED = {
    166   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_COUNT) }, { F (F_INDEX) }, { 0 } }
    167 };
    168 
    169 static const CGEN_IFMT ifmt_rfe ATTRIBUTE_UNUSED = {
    170   32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_25) }, { F (F_24_19) }, { F (F_FUNC) }, { 0 } }
    171 };
    172 
    173 static const CGEN_IFMT ifmt_j ATTRIBUTE_UNUSED = {
    174   32, 32, 0xffff0000, { { F (F_OPCODE) }, { F (F_RSRVD) }, { F (F_JTARG) }, { 0 } }
    175 };
    176 
    177 static const CGEN_IFMT ifmt_mrgbq10 ATTRIBUTE_UNUSED = {
    178   32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_MASKQ10) }, { F (F_FUNC) }, { 0 } }
    179 };
    180 
    181 static const CGEN_IFMT ifmt_mrgbq102 ATTRIBUTE_UNUSED = {
    182   32, 32, 0xfc00003f, { { F (F_OPCODE) }, { F (F_RT) }, { F (F_RD_RS) }, { F (F_MASKQ10) }, { F (F_FUNC) }, { 0 } }
    183 };
    184 
    185 static const CGEN_IFMT ifmt_jq10 ATTRIBUTE_UNUSED = {
    186   32, 32, 0xffff0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_JTARG) }, { 0 } }
    187 };
    188 
    189 static const CGEN_IFMT ifmt_jalq10 ATTRIBUTE_UNUSED = {
    190   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_JTARG) }, { 0 } }
    191 };
    192 
    193 static const CGEN_IFMT ifmt_avail ATTRIBUTE_UNUSED = {
    194   32, 32, 0xffff07ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
    195 };
    196 
    197 static const CGEN_IFMT ifmt_rbi ATTRIBUTE_UNUSED = {
    198   32, 32, 0xfc000700, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
    199 };
    200 
    201 static const CGEN_IFMT ifmt_cam36 ATTRIBUTE_UNUSED = {
    202   32, 32, 0xffe007c0, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } }
    203 };
    204 
    205 static const CGEN_IFMT ifmt_cm32and ATTRIBUTE_UNUSED = {
    206   32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
    207 };
    208 
    209 static const CGEN_IFMT ifmt_cm32rd ATTRIBUTE_UNUSED = {
    210   32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
    211 };
    212 
    213 static const CGEN_IFMT ifmt_cm128ria3 ATTRIBUTE_UNUSED = {
    214   32, 32, 0xfc0007fc, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_4FUNC) }, { F (F_CM_3Z) }, { 0 } }
    215 };
    216 
    217 static const CGEN_IFMT ifmt_cm128ria4 ATTRIBUTE_UNUSED = {
    218   32, 32, 0xfc0007f8, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_3FUNC) }, { F (F_CM_4Z) }, { 0 } }
    219 };
    220 
    221 static const CGEN_IFMT ifmt_ctc ATTRIBUTE_UNUSED = {
    222   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
    223 };
    224 
    225 #undef F
    226 
    227 #define A(a) (1 << CGEN_INSN_##a)
    228 #define OPERAND(op) IQ2000_OPERAND_##op
    229 #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
    230 #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
    231 
    232 /* The instruction table.  */
    233 
    234 static const CGEN_OPCODE iq2000_cgen_insn_opcode_table[MAX_INSNS] =
    235 {
    236   /* Special null first entry.
    237      A `num' value of zero is thus invalid.
    238      Also, the special `invalid' insn resides here.  */
    239   { { 0, 0, 0, 0 }, {{0}}, 0, {0}},
    240 /* add ${rd-rs},$rt */
    241   {
    242     { 0, 0, 0, 0 },
    243     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    244     & ifmt_add2, { 0x20 }
    245   },
    246 /* add $rd,$rs,$rt */
    247   {
    248     { 0, 0, 0, 0 },
    249     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    250     & ifmt_add, { 0x20 }
    251   },
    252 /* addi ${rt-rs},$lo16 */
    253   {
    254     { 0, 0, 0, 0 },
    255     { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
    256     & ifmt_addi2, { 0x20000000 }
    257   },
    258 /* addi $rt,$rs,$lo16 */
    259   {
    260     { 0, 0, 0, 0 },
    261     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
    262     & ifmt_addi, { 0x20000000 }
    263   },
    264 /* addiu ${rt-rs},$lo16 */
    265   {
    266     { 0, 0, 0, 0 },
    267     { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
    268     & ifmt_addi2, { 0x24000000 }
    269   },
    270 /* addiu $rt,$rs,$lo16 */
    271   {
    272     { 0, 0, 0, 0 },
    273     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
    274     & ifmt_addi, { 0x24000000 }
    275   },
    276 /* addu ${rd-rs},$rt */
    277   {
    278     { 0, 0, 0, 0 },
    279     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    280     & ifmt_add2, { 0x21 }
    281   },
    282 /* addu $rd,$rs,$rt */
    283   {
    284     { 0, 0, 0, 0 },
    285     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    286     & ifmt_add, { 0x21 }
    287   },
    288 /* ado16 ${rd-rs},$rt */
    289   {
    290     { 0, 0, 0, 0 },
    291     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    292     & ifmt_add2, { 0x29 }
    293   },
    294 /* ado16 $rd,$rs,$rt */
    295   {
    296     { 0, 0, 0, 0 },
    297     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    298     & ifmt_add, { 0x29 }
    299   },
    300 /* and ${rd-rs},$rt */
    301   {
    302     { 0, 0, 0, 0 },
    303     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    304     & ifmt_add2, { 0x24 }
    305   },
    306 /* and $rd,$rs,$rt */
    307   {
    308     { 0, 0, 0, 0 },
    309     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    310     & ifmt_add, { 0x24 }
    311   },
    312 /* andi ${rt-rs},$lo16 */
    313   {
    314     { 0, 0, 0, 0 },
    315     { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
    316     & ifmt_addi2, { 0x30000000 }
    317   },
    318 /* andi $rt,$rs,$lo16 */
    319   {
    320     { 0, 0, 0, 0 },
    321     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
    322     & ifmt_addi, { 0x30000000 }
    323   },
    324 /* andoi ${rt-rs},$lo16 */
    325   {
    326     { 0, 0, 0, 0 },
    327     { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
    328     & ifmt_addi2, { 0xb0000000 }
    329   },
    330 /* andoi $rt,$rs,$lo16 */
    331   {
    332     { 0, 0, 0, 0 },
    333     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
    334     & ifmt_addi, { 0xb0000000 }
    335   },
    336 /* nor ${rd-rs},$rt */
    337   {
    338     { 0, 0, 0, 0 },
    339     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    340     & ifmt_add2, { 0x27 }
    341   },
    342 /* nor $rd,$rs,$rt */
    343   {
    344     { 0, 0, 0, 0 },
    345     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    346     & ifmt_add, { 0x27 }
    347   },
    348 /* or ${rd-rs},$rt */
    349   {
    350     { 0, 0, 0, 0 },
    351     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    352     & ifmt_add2, { 0x25 }
    353   },
    354 /* or $rd,$rs,$rt */
    355   {
    356     { 0, 0, 0, 0 },
    357     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    358     & ifmt_add, { 0x25 }
    359   },
    360 /* ori ${rt-rs},$lo16 */
    361   {
    362     { 0, 0, 0, 0 },
    363     { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
    364     & ifmt_addi2, { 0x34000000 }
    365   },
    366 /* ori $rt,$rs,$lo16 */
    367   {
    368     { 0, 0, 0, 0 },
    369     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
    370     & ifmt_addi, { 0x34000000 }
    371   },
    372 /* ram $rd,$rt,$shamt,$maskl,$maskr */
    373   {
    374     { 0, 0, 0, 0 },
    375     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), ',', OP (MASKL), ',', OP (MASKR), 0 } },
    376     & ifmt_ram, { 0x9c000000 }
    377   },
    378 /* sll $rd,$rt,$shamt */
    379   {
    380     { 0, 0, 0, 0 },
    381     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), 0 } },
    382     & ifmt_sll, { 0x0 }
    383   },
    384 /* sllv ${rd-rt},$rs */
    385   {
    386     { 0, 0, 0, 0 },
    387     { { MNEM, ' ', OP (RD_RT), ',', OP (RS), 0 } },
    388     & ifmt_sllv2, { 0x4 }
    389   },
    390 /* sllv $rd,$rt,$rs */
    391   {
    392     { 0, 0, 0, 0 },
    393     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
    394     & ifmt_add, { 0x4 }
    395   },
    396 /* slmv ${rd-rt},$rs,$shamt */
    397   {
    398     { 0, 0, 0, 0 },
    399     { { MNEM, ' ', OP (RD_RT), ',', OP (RS), ',', OP (SHAMT), 0 } },
    400     & ifmt_slmv2, { 0x1 }
    401   },
    402 /* slmv $rd,$rt,$rs,$shamt */
    403   {
    404     { 0, 0, 0, 0 },
    405     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), ',', OP (SHAMT), 0 } },
    406     & ifmt_slmv, { 0x1 }
    407   },
    408 /* slt ${rd-rs},$rt */
    409   {
    410     { 0, 0, 0, 0 },
    411     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    412     & ifmt_add2, { 0x2a }
    413   },
    414 /* slt $rd,$rs,$rt */
    415   {
    416     { 0, 0, 0, 0 },
    417     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    418     & ifmt_add, { 0x2a }
    419   },
    420 /* slti ${rt-rs},$imm */
    421   {
    422     { 0, 0, 0, 0 },
    423     { { MNEM, ' ', OP (RT_RS), ',', OP (IMM), 0 } },
    424     & ifmt_slti2, { 0x28000000 }
    425   },
    426 /* slti $rt,$rs,$imm */
    427   {
    428     { 0, 0, 0, 0 },
    429     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (IMM), 0 } },
    430     & ifmt_slti, { 0x28000000 }
    431   },
    432 /* sltiu ${rt-rs},$imm */
    433   {
    434     { 0, 0, 0, 0 },
    435     { { MNEM, ' ', OP (RT_RS), ',', OP (IMM), 0 } },
    436     & ifmt_slti2, { 0x2c000000 }
    437   },
    438 /* sltiu $rt,$rs,$imm */
    439   {
    440     { 0, 0, 0, 0 },
    441     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (IMM), 0 } },
    442     & ifmt_slti, { 0x2c000000 }
    443   },
    444 /* sltu ${rd-rs},$rt */
    445   {
    446     { 0, 0, 0, 0 },
    447     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    448     & ifmt_add2, { 0x2b }
    449   },
    450 /* sltu $rd,$rs,$rt */
    451   {
    452     { 0, 0, 0, 0 },
    453     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    454     & ifmt_add, { 0x2b }
    455   },
    456 /* sra ${rd-rt},$shamt */
    457   {
    458     { 0, 0, 0, 0 },
    459     { { MNEM, ' ', OP (RD_RT), ',', OP (SHAMT), 0 } },
    460     & ifmt_sra2, { 0x3 }
    461   },
    462 /* sra $rd,$rt,$shamt */
    463   {
    464     { 0, 0, 0, 0 },
    465     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), 0 } },
    466     & ifmt_sll, { 0x3 }
    467   },
    468 /* srav ${rd-rt},$rs */
    469   {
    470     { 0, 0, 0, 0 },
    471     { { MNEM, ' ', OP (RD_RT), ',', OP (RS), 0 } },
    472     & ifmt_sllv2, { 0x7 }
    473   },
    474 /* srav $rd,$rt,$rs */
    475   {
    476     { 0, 0, 0, 0 },
    477     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
    478     & ifmt_add, { 0x7 }
    479   },
    480 /* srl $rd,$rt,$shamt */
    481   {
    482     { 0, 0, 0, 0 },
    483     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (SHAMT), 0 } },
    484     & ifmt_sll, { 0x2 }
    485   },
    486 /* srlv ${rd-rt},$rs */
    487   {
    488     { 0, 0, 0, 0 },
    489     { { MNEM, ' ', OP (RD_RT), ',', OP (RS), 0 } },
    490     & ifmt_sllv2, { 0x6 }
    491   },
    492 /* srlv $rd,$rt,$rs */
    493   {
    494     { 0, 0, 0, 0 },
    495     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
    496     & ifmt_add, { 0x6 }
    497   },
    498 /* srmv ${rd-rt},$rs,$shamt */
    499   {
    500     { 0, 0, 0, 0 },
    501     { { MNEM, ' ', OP (RD_RT), ',', OP (RS), ',', OP (SHAMT), 0 } },
    502     & ifmt_slmv2, { 0x5 }
    503   },
    504 /* srmv $rd,$rt,$rs,$shamt */
    505   {
    506     { 0, 0, 0, 0 },
    507     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), ',', OP (SHAMT), 0 } },
    508     & ifmt_slmv, { 0x5 }
    509   },
    510 /* sub ${rd-rs},$rt */
    511   {
    512     { 0, 0, 0, 0 },
    513     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    514     & ifmt_add2, { 0x22 }
    515   },
    516 /* sub $rd,$rs,$rt */
    517   {
    518     { 0, 0, 0, 0 },
    519     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    520     & ifmt_add, { 0x22 }
    521   },
    522 /* subu ${rd-rs},$rt */
    523   {
    524     { 0, 0, 0, 0 },
    525     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    526     & ifmt_add2, { 0x23 }
    527   },
    528 /* subu $rd,$rs,$rt */
    529   {
    530     { 0, 0, 0, 0 },
    531     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    532     & ifmt_add, { 0x23 }
    533   },
    534 /* xor ${rd-rs},$rt */
    535   {
    536     { 0, 0, 0, 0 },
    537     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), 0 } },
    538     & ifmt_add2, { 0x26 }
    539   },
    540 /* xor $rd,$rs,$rt */
    541   {
    542     { 0, 0, 0, 0 },
    543     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
    544     & ifmt_add, { 0x26 }
    545   },
    546 /* xori ${rt-rs},$lo16 */
    547   {
    548     { 0, 0, 0, 0 },
    549     { { MNEM, ' ', OP (RT_RS), ',', OP (LO16), 0 } },
    550     & ifmt_addi2, { 0x38000000 }
    551   },
    552 /* xori $rt,$rs,$lo16 */
    553   {
    554     { 0, 0, 0, 0 },
    555     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
    556     & ifmt_addi, { 0x38000000 }
    557   },
    558 /* bbi $rs($bitnum),$offset */
    559   {
    560     { 0, 0, 0, 0 },
    561     { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } },
    562     & ifmt_bbi, { 0x70000000 }
    563   },
    564 /* bbin $rs($bitnum),$offset */
    565   {
    566     { 0, 0, 0, 0 },
    567     { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } },
    568     & ifmt_bbi, { 0x78000000 }
    569   },
    570 /* bbv $rs,$rt,$offset */
    571   {
    572     { 0, 0, 0, 0 },
    573     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
    574     & ifmt_bbv, { 0x74000000 }
    575   },
    576 /* bbvn $rs,$rt,$offset */
    577   {
    578     { 0, 0, 0, 0 },
    579     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
    580     & ifmt_bbv, { 0x7c000000 }
    581   },
    582 /* beq $rs,$rt,$offset */
    583   {
    584     { 0, 0, 0, 0 },
    585     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
    586     & ifmt_bbv, { 0x10000000 }
    587   },
    588 /* beql $rs,$rt,$offset */
    589   {
    590     { 0, 0, 0, 0 },
    591     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
    592     & ifmt_bbv, { 0x50000000 }
    593   },
    594 /* bgez $rs,$offset */
    595   {
    596     { 0, 0, 0, 0 },
    597     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    598     & ifmt_bgez, { 0x4010000 }
    599   },
    600 /* bgezal $rs,$offset */
    601   {
    602     { 0, 0, 0, 0 },
    603     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    604     & ifmt_bgez, { 0x4110000 }
    605   },
    606 /* bgezall $rs,$offset */
    607   {
    608     { 0, 0, 0, 0 },
    609     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    610     & ifmt_bgez, { 0x4130000 }
    611   },
    612 /* bgezl $rs,$offset */
    613   {
    614     { 0, 0, 0, 0 },
    615     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    616     & ifmt_bgez, { 0x4030000 }
    617   },
    618 /* bltz $rs,$offset */
    619   {
    620     { 0, 0, 0, 0 },
    621     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    622     & ifmt_bgez, { 0x4000000 }
    623   },
    624 /* bltzl $rs,$offset */
    625   {
    626     { 0, 0, 0, 0 },
    627     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    628     & ifmt_bgez, { 0x4020000 }
    629   },
    630 /* bltzal $rs,$offset */
    631   {
    632     { 0, 0, 0, 0 },
    633     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    634     & ifmt_bgez, { 0x4100000 }
    635   },
    636 /* bltzall $rs,$offset */
    637   {
    638     { 0, 0, 0, 0 },
    639     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    640     & ifmt_bgez, { 0x4120000 }
    641   },
    642 /* bmb0 $rs,$rt,$offset */
    643   {
    644     { 0, 0, 0, 0 },
    645     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
    646     & ifmt_bbv, { 0x60000000 }
    647   },
    648 /* bmb1 $rs,$rt,$offset */
    649   {
    650     { 0, 0, 0, 0 },
    651     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
    652     & ifmt_bbv, { 0x64000000 }
    653   },
    654 /* bmb2 $rs,$rt,$offset */
    655   {
    656     { 0, 0, 0, 0 },
    657     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
    658     & ifmt_bbv, { 0x68000000 }
    659   },
    660 /* bmb3 $rs,$rt,$offset */
    661   {
    662     { 0, 0, 0, 0 },
    663     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
    664     & ifmt_bbv, { 0x6c000000 }
    665   },
    666 /* bne $rs,$rt,$offset */
    667   {
    668     { 0, 0, 0, 0 },
    669     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
    670     & ifmt_bbv, { 0x14000000 }
    671   },
    672 /* bnel $rs,$rt,$offset */
    673   {
    674     { 0, 0, 0, 0 },
    675     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
    676     & ifmt_bbv, { 0x54000000 }
    677   },
    678 /* jalr $rd,$rs */
    679   {
    680     { 0, 0, 0, 0 },
    681     { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
    682     & ifmt_jalr, { 0x9 }
    683   },
    684 /* jr $rs */
    685   {
    686     { 0, 0, 0, 0 },
    687     { { MNEM, ' ', OP (RS), 0 } },
    688     & ifmt_jr, { 0x8 }
    689   },
    690 /* lb $rt,$lo16($base) */
    691   {
    692     { 0, 0, 0, 0 },
    693     { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
    694     & ifmt_lb, { 0x80000000 }
    695   },
    696 /* lbu $rt,$lo16($base) */
    697   {
    698     { 0, 0, 0, 0 },
    699     { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
    700     & ifmt_lb, { 0x90000000 }
    701   },
    702 /* lh $rt,$lo16($base) */
    703   {
    704     { 0, 0, 0, 0 },
    705     { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
    706     & ifmt_lb, { 0x84000000 }
    707   },
    708 /* lhu $rt,$lo16($base) */
    709   {
    710     { 0, 0, 0, 0 },
    711     { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
    712     & ifmt_lb, { 0x94000000 }
    713   },
    714 /* lui $rt,$hi16 */
    715   {
    716     { 0, 0, 0, 0 },
    717     { { MNEM, ' ', OP (RT), ',', OP (HI16), 0 } },
    718     & ifmt_lui, { 0x3c000000 }
    719   },
    720 /* lw $rt,$lo16($base) */
    721   {
    722     { 0, 0, 0, 0 },
    723     { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
    724     & ifmt_lb, { 0x8c000000 }
    725   },
    726 /* sb $rt,$lo16($base) */
    727   {
    728     { 0, 0, 0, 0 },
    729     { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
    730     & ifmt_lb, { 0xa0000000 }
    731   },
    732 /* sh $rt,$lo16($base) */
    733   {
    734     { 0, 0, 0, 0 },
    735     { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
    736     & ifmt_lb, { 0xa4000000 }
    737   },
    738 /* sw $rt,$lo16($base) */
    739   {
    740     { 0, 0, 0, 0 },
    741     { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
    742     & ifmt_lb, { 0xac000000 }
    743   },
    744 /* break */
    745   {
    746     { 0, 0, 0, 0 },
    747     { { MNEM, 0 } },
    748     & ifmt_break, { 0xd }
    749   },
    750 /* syscall */
    751   {
    752     { 0, 0, 0, 0 },
    753     { { MNEM, 0 } },
    754     & ifmt_syscall, { 0xc }
    755   },
    756 /* andoui $rt,$rs,$hi16 */
    757   {
    758     { 0, 0, 0, 0 },
    759     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } },
    760     & ifmt_andoui, { 0xfc000000 }
    761   },
    762 /* andoui ${rt-rs},$hi16 */
    763   {
    764     { 0, 0, 0, 0 },
    765     { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } },
    766     & ifmt_andoui2, { 0xfc000000 }
    767   },
    768 /* orui ${rt-rs},$hi16 */
    769   {
    770     { 0, 0, 0, 0 },
    771     { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } },
    772     & ifmt_andoui2, { 0xbc000000 }
    773   },
    774 /* orui $rt,$rs,$hi16 */
    775   {
    776     { 0, 0, 0, 0 },
    777     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } },
    778     & ifmt_andoui, { 0xbc000000 }
    779   },
    780 /* bgtz $rs,$offset */
    781   {
    782     { 0, 0, 0, 0 },
    783     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    784     & ifmt_bgez, { 0x1c000000 }
    785   },
    786 /* bgtzl $rs,$offset */
    787   {
    788     { 0, 0, 0, 0 },
    789     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    790     & ifmt_bgez, { 0x5c000000 }
    791   },
    792 /* blez $rs,$offset */
    793   {
    794     { 0, 0, 0, 0 },
    795     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    796     & ifmt_bgez, { 0x18000000 }
    797   },
    798 /* blezl $rs,$offset */
    799   {
    800     { 0, 0, 0, 0 },
    801     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    802     & ifmt_bgez, { 0x58000000 }
    803   },
    804 /* mrgb $rd,$rs,$rt,$mask */
    805   {
    806     { 0, 0, 0, 0 },
    807     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (MASK), 0 } },
    808     & ifmt_mrgb, { 0x2d }
    809   },
    810 /* mrgb ${rd-rs},$rt,$mask */
    811   {
    812     { 0, 0, 0, 0 },
    813     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), ',', OP (MASK), 0 } },
    814     & ifmt_mrgb2, { 0x2d }
    815   },
    816 /* bctxt $rs,$offset */
    817   {
    818     { 0, 0, 0, 0 },
    819     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
    820     & ifmt_bgez, { 0x4060000 }
    821   },
    822 /* bc0f $offset */
    823   {
    824     { 0, 0, 0, 0 },
    825     { { MNEM, ' ', OP (OFFSET), 0 } },
    826     & ifmt_bc0f, { 0x41000000 }
    827   },
    828 /* bc0fl $offset */
    829   {
    830     { 0, 0, 0, 0 },
    831     { { MNEM, ' ', OP (OFFSET), 0 } },
    832     & ifmt_bc0f, { 0x41020000 }
    833   },
    834 /* bc3f $offset */
    835   {
    836     { 0, 0, 0, 0 },
    837     { { MNEM, ' ', OP (OFFSET), 0 } },
    838     & ifmt_bc0f, { 0x4d000000 }
    839   },
    840 /* bc3fl $offset */
    841   {
    842     { 0, 0, 0, 0 },
    843     { { MNEM, ' ', OP (OFFSET), 0 } },
    844     & ifmt_bc0f, { 0x4d020000 }
    845   },
    846 /* bc0t $offset */
    847   {
    848     { 0, 0, 0, 0 },
    849     { { MNEM, ' ', OP (OFFSET), 0 } },
    850     & ifmt_bc0f, { 0x41010000 }
    851   },
    852 /* bc0tl $offset */
    853   {
    854     { 0, 0, 0, 0 },
    855     { { MNEM, ' ', OP (OFFSET), 0 } },
    856     & ifmt_bc0f, { 0x41030000 }
    857   },
    858 /* bc3t $offset */
    859   {
    860     { 0, 0, 0, 0 },
    861     { { MNEM, ' ', OP (OFFSET), 0 } },
    862     & ifmt_bc0f, { 0x4d010000 }
    863   },
    864 /* bc3tl $offset */
    865   {
    866     { 0, 0, 0, 0 },
    867     { { MNEM, ' ', OP (OFFSET), 0 } },
    868     & ifmt_bc0f, { 0x4d030000 }
    869   },
    870 /* cfc0 $rt,$rd */
    871   {
    872     { 0, 0, 0, 0 },
    873     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    874     & ifmt_cfc0, { 0x40400000 }
    875   },
    876 /* cfc1 $rt,$rd */
    877   {
    878     { 0, 0, 0, 0 },
    879     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    880     & ifmt_cfc0, { 0x44400000 }
    881   },
    882 /* cfc2 $rt,$rd */
    883   {
    884     { 0, 0, 0, 0 },
    885     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    886     & ifmt_cfc0, { 0x48400000 }
    887   },
    888 /* cfc3 $rt,$rd */
    889   {
    890     { 0, 0, 0, 0 },
    891     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    892     & ifmt_cfc0, { 0x4c400000 }
    893   },
    894 /* chkhdr $rd,$rt */
    895   {
    896     { 0, 0, 0, 0 },
    897     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
    898     & ifmt_chkhdr, { 0x4d200000 }
    899   },
    900 /* ctc0 $rt,$rd */
    901   {
    902     { 0, 0, 0, 0 },
    903     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    904     & ifmt_cfc0, { 0x40c00000 }
    905   },
    906 /* ctc1 $rt,$rd */
    907   {
    908     { 0, 0, 0, 0 },
    909     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    910     & ifmt_cfc0, { 0x44c00000 }
    911   },
    912 /* ctc2 $rt,$rd */
    913   {
    914     { 0, 0, 0, 0 },
    915     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    916     & ifmt_cfc0, { 0x48c00000 }
    917   },
    918 /* ctc3 $rt,$rd */
    919   {
    920     { 0, 0, 0, 0 },
    921     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    922     & ifmt_cfc0, { 0x4cc00000 }
    923   },
    924 /* jcr $rs */
    925   {
    926     { 0, 0, 0, 0 },
    927     { { MNEM, ' ', OP (RS), 0 } },
    928     & ifmt_jr, { 0xa }
    929   },
    930 /* luc32 $rt,$rd */
    931   {
    932     { 0, 0, 0, 0 },
    933     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    934     & ifmt_chkhdr, { 0x48200003 }
    935   },
    936 /* luc32l $rt,$rd */
    937   {
    938     { 0, 0, 0, 0 },
    939     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    940     & ifmt_chkhdr, { 0x48200007 }
    941   },
    942 /* luc64 $rt,$rd */
    943   {
    944     { 0, 0, 0, 0 },
    945     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    946     & ifmt_chkhdr, { 0x4820000b }
    947   },
    948 /* luc64l $rt,$rd */
    949   {
    950     { 0, 0, 0, 0 },
    951     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    952     & ifmt_chkhdr, { 0x4820000f }
    953   },
    954 /* luk $rt,$rd */
    955   {
    956     { 0, 0, 0, 0 },
    957     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    958     & ifmt_chkhdr, { 0x48200008 }
    959   },
    960 /* lulck $rt */
    961   {
    962     { 0, 0, 0, 0 },
    963     { { MNEM, ' ', OP (RT), 0 } },
    964     & ifmt_lulck, { 0x48200004 }
    965   },
    966 /* lum32 $rt,$rd */
    967   {
    968     { 0, 0, 0, 0 },
    969     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    970     & ifmt_chkhdr, { 0x48200002 }
    971   },
    972 /* lum32l $rt,$rd */
    973   {
    974     { 0, 0, 0, 0 },
    975     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    976     & ifmt_chkhdr, { 0x48200006 }
    977   },
    978 /* lum64 $rt,$rd */
    979   {
    980     { 0, 0, 0, 0 },
    981     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    982     & ifmt_chkhdr, { 0x4820000a }
    983   },
    984 /* lum64l $rt,$rd */
    985   {
    986     { 0, 0, 0, 0 },
    987     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    988     & ifmt_chkhdr, { 0x4820000e }
    989   },
    990 /* lur $rt,$rd */
    991   {
    992     { 0, 0, 0, 0 },
    993     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
    994     & ifmt_chkhdr, { 0x48200001 }
    995   },
    996 /* lurl $rt,$rd */
    997   {
    998     { 0, 0, 0, 0 },
    999     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1000     & ifmt_chkhdr, { 0x48200005 }
   1001   },
   1002 /* luulck $rt */
   1003   {
   1004     { 0, 0, 0, 0 },
   1005     { { MNEM, ' ', OP (RT), 0 } },
   1006     & ifmt_lulck, { 0x48200000 }
   1007   },
   1008 /* mfc0 $rt,$rd */
   1009   {
   1010     { 0, 0, 0, 0 },
   1011     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1012     & ifmt_cfc0, { 0x40000000 }
   1013   },
   1014 /* mfc1 $rt,$rd */
   1015   {
   1016     { 0, 0, 0, 0 },
   1017     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1018     & ifmt_cfc0, { 0x44000000 }
   1019   },
   1020 /* mfc2 $rt,$rd */
   1021   {
   1022     { 0, 0, 0, 0 },
   1023     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1024     & ifmt_cfc0, { 0x48000000 }
   1025   },
   1026 /* mfc3 $rt,$rd */
   1027   {
   1028     { 0, 0, 0, 0 },
   1029     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1030     & ifmt_cfc0, { 0x4c000000 }
   1031   },
   1032 /* mtc0 $rt,$rd */
   1033   {
   1034     { 0, 0, 0, 0 },
   1035     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1036     & ifmt_cfc0, { 0x40800000 }
   1037   },
   1038 /* mtc1 $rt,$rd */
   1039   {
   1040     { 0, 0, 0, 0 },
   1041     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1042     & ifmt_cfc0, { 0x44800000 }
   1043   },
   1044 /* mtc2 $rt,$rd */
   1045   {
   1046     { 0, 0, 0, 0 },
   1047     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1048     & ifmt_cfc0, { 0x48800000 }
   1049   },
   1050 /* mtc3 $rt,$rd */
   1051   {
   1052     { 0, 0, 0, 0 },
   1053     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1054     & ifmt_cfc0, { 0x4c800000 }
   1055   },
   1056 /* pkrl $rd,$rt */
   1057   {
   1058     { 0, 0, 0, 0 },
   1059     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1060     & ifmt_chkhdr, { 0x4c200007 }
   1061   },
   1062 /* pkrlr1 $rt,$_index,$count */
   1063   {
   1064     { 0, 0, 0, 0 },
   1065     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1066     & ifmt_pkrlr1, { 0x4fa00000 }
   1067   },
   1068 /* pkrlr30 $rt,$_index,$count */
   1069   {
   1070     { 0, 0, 0, 0 },
   1071     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1072     & ifmt_pkrlr1, { 0x4fe00000 }
   1073   },
   1074 /* rb $rd,$rt */
   1075   {
   1076     { 0, 0, 0, 0 },
   1077     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1078     & ifmt_chkhdr, { 0x4c200004 }
   1079   },
   1080 /* rbr1 $rt,$_index,$count */
   1081   {
   1082     { 0, 0, 0, 0 },
   1083     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1084     & ifmt_pkrlr1, { 0x4f000000 }
   1085   },
   1086 /* rbr30 $rt,$_index,$count */
   1087   {
   1088     { 0, 0, 0, 0 },
   1089     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1090     & ifmt_pkrlr1, { 0x4f400000 }
   1091   },
   1092 /* rfe */
   1093   {
   1094     { 0, 0, 0, 0 },
   1095     { { MNEM, 0 } },
   1096     & ifmt_rfe, { 0x42000010 }
   1097   },
   1098 /* rx $rd,$rt */
   1099   {
   1100     { 0, 0, 0, 0 },
   1101     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1102     & ifmt_chkhdr, { 0x4c200006 }
   1103   },
   1104 /* rxr1 $rt,$_index,$count */
   1105   {
   1106     { 0, 0, 0, 0 },
   1107     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1108     & ifmt_pkrlr1, { 0x4f800000 }
   1109   },
   1110 /* rxr30 $rt,$_index,$count */
   1111   {
   1112     { 0, 0, 0, 0 },
   1113     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1114     & ifmt_pkrlr1, { 0x4fc00000 }
   1115   },
   1116 /* sleep */
   1117   {
   1118     { 0, 0, 0, 0 },
   1119     { { MNEM, 0 } },
   1120     & ifmt_syscall, { 0xe }
   1121   },
   1122 /* srrd $rt */
   1123   {
   1124     { 0, 0, 0, 0 },
   1125     { { MNEM, ' ', OP (RT), 0 } },
   1126     & ifmt_lulck, { 0x48200010 }
   1127   },
   1128 /* srrdl $rt */
   1129   {
   1130     { 0, 0, 0, 0 },
   1131     { { MNEM, ' ', OP (RT), 0 } },
   1132     & ifmt_lulck, { 0x48200014 }
   1133   },
   1134 /* srulck $rt */
   1135   {
   1136     { 0, 0, 0, 0 },
   1137     { { MNEM, ' ', OP (RT), 0 } },
   1138     & ifmt_lulck, { 0x48200016 }
   1139   },
   1140 /* srwr $rt,$rd */
   1141   {
   1142     { 0, 0, 0, 0 },
   1143     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1144     & ifmt_chkhdr, { 0x48200011 }
   1145   },
   1146 /* srwru $rt,$rd */
   1147   {
   1148     { 0, 0, 0, 0 },
   1149     { { MNEM, ' ', OP (RT), ',', OP (RD), 0 } },
   1150     & ifmt_chkhdr, { 0x48200015 }
   1151   },
   1152 /* trapqfl */
   1153   {
   1154     { 0, 0, 0, 0 },
   1155     { { MNEM, 0 } },
   1156     & ifmt_break, { 0x4c200008 }
   1157   },
   1158 /* trapqne */
   1159   {
   1160     { 0, 0, 0, 0 },
   1161     { { MNEM, 0 } },
   1162     & ifmt_break, { 0x4c200009 }
   1163   },
   1164 /* traprel $rt */
   1165   {
   1166     { 0, 0, 0, 0 },
   1167     { { MNEM, ' ', OP (RT), 0 } },
   1168     & ifmt_lulck, { 0x4c20000a }
   1169   },
   1170 /* wb $rd,$rt */
   1171   {
   1172     { 0, 0, 0, 0 },
   1173     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1174     & ifmt_chkhdr, { 0x4c200000 }
   1175   },
   1176 /* wbu $rd,$rt */
   1177   {
   1178     { 0, 0, 0, 0 },
   1179     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1180     & ifmt_chkhdr, { 0x4c200001 }
   1181   },
   1182 /* wbr1 $rt,$_index,$count */
   1183   {
   1184     { 0, 0, 0, 0 },
   1185     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1186     & ifmt_pkrlr1, { 0x4e000000 }
   1187   },
   1188 /* wbr1u $rt,$_index,$count */
   1189   {
   1190     { 0, 0, 0, 0 },
   1191     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1192     & ifmt_pkrlr1, { 0x4e200000 }
   1193   },
   1194 /* wbr30 $rt,$_index,$count */
   1195   {
   1196     { 0, 0, 0, 0 },
   1197     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1198     & ifmt_pkrlr1, { 0x4e400000 }
   1199   },
   1200 /* wbr30u $rt,$_index,$count */
   1201   {
   1202     { 0, 0, 0, 0 },
   1203     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1204     & ifmt_pkrlr1, { 0x4e600000 }
   1205   },
   1206 /* wx $rd,$rt */
   1207   {
   1208     { 0, 0, 0, 0 },
   1209     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1210     & ifmt_chkhdr, { 0x4c200002 }
   1211   },
   1212 /* wxu $rd,$rt */
   1213   {
   1214     { 0, 0, 0, 0 },
   1215     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1216     & ifmt_chkhdr, { 0x4c200003 }
   1217   },
   1218 /* wxr1 $rt,$_index,$count */
   1219   {
   1220     { 0, 0, 0, 0 },
   1221     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1222     & ifmt_pkrlr1, { 0x4e800000 }
   1223   },
   1224 /* wxr1u $rt,$_index,$count */
   1225   {
   1226     { 0, 0, 0, 0 },
   1227     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1228     & ifmt_pkrlr1, { 0x4ea00000 }
   1229   },
   1230 /* wxr30 $rt,$_index,$count */
   1231   {
   1232     { 0, 0, 0, 0 },
   1233     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1234     & ifmt_pkrlr1, { 0x4ec00000 }
   1235   },
   1236 /* wxr30u $rt,$_index,$count */
   1237   {
   1238     { 0, 0, 0, 0 },
   1239     { { MNEM, ' ', OP (RT), ',', OP (_INDEX), ',', OP (COUNT), 0 } },
   1240     & ifmt_pkrlr1, { 0x4ee00000 }
   1241   },
   1242 /* ldw $rt,$lo16($base) */
   1243   {
   1244     { 0, 0, 0, 0 },
   1245     { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
   1246     & ifmt_lb, { 0xc0000000 }
   1247   },
   1248 /* sdw $rt,$lo16($base) */
   1249   {
   1250     { 0, 0, 0, 0 },
   1251     { { MNEM, ' ', OP (RT), ',', OP (LO16), '(', OP (BASE), ')', 0 } },
   1252     & ifmt_lb, { 0xe0000000 }
   1253   },
   1254 /* j $jmptarg */
   1255   {
   1256     { 0, 0, 0, 0 },
   1257     { { MNEM, ' ', OP (JMPTARG), 0 } },
   1258     & ifmt_j, { 0x8000000 }
   1259   },
   1260 /* jal $jmptarg */
   1261   {
   1262     { 0, 0, 0, 0 },
   1263     { { MNEM, ' ', OP (JMPTARG), 0 } },
   1264     & ifmt_j, { 0xc000000 }
   1265   },
   1266 /* bmb $rs,$rt,$offset */
   1267   {
   1268     { 0, 0, 0, 0 },
   1269     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
   1270     & ifmt_bbv, { 0xb4000000 }
   1271   },
   1272 /* andoui $rt,$rs,$hi16 */
   1273   {
   1274     { 0, 0, 0, 0 },
   1275     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } },
   1276     & ifmt_andoui, { 0xbc000000 }
   1277   },
   1278 /* andoui ${rt-rs},$hi16 */
   1279   {
   1280     { 0, 0, 0, 0 },
   1281     { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } },
   1282     & ifmt_andoui2, { 0xbc000000 }
   1283   },
   1284 /* orui $rt,$rs,$hi16 */
   1285   {
   1286     { 0, 0, 0, 0 },
   1287     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (HI16), 0 } },
   1288     & ifmt_andoui, { 0x3c000000 }
   1289   },
   1290 /* orui ${rt-rs},$hi16 */
   1291   {
   1292     { 0, 0, 0, 0 },
   1293     { { MNEM, ' ', OP (RT_RS), ',', OP (HI16), 0 } },
   1294     & ifmt_andoui2, { 0x3c000000 }
   1295   },
   1296 /* mrgb $rd,$rs,$rt,$maskq10 */
   1297   {
   1298     { 0, 0, 0, 0 },
   1299     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (MASKQ10), 0 } },
   1300     & ifmt_mrgbq10, { 0x2d }
   1301   },
   1302 /* mrgb ${rd-rs},$rt,$maskq10 */
   1303   {
   1304     { 0, 0, 0, 0 },
   1305     { { MNEM, ' ', OP (RD_RS), ',', OP (RT), ',', OP (MASKQ10), 0 } },
   1306     & ifmt_mrgbq102, { 0x2d }
   1307   },
   1308 /* j $jmptarg */
   1309   {
   1310     { 0, 0, 0, 0 },
   1311     { { MNEM, ' ', OP (JMPTARG), 0 } },
   1312     & ifmt_jq10, { 0x8000000 }
   1313   },
   1314 /* jal $rt,$jmptarg */
   1315   {
   1316     { 0, 0, 0, 0 },
   1317     { { MNEM, ' ', OP (RT), ',', OP (JMPTARG), 0 } },
   1318     & ifmt_jalq10, { 0xc000000 }
   1319   },
   1320 /* jal $jmptarg */
   1321   {
   1322     { 0, 0, 0, 0 },
   1323     { { MNEM, ' ', OP (JMPTARG), 0 } },
   1324     & ifmt_jq10, { 0xc1f0000 }
   1325   },
   1326 /* bbil $rs($bitnum),$offset */
   1327   {
   1328     { 0, 0, 0, 0 },
   1329     { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } },
   1330     & ifmt_bbi, { 0xf0000000 }
   1331   },
   1332 /* bbinl $rs($bitnum),$offset */
   1333   {
   1334     { 0, 0, 0, 0 },
   1335     { { MNEM, ' ', OP (RS), '(', OP (BITNUM), ')', ',', OP (OFFSET), 0 } },
   1336     & ifmt_bbi, { 0xf8000000 }
   1337   },
   1338 /* bbvl $rs,$rt,$offset */
   1339   {
   1340     { 0, 0, 0, 0 },
   1341     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
   1342     & ifmt_bbv, { 0xf4000000 }
   1343   },
   1344 /* bbvnl $rs,$rt,$offset */
   1345   {
   1346     { 0, 0, 0, 0 },
   1347     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
   1348     & ifmt_bbv, { 0xfc000000 }
   1349   },
   1350 /* bgtzal $rs,$offset */
   1351   {
   1352     { 0, 0, 0, 0 },
   1353     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1354     & ifmt_bgez, { 0x4150000 }
   1355   },
   1356 /* bgtzall $rs,$offset */
   1357   {
   1358     { 0, 0, 0, 0 },
   1359     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1360     & ifmt_bgez, { 0x4170000 }
   1361   },
   1362 /* blezal $rs,$offset */
   1363   {
   1364     { 0, 0, 0, 0 },
   1365     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1366     & ifmt_bgez, { 0x4140000 }
   1367   },
   1368 /* blezall $rs,$offset */
   1369   {
   1370     { 0, 0, 0, 0 },
   1371     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1372     & ifmt_bgez, { 0x4160000 }
   1373   },
   1374 /* bgtz $rs,$offset */
   1375   {
   1376     { 0, 0, 0, 0 },
   1377     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1378     & ifmt_bgez, { 0x4050000 }
   1379   },
   1380 /* bgtzl $rs,$offset */
   1381   {
   1382     { 0, 0, 0, 0 },
   1383     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1384     & ifmt_bgez, { 0x4070000 }
   1385   },
   1386 /* blez $rs,$offset */
   1387   {
   1388     { 0, 0, 0, 0 },
   1389     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1390     & ifmt_bgez, { 0x4040000 }
   1391   },
   1392 /* blezl $rs,$offset */
   1393   {
   1394     { 0, 0, 0, 0 },
   1395     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1396     & ifmt_bgez, { 0x4060000 }
   1397   },
   1398 /* bmb $rs,$rt,$offset */
   1399   {
   1400     { 0, 0, 0, 0 },
   1401     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
   1402     & ifmt_bbv, { 0x18000000 }
   1403   },
   1404 /* bmbl $rs,$rt,$offset */
   1405   {
   1406     { 0, 0, 0, 0 },
   1407     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (OFFSET), 0 } },
   1408     & ifmt_bbv, { 0x58000000 }
   1409   },
   1410 /* bri $rs,$offset */
   1411   {
   1412     { 0, 0, 0, 0 },
   1413     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1414     & ifmt_bgez, { 0x4080000 }
   1415   },
   1416 /* brv $rs,$offset */
   1417   {
   1418     { 0, 0, 0, 0 },
   1419     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1420     & ifmt_bgez, { 0x4090000 }
   1421   },
   1422 /* bctx $rs,$offset */
   1423   {
   1424     { 0, 0, 0, 0 },
   1425     { { MNEM, ' ', OP (RS), ',', OP (OFFSET), 0 } },
   1426     & ifmt_bgez, { 0x40c0000 }
   1427   },
   1428 /* yield */
   1429   {
   1430     { 0, 0, 0, 0 },
   1431     { { MNEM, 0 } },
   1432     & ifmt_break, { 0xe }
   1433   },
   1434 /* crc32 $rd,$rs,$rt */
   1435   {
   1436     { 0, 0, 0, 0 },
   1437     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1438     & ifmt_add, { 0x4c000014 }
   1439   },
   1440 /* crc32b $rd,$rs,$rt */
   1441   {
   1442     { 0, 0, 0, 0 },
   1443     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1444     & ifmt_add, { 0x4c000015 }
   1445   },
   1446 /* cnt1s $rd,$rs */
   1447   {
   1448     { 0, 0, 0, 0 },
   1449     { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
   1450     & ifmt_add, { 0x2e }
   1451   },
   1452 /* avail $rd */
   1453   {
   1454     { 0, 0, 0, 0 },
   1455     { { MNEM, ' ', OP (RD), 0 } },
   1456     & ifmt_avail, { 0x4c000024 }
   1457   },
   1458 /* free $rd,$rs */
   1459   {
   1460     { 0, 0, 0, 0 },
   1461     { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
   1462     & ifmt_jalr, { 0x4c000025 }
   1463   },
   1464 /* tstod $rd,$rs */
   1465   {
   1466     { 0, 0, 0, 0 },
   1467     { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
   1468     & ifmt_jalr, { 0x4c000027 }
   1469   },
   1470 /* cmphdr $rd */
   1471   {
   1472     { 0, 0, 0, 0 },
   1473     { { MNEM, ' ', OP (RD), 0 } },
   1474     & ifmt_avail, { 0x4c00002c }
   1475   },
   1476 /* mcid $rd,$rt */
   1477   {
   1478     { 0, 0, 0, 0 },
   1479     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1480     & ifmt_chkhdr, { 0x4c000020 }
   1481   },
   1482 /* dba $rd */
   1483   {
   1484     { 0, 0, 0, 0 },
   1485     { { MNEM, ' ', OP (RD), 0 } },
   1486     & ifmt_avail, { 0x4c000022 }
   1487   },
   1488 /* dbd $rd,$rs,$rt */
   1489   {
   1490     { 0, 0, 0, 0 },
   1491     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1492     & ifmt_add, { 0x4c000021 }
   1493   },
   1494 /* dpwt $rd,$rs */
   1495   {
   1496     { 0, 0, 0, 0 },
   1497     { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
   1498     & ifmt_jalr, { 0x4c000023 }
   1499   },
   1500 /* chkhdr $rd,$rs */
   1501   {
   1502     { 0, 0, 0, 0 },
   1503     { { MNEM, ' ', OP (RD), ',', OP (RS), 0 } },
   1504     & ifmt_jalr, { 0x4c000026 }
   1505   },
   1506 /* rba $rd,$rs,$rt */
   1507   {
   1508     { 0, 0, 0, 0 },
   1509     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1510     & ifmt_add, { 0x4c000008 }
   1511   },
   1512 /* rbal $rd,$rs,$rt */
   1513   {
   1514     { 0, 0, 0, 0 },
   1515     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1516     & ifmt_add, { 0x4c000009 }
   1517   },
   1518 /* rbar $rd,$rs,$rt */
   1519   {
   1520     { 0, 0, 0, 0 },
   1521     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1522     & ifmt_add, { 0x4c00000a }
   1523   },
   1524 /* wba $rd,$rs,$rt */
   1525   {
   1526     { 0, 0, 0, 0 },
   1527     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1528     & ifmt_add, { 0x4c000010 }
   1529   },
   1530 /* wbau $rd,$rs,$rt */
   1531   {
   1532     { 0, 0, 0, 0 },
   1533     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1534     & ifmt_add, { 0x4c000011 }
   1535   },
   1536 /* wbac $rd,$rs,$rt */
   1537   {
   1538     { 0, 0, 0, 0 },
   1539     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1540     & ifmt_add, { 0x4c000012 }
   1541   },
   1542 /* rbi $rd,$rs,$rt,$bytecount */
   1543   {
   1544     { 0, 0, 0, 0 },
   1545     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   1546     & ifmt_rbi, { 0x4c000200 }
   1547   },
   1548 /* rbil $rd,$rs,$rt,$bytecount */
   1549   {
   1550     { 0, 0, 0, 0 },
   1551     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   1552     & ifmt_rbi, { 0x4c000300 }
   1553   },
   1554 /* rbir $rd,$rs,$rt,$bytecount */
   1555   {
   1556     { 0, 0, 0, 0 },
   1557     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   1558     & ifmt_rbi, { 0x4c000100 }
   1559   },
   1560 /* wbi $rd,$rs,$rt,$bytecount */
   1561   {
   1562     { 0, 0, 0, 0 },
   1563     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   1564     & ifmt_rbi, { 0x4c000600 }
   1565   },
   1566 /* wbic $rd,$rs,$rt,$bytecount */
   1567   {
   1568     { 0, 0, 0, 0 },
   1569     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   1570     & ifmt_rbi, { 0x4c000500 }
   1571   },
   1572 /* wbiu $rd,$rs,$rt,$bytecount */
   1573   {
   1574     { 0, 0, 0, 0 },
   1575     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   1576     & ifmt_rbi, { 0x4c000700 }
   1577   },
   1578 /* pkrli $rd,$rs,$rt,$bytecount */
   1579   {
   1580     { 0, 0, 0, 0 },
   1581     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   1582     & ifmt_rbi, { 0x48000000 }
   1583   },
   1584 /* pkrlih $rd,$rs,$rt,$bytecount */
   1585   {
   1586     { 0, 0, 0, 0 },
   1587     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   1588     & ifmt_rbi, { 0x48000200 }
   1589   },
   1590 /* pkrliu $rd,$rs,$rt,$bytecount */
   1591   {
   1592     { 0, 0, 0, 0 },
   1593     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   1594     & ifmt_rbi, { 0x48000100 }
   1595   },
   1596 /* pkrlic $rd,$rs,$rt,$bytecount */
   1597   {
   1598     { 0, 0, 0, 0 },
   1599     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   1600     & ifmt_rbi, { 0x48000300 }
   1601   },
   1602 /* pkrla $rd,$rs,$rt */
   1603   {
   1604     { 0, 0, 0, 0 },
   1605     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1606     & ifmt_add, { 0x4c000028 }
   1607   },
   1608 /* pkrlau $rd,$rs,$rt */
   1609   {
   1610     { 0, 0, 0, 0 },
   1611     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1612     & ifmt_add, { 0x4c000029 }
   1613   },
   1614 /* pkrlah $rd,$rs,$rt */
   1615   {
   1616     { 0, 0, 0, 0 },
   1617     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1618     & ifmt_add, { 0x4c00002a }
   1619   },
   1620 /* pkrlac $rd,$rs,$rt */
   1621   {
   1622     { 0, 0, 0, 0 },
   1623     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1624     & ifmt_add, { 0x4c00002b }
   1625   },
   1626 /* lock $rd,$rt */
   1627   {
   1628     { 0, 0, 0, 0 },
   1629     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1630     & ifmt_chkhdr, { 0x4c000001 }
   1631   },
   1632 /* unlk $rd,$rt */
   1633   {
   1634     { 0, 0, 0, 0 },
   1635     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1636     & ifmt_chkhdr, { 0x4c000003 }
   1637   },
   1638 /* swrd $rd,$rt */
   1639   {
   1640     { 0, 0, 0, 0 },
   1641     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1642     & ifmt_chkhdr, { 0x4c000004 }
   1643   },
   1644 /* swrdl $rd,$rt */
   1645   {
   1646     { 0, 0, 0, 0 },
   1647     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1648     & ifmt_chkhdr, { 0x4c000005 }
   1649   },
   1650 /* swwr $rd,$rs,$rt */
   1651   {
   1652     { 0, 0, 0, 0 },
   1653     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1654     & ifmt_add, { 0x4c000006 }
   1655   },
   1656 /* swwru $rd,$rs,$rt */
   1657   {
   1658     { 0, 0, 0, 0 },
   1659     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1660     & ifmt_add, { 0x4c000007 }
   1661   },
   1662 /* dwrd $rd,$rt */
   1663   {
   1664     { 0, 0, 0, 0 },
   1665     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1666     & ifmt_chkhdr, { 0x4c00000c }
   1667   },
   1668 /* dwrdl $rd,$rt */
   1669   {
   1670     { 0, 0, 0, 0 },
   1671     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1672     & ifmt_chkhdr, { 0x4c00000d }
   1673   },
   1674 /* cam36 $rd,$rt,${cam-z},${cam-y} */
   1675   {
   1676     { 0, 0, 0, 0 },
   1677     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), ',', OP (CAM_Y), 0 } },
   1678     & ifmt_cam36, { 0x4c000400 }
   1679   },
   1680 /* cam72 $rd,$rt,${cam-y},${cam-z} */
   1681   {
   1682     { 0, 0, 0, 0 },
   1683     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Y), ',', OP (CAM_Z), 0 } },
   1684     & ifmt_cam36, { 0x4c000440 }
   1685   },
   1686 /* cam144 $rd,$rt,${cam-y},${cam-z} */
   1687   {
   1688     { 0, 0, 0, 0 },
   1689     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Y), ',', OP (CAM_Z), 0 } },
   1690     & ifmt_cam36, { 0x4c000480 }
   1691   },
   1692 /* cam288 $rd,$rt,${cam-y},${cam-z} */
   1693   {
   1694     { 0, 0, 0, 0 },
   1695     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Y), ',', OP (CAM_Z), 0 } },
   1696     & ifmt_cam36, { 0x4c0004c0 }
   1697   },
   1698 /* cm32and $rd,$rs,$rt */
   1699   {
   1700     { 0, 0, 0, 0 },
   1701     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1702     & ifmt_cm32and, { 0x4c0000ab }
   1703   },
   1704 /* cm32andn $rd,$rs,$rt */
   1705   {
   1706     { 0, 0, 0, 0 },
   1707     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1708     & ifmt_cm32and, { 0x4c0000a3 }
   1709   },
   1710 /* cm32or $rd,$rs,$rt */
   1711   {
   1712     { 0, 0, 0, 0 },
   1713     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1714     & ifmt_cm32and, { 0x4c0000aa }
   1715   },
   1716 /* cm32ra $rd,$rs,$rt */
   1717   {
   1718     { 0, 0, 0, 0 },
   1719     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1720     & ifmt_add, { 0x4c0000b0 }
   1721   },
   1722 /* cm32rd $rd,$rt */
   1723   {
   1724     { 0, 0, 0, 0 },
   1725     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1726     & ifmt_cm32rd, { 0x4c0000a1 }
   1727   },
   1728 /* cm32ri $rd,$rt */
   1729   {
   1730     { 0, 0, 0, 0 },
   1731     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1732     & ifmt_cm32rd, { 0x4c0000a4 }
   1733   },
   1734 /* cm32rs $rd,$rs,$rt */
   1735   {
   1736     { 0, 0, 0, 0 },
   1737     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1738     & ifmt_add, { 0x4c0000a0 }
   1739   },
   1740 /* cm32sa $rd,$rs,$rt */
   1741   {
   1742     { 0, 0, 0, 0 },
   1743     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1744     & ifmt_cm32and, { 0x4c0000b8 }
   1745   },
   1746 /* cm32sd $rd,$rt */
   1747   {
   1748     { 0, 0, 0, 0 },
   1749     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1750     & ifmt_cm32rd, { 0x4c0000a9 }
   1751   },
   1752 /* cm32si $rd,$rt */
   1753   {
   1754     { 0, 0, 0, 0 },
   1755     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1756     & ifmt_cm32rd, { 0x4c0000ac }
   1757   },
   1758 /* cm32ss $rd,$rs,$rt */
   1759   {
   1760     { 0, 0, 0, 0 },
   1761     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1762     & ifmt_cm32and, { 0x4c0000a8 }
   1763   },
   1764 /* cm32xor $rd,$rs,$rt */
   1765   {
   1766     { 0, 0, 0, 0 },
   1767     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1768     & ifmt_cm32and, { 0x4c0000a2 }
   1769   },
   1770 /* cm64clr $rd,$rt */
   1771   {
   1772     { 0, 0, 0, 0 },
   1773     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1774     & ifmt_cm32rd, { 0x4c000085 }
   1775   },
   1776 /* cm64ra $rd,$rs,$rt */
   1777   {
   1778     { 0, 0, 0, 0 },
   1779     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1780     & ifmt_cm32and, { 0x4c000090 }
   1781   },
   1782 /* cm64rd $rd,$rt */
   1783   {
   1784     { 0, 0, 0, 0 },
   1785     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1786     & ifmt_cm32rd, { 0x4c000081 }
   1787   },
   1788 /* cm64ri $rd,$rt */
   1789   {
   1790     { 0, 0, 0, 0 },
   1791     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1792     & ifmt_cm32rd, { 0x4c000084 }
   1793   },
   1794 /* cm64ria2 $rd,$rs,$rt */
   1795   {
   1796     { 0, 0, 0, 0 },
   1797     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1798     & ifmt_cm32and, { 0x4c000094 }
   1799   },
   1800 /* cm64rs $rd,$rs,$rt */
   1801   {
   1802     { 0, 0, 0, 0 },
   1803     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1804     & ifmt_cm32and, { 0x4c000080 }
   1805   },
   1806 /* cm64sa $rd,$rs,$rt */
   1807   {
   1808     { 0, 0, 0, 0 },
   1809     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1810     & ifmt_cm32and, { 0x4c000098 }
   1811   },
   1812 /* cm64sd $rd,$rt */
   1813   {
   1814     { 0, 0, 0, 0 },
   1815     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1816     & ifmt_cm32rd, { 0x4c000089 }
   1817   },
   1818 /* cm64si $rd,$rt */
   1819   {
   1820     { 0, 0, 0, 0 },
   1821     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1822     & ifmt_cm32rd, { 0x4c00008c }
   1823   },
   1824 /* cm64sia2 $rd,$rs,$rt */
   1825   {
   1826     { 0, 0, 0, 0 },
   1827     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1828     & ifmt_cm32and, { 0x4c00009c }
   1829   },
   1830 /* cm64ss $rd,$rs,$rt */
   1831   {
   1832     { 0, 0, 0, 0 },
   1833     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1834     & ifmt_cm32and, { 0x4c000088 }
   1835   },
   1836 /* cm128ria2 $rd,$rs,$rt */
   1837   {
   1838     { 0, 0, 0, 0 },
   1839     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1840     & ifmt_cm32and, { 0x4c000095 }
   1841   },
   1842 /* cm128ria3 $rd,$rs,$rt,${cm-3z} */
   1843   {
   1844     { 0, 0, 0, 0 },
   1845     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_3Z), 0 } },
   1846     & ifmt_cm128ria3, { 0x4c000090 }
   1847   },
   1848 /* cm128ria4 $rd,$rs,$rt,${cm-4z} */
   1849   {
   1850     { 0, 0, 0, 0 },
   1851     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_4Z), 0 } },
   1852     & ifmt_cm128ria4, { 0x4c0000b0 }
   1853   },
   1854 /* cm128sia2 $rd,$rs,$rt */
   1855   {
   1856     { 0, 0, 0, 0 },
   1857     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1858     & ifmt_cm32and, { 0x4c00009d }
   1859   },
   1860 /* cm128sia3 $rd,$rs,$rt,${cm-3z} */
   1861   {
   1862     { 0, 0, 0, 0 },
   1863     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_3Z), 0 } },
   1864     & ifmt_cm128ria3, { 0x4c000098 }
   1865   },
   1866 /* cm128sia4 $rd,$rs,$rt,${cm-4z} */
   1867   {
   1868     { 0, 0, 0, 0 },
   1869     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), ',', OP (CM_4Z), 0 } },
   1870     & ifmt_cm128ria4, { 0x4c0000b8 }
   1871   },
   1872 /* cm128vsa $rd,$rs,$rt */
   1873   {
   1874     { 0, 0, 0, 0 },
   1875     { { MNEM, ' ', OP (RD), ',', OP (RS), ',', OP (RT), 0 } },
   1876     & ifmt_cm32and, { 0x4c0000a6 }
   1877   },
   1878 /* cfc $rd,$rt */
   1879   {
   1880     { 0, 0, 0, 0 },
   1881     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   1882     & ifmt_chkhdr, { 0x4c000000 }
   1883   },
   1884 /* ctc $rs,$rt */
   1885   {
   1886     { 0, 0, 0, 0 },
   1887     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   1888     & ifmt_ctc, { 0x4c000002 }
   1889   },
   1890 };
   1891 
   1892 #undef A
   1893 #undef OPERAND
   1894 #undef MNEM
   1895 #undef OP
   1896 
   1897 /* Formats for ALIAS macro-insns.  */
   1898 
   1899 #define F(f) & iq2000_cgen_ifld_table[IQ2000_##f]
   1900 static const CGEN_IFMT ifmt_nop ATTRIBUTE_UNUSED = {
   1901   32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   1902 };
   1903 
   1904 static const CGEN_IFMT ifmt_li ATTRIBUTE_UNUSED = {
   1905   32, 32, 0xfc1f0000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1906 };
   1907 
   1908 static const CGEN_IFMT ifmt_move ATTRIBUTE_UNUSED = {
   1909   32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   1910 };
   1911 
   1912 static const CGEN_IFMT ifmt_lb_base_0 ATTRIBUTE_UNUSED = {
   1913   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1914 };
   1915 
   1916 static const CGEN_IFMT ifmt_lbu_base_0 ATTRIBUTE_UNUSED = {
   1917   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1918 };
   1919 
   1920 static const CGEN_IFMT ifmt_lh_base_0 ATTRIBUTE_UNUSED = {
   1921   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1922 };
   1923 
   1924 static const CGEN_IFMT ifmt_lw_base_0 ATTRIBUTE_UNUSED = {
   1925   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1926 };
   1927 
   1928 static const CGEN_IFMT ifmt_m_add ATTRIBUTE_UNUSED = {
   1929   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1930 };
   1931 
   1932 static const CGEN_IFMT ifmt_m_addu ATTRIBUTE_UNUSED = {
   1933   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1934 };
   1935 
   1936 static const CGEN_IFMT ifmt_m_and ATTRIBUTE_UNUSED = {
   1937   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1938 };
   1939 
   1940 static const CGEN_IFMT ifmt_m_j ATTRIBUTE_UNUSED = {
   1941   32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   1942 };
   1943 
   1944 static const CGEN_IFMT ifmt_m_or ATTRIBUTE_UNUSED = {
   1945   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1946 };
   1947 
   1948 static const CGEN_IFMT ifmt_m_sll ATTRIBUTE_UNUSED = {
   1949   32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   1950 };
   1951 
   1952 static const CGEN_IFMT ifmt_m_slt ATTRIBUTE_UNUSED = {
   1953   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1954 };
   1955 
   1956 static const CGEN_IFMT ifmt_m_sltu ATTRIBUTE_UNUSED = {
   1957   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1958 };
   1959 
   1960 static const CGEN_IFMT ifmt_m_sra ATTRIBUTE_UNUSED = {
   1961   32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   1962 };
   1963 
   1964 static const CGEN_IFMT ifmt_m_srl ATTRIBUTE_UNUSED = {
   1965   32, 32, 0xfc0007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   1966 };
   1967 
   1968 static const CGEN_IFMT ifmt_not ATTRIBUTE_UNUSED = {
   1969   32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   1970 };
   1971 
   1972 static const CGEN_IFMT ifmt_subi ATTRIBUTE_UNUSED = {
   1973   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1974 };
   1975 
   1976 static const CGEN_IFMT ifmt_m_sub ATTRIBUTE_UNUSED = {
   1977   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1978 };
   1979 
   1980 static const CGEN_IFMT ifmt_m_subu ATTRIBUTE_UNUSED = {
   1981   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1982 };
   1983 
   1984 static const CGEN_IFMT ifmt_sb_base_0 ATTRIBUTE_UNUSED = {
   1985   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1986 };
   1987 
   1988 static const CGEN_IFMT ifmt_sh_base_0 ATTRIBUTE_UNUSED = {
   1989   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1990 };
   1991 
   1992 static const CGEN_IFMT ifmt_sw_base_0 ATTRIBUTE_UNUSED = {
   1993   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1994 };
   1995 
   1996 static const CGEN_IFMT ifmt_m_xor ATTRIBUTE_UNUSED = {
   1997   32, 32, 0xfc000000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   1998 };
   1999 
   2000 static const CGEN_IFMT ifmt_ldw_base_0 ATTRIBUTE_UNUSED = {
   2001   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   2002 };
   2003 
   2004 static const CGEN_IFMT ifmt_sdw_base_0 ATTRIBUTE_UNUSED = {
   2005   32, 32, 0xffe00000, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_IMM) }, { 0 } }
   2006 };
   2007 
   2008 static const CGEN_IFMT ifmt_m_avail ATTRIBUTE_UNUSED = {
   2009   32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2010 };
   2011 
   2012 static const CGEN_IFMT ifmt_m_cam36 ATTRIBUTE_UNUSED = {
   2013   32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } }
   2014 };
   2015 
   2016 static const CGEN_IFMT ifmt_m_cam72 ATTRIBUTE_UNUSED = {
   2017   32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } }
   2018 };
   2019 
   2020 static const CGEN_IFMT ifmt_m_cam144 ATTRIBUTE_UNUSED = {
   2021   32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } }
   2022 };
   2023 
   2024 static const CGEN_IFMT ifmt_m_cam288 ATTRIBUTE_UNUSED = {
   2025   32, 32, 0xffe007c7, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP_10) }, { F (F_CAM_Z) }, { F (F_CAM_Y) }, { 0 } }
   2026 };
   2027 
   2028 static const CGEN_IFMT ifmt_m_cm32read ATTRIBUTE_UNUSED = {
   2029   32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2030 };
   2031 
   2032 static const CGEN_IFMT ifmt_m_cm64read ATTRIBUTE_UNUSED = {
   2033   32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2034 };
   2035 
   2036 static const CGEN_IFMT ifmt_m_cm32mlog ATTRIBUTE_UNUSED = {
   2037   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2038 };
   2039 
   2040 static const CGEN_IFMT ifmt_m_cm32and ATTRIBUTE_UNUSED = {
   2041   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2042 };
   2043 
   2044 static const CGEN_IFMT ifmt_m_cm32andn ATTRIBUTE_UNUSED = {
   2045   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2046 };
   2047 
   2048 static const CGEN_IFMT ifmt_m_cm32or ATTRIBUTE_UNUSED = {
   2049   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2050 };
   2051 
   2052 static const CGEN_IFMT ifmt_m_cm32ra ATTRIBUTE_UNUSED = {
   2053   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2054 };
   2055 
   2056 static const CGEN_IFMT ifmt_m_cm32rd ATTRIBUTE_UNUSED = {
   2057   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2058 };
   2059 
   2060 static const CGEN_IFMT ifmt_m_cm32ri ATTRIBUTE_UNUSED = {
   2061   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2062 };
   2063 
   2064 static const CGEN_IFMT ifmt_m_cm32rs ATTRIBUTE_UNUSED = {
   2065   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2066 };
   2067 
   2068 static const CGEN_IFMT ifmt_m_cm32sa ATTRIBUTE_UNUSED = {
   2069   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2070 };
   2071 
   2072 static const CGEN_IFMT ifmt_m_cm32sd ATTRIBUTE_UNUSED = {
   2073   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2074 };
   2075 
   2076 static const CGEN_IFMT ifmt_m_cm32si ATTRIBUTE_UNUSED = {
   2077   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2078 };
   2079 
   2080 static const CGEN_IFMT ifmt_m_cm32ss ATTRIBUTE_UNUSED = {
   2081   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2082 };
   2083 
   2084 static const CGEN_IFMT ifmt_m_cm32xor ATTRIBUTE_UNUSED = {
   2085   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2086 };
   2087 
   2088 static const CGEN_IFMT ifmt_m_cm64clr ATTRIBUTE_UNUSED = {
   2089   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2090 };
   2091 
   2092 static const CGEN_IFMT ifmt_m_cm64ra ATTRIBUTE_UNUSED = {
   2093   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2094 };
   2095 
   2096 static const CGEN_IFMT ifmt_m_cm64rd ATTRIBUTE_UNUSED = {
   2097   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2098 };
   2099 
   2100 static const CGEN_IFMT ifmt_m_cm64ri ATTRIBUTE_UNUSED = {
   2101   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2102 };
   2103 
   2104 static const CGEN_IFMT ifmt_m_cm64ria2 ATTRIBUTE_UNUSED = {
   2105   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2106 };
   2107 
   2108 static const CGEN_IFMT ifmt_m_cm64rs ATTRIBUTE_UNUSED = {
   2109   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2110 };
   2111 
   2112 static const CGEN_IFMT ifmt_m_cm64sa ATTRIBUTE_UNUSED = {
   2113   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2114 };
   2115 
   2116 static const CGEN_IFMT ifmt_m_cm64sd ATTRIBUTE_UNUSED = {
   2117   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2118 };
   2119 
   2120 static const CGEN_IFMT ifmt_m_cm64si ATTRIBUTE_UNUSED = {
   2121   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2122 };
   2123 
   2124 static const CGEN_IFMT ifmt_m_cm64sia2 ATTRIBUTE_UNUSED = {
   2125   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2126 };
   2127 
   2128 static const CGEN_IFMT ifmt_m_cm64ss ATTRIBUTE_UNUSED = {
   2129   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2130 };
   2131 
   2132 static const CGEN_IFMT ifmt_m_cm128ria2 ATTRIBUTE_UNUSED = {
   2133   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2134 };
   2135 
   2136 static const CGEN_IFMT ifmt_m_cm128ria3 ATTRIBUTE_UNUSED = {
   2137   32, 32, 0xfc00fffc, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_4FUNC) }, { F (F_CM_3Z) }, { 0 } }
   2138 };
   2139 
   2140 static const CGEN_IFMT ifmt_m_cm128ria4 ATTRIBUTE_UNUSED = {
   2141   32, 32, 0xfc00fff8, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_3FUNC) }, { F (F_CM_4Z) }, { 0 } }
   2142 };
   2143 
   2144 static const CGEN_IFMT ifmt_m_cm128sia2 ATTRIBUTE_UNUSED = {
   2145   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_FUNC) }, { 0 } }
   2146 };
   2147 
   2148 static const CGEN_IFMT ifmt_m_cm128sia3 ATTRIBUTE_UNUSED = {
   2149   32, 32, 0xfc00fffc, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_4FUNC) }, { F (F_CM_3Z) }, { 0 } }
   2150 };
   2151 
   2152 static const CGEN_IFMT ifmt_m_cm128sia4 ATTRIBUTE_UNUSED = {
   2153   32, 32, 0xfc00fff8, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_CP_GRP) }, { F (F_CM_3FUNC) }, { F (F_CM_4Z) }, { 0 } }
   2154 };
   2155 
   2156 static const CGEN_IFMT ifmt_m_cmphdr ATTRIBUTE_UNUSED = {
   2157   32, 32, 0xffffffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2158 };
   2159 
   2160 static const CGEN_IFMT ifmt_m_dbd ATTRIBUTE_UNUSED = {
   2161   32, 32, 0xffe007ff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2162 };
   2163 
   2164 static const CGEN_IFMT ifmt_m2_dbd ATTRIBUTE_UNUSED = {
   2165   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2166 };
   2167 
   2168 static const CGEN_IFMT ifmt_m_dpwt ATTRIBUTE_UNUSED = {
   2169   32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2170 };
   2171 
   2172 static const CGEN_IFMT ifmt_m_free ATTRIBUTE_UNUSED = {
   2173   32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2174 };
   2175 
   2176 static const CGEN_IFMT ifmt_m_lock ATTRIBUTE_UNUSED = {
   2177   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2178 };
   2179 
   2180 static const CGEN_IFMT ifmt_m_pkrla ATTRIBUTE_UNUSED = {
   2181   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2182 };
   2183 
   2184 static const CGEN_IFMT ifmt_m_pkrlac ATTRIBUTE_UNUSED = {
   2185   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2186 };
   2187 
   2188 static const CGEN_IFMT ifmt_m_pkrlah ATTRIBUTE_UNUSED = {
   2189   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2190 };
   2191 
   2192 static const CGEN_IFMT ifmt_m_pkrlau ATTRIBUTE_UNUSED = {
   2193   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2194 };
   2195 
   2196 static const CGEN_IFMT ifmt_m_pkrli ATTRIBUTE_UNUSED = {
   2197   32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
   2198 };
   2199 
   2200 static const CGEN_IFMT ifmt_m_pkrlic ATTRIBUTE_UNUSED = {
   2201   32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
   2202 };
   2203 
   2204 static const CGEN_IFMT ifmt_m_pkrlih ATTRIBUTE_UNUSED = {
   2205   32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
   2206 };
   2207 
   2208 static const CGEN_IFMT ifmt_m_pkrliu ATTRIBUTE_UNUSED = {
   2209   32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
   2210 };
   2211 
   2212 static const CGEN_IFMT ifmt_m_rba ATTRIBUTE_UNUSED = {
   2213   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2214 };
   2215 
   2216 static const CGEN_IFMT ifmt_m_rbal ATTRIBUTE_UNUSED = {
   2217   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2218 };
   2219 
   2220 static const CGEN_IFMT ifmt_m_rbar ATTRIBUTE_UNUSED = {
   2221   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2222 };
   2223 
   2224 static const CGEN_IFMT ifmt_m_rbi ATTRIBUTE_UNUSED = {
   2225   32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
   2226 };
   2227 
   2228 static const CGEN_IFMT ifmt_m_rbil ATTRIBUTE_UNUSED = {
   2229   32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
   2230 };
   2231 
   2232 static const CGEN_IFMT ifmt_m_rbir ATTRIBUTE_UNUSED = {
   2233   32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
   2234 };
   2235 
   2236 static const CGEN_IFMT ifmt_m_swwr ATTRIBUTE_UNUSED = {
   2237   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2238 };
   2239 
   2240 static const CGEN_IFMT ifmt_m_swwru ATTRIBUTE_UNUSED = {
   2241   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2242 };
   2243 
   2244 static const CGEN_IFMT ifmt_m_tstod ATTRIBUTE_UNUSED = {
   2245   32, 32, 0xfc1fffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2246 };
   2247 
   2248 static const CGEN_IFMT ifmt_m_unlk ATTRIBUTE_UNUSED = {
   2249   32, 32, 0xffe0ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2250 };
   2251 
   2252 static const CGEN_IFMT ifmt_m_wba ATTRIBUTE_UNUSED = {
   2253   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2254 };
   2255 
   2256 static const CGEN_IFMT ifmt_m_wbac ATTRIBUTE_UNUSED = {
   2257   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2258 };
   2259 
   2260 static const CGEN_IFMT ifmt_m_wbau ATTRIBUTE_UNUSED = {
   2261   32, 32, 0xfc00ffff, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_SHAMT) }, { F (F_FUNC) }, { 0 } }
   2262 };
   2263 
   2264 static const CGEN_IFMT ifmt_m_wbi ATTRIBUTE_UNUSED = {
   2265   32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
   2266 };
   2267 
   2268 static const CGEN_IFMT ifmt_m_wbic ATTRIBUTE_UNUSED = {
   2269   32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
   2270 };
   2271 
   2272 static const CGEN_IFMT ifmt_m_wbiu ATTRIBUTE_UNUSED = {
   2273   32, 32, 0xfc00ff00, { { F (F_OPCODE) }, { F (F_RS) }, { F (F_RT) }, { F (F_RD) }, { F (F_CP_OP) }, { F (F_BYTECOUNT) }, { 0 } }
   2274 };
   2275 
   2276 #undef F
   2277 
   2278 /* Each non-simple macro entry points to an array of expansion possibilities.  */
   2279 
   2280 #define A(a) (1 << CGEN_INSN_##a)
   2281 #define OPERAND(op) IQ2000_OPERAND_##op
   2282 #define MNEM CGEN_SYNTAX_MNEMONIC /* syntax value for mnemonic */
   2283 #define OP(field) CGEN_SYNTAX_MAKE_FIELD (OPERAND (field))
   2284 
   2285 /* The macro instruction table.  */
   2286 
   2287 static const CGEN_IBASE iq2000_cgen_macro_insn_table[] =
   2288 {
   2289 /* nop */
   2290   {
   2291     -1, "nop", "nop", 32,
   2292     { 0|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2293   },
   2294 /* li $rs,$imm */
   2295   {
   2296     -1, "li", "li", 32,
   2297     { 0|A(NO_DIS)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2298   },
   2299 /* move $rd,$rt */
   2300   {
   2301     -1, "move", "move", 32,
   2302     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2303   },
   2304 /* lb $rt,$lo16 */
   2305   {
   2306     -1, "lb-base-0", "lb", 32,
   2307     { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2308   },
   2309 /* lbu $rt,$lo16 */
   2310   {
   2311     -1, "lbu-base-0", "lbu", 32,
   2312     { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2313   },
   2314 /* lh $rt,$lo16 */
   2315   {
   2316     -1, "lh-base-0", "lh", 32,
   2317     { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2318   },
   2319 /* lw $rt,$lo16 */
   2320   {
   2321     -1, "lw-base-0", "lw", 32,
   2322     { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2323   },
   2324 /* add $rt,$rs,$lo16 */
   2325   {
   2326     -1, "m-add", "add", 32,
   2327     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2328   },
   2329 /* addu $rt,$rs,$lo16 */
   2330   {
   2331     -1, "m-addu", "addu", 32,
   2332     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2333   },
   2334 /* and $rt,$rs,$lo16 */
   2335   {
   2336     -1, "m-and", "and", 32,
   2337     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2338   },
   2339 /* j $rs */
   2340   {
   2341     -1, "m-j", "j", 32,
   2342     { 0|A(NO_DIS)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2343   },
   2344 /* or $rt,$rs,$lo16 */
   2345   {
   2346     -1, "m-or", "or", 32,
   2347     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2348   },
   2349 /* sll $rd,$rt,$rs */
   2350   {
   2351     -1, "m-sll", "sll", 32,
   2352     { 0|A(NO_DIS)|A(USES_RS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2353   },
   2354 /* slt $rt,$rs,$imm */
   2355   {
   2356     -1, "m-slt", "slt", 32,
   2357     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2358   },
   2359 /* sltu $rt,$rs,$imm */
   2360   {
   2361     -1, "m-sltu", "sltu", 32,
   2362     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2363   },
   2364 /* sra $rd,$rt,$rs */
   2365   {
   2366     -1, "m-sra", "sra", 32,
   2367     { 0|A(NO_DIS)|A(USES_RS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2368   },
   2369 /* srl $rd,$rt,$rs */
   2370   {
   2371     -1, "m-srl", "srl", 32,
   2372     { 0|A(NO_DIS)|A(USES_RS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2373   },
   2374 /* not $rd,$rt */
   2375   {
   2376     -1, "not", "not", 32,
   2377     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2378   },
   2379 /* subi $rt,$rs,$mlo16 */
   2380   {
   2381     -1, "subi", "subi", 32,
   2382     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2383   },
   2384 /* sub $rt,$rs,$mlo16 */
   2385   {
   2386     -1, "m-sub", "sub", 32,
   2387     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2388   },
   2389 /* subu $rt,$rs,$mlo16 */
   2390   {
   2391     -1, "m-subu", "subu", 32,
   2392     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2393   },
   2394 /* sb $rt,$lo16 */
   2395   {
   2396     -1, "sb-base-0", "sb", 32,
   2397     { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2398   },
   2399 /* sh $rt,$lo16 */
   2400   {
   2401     -1, "sh-base-0", "sh", 32,
   2402     { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2403   },
   2404 /* sw $rt,$lo16 */
   2405   {
   2406     -1, "sw-base-0", "sw", 32,
   2407     { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2408   },
   2409 /* xor $rt,$rs,$lo16 */
   2410   {
   2411     -1, "m-xor", "xor", 32,
   2412     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_BASE), 0 } } } }
   2413   },
   2414 /* ldw $rt,$lo16 */
   2415   {
   2416     -1, "ldw-base-0", "ldw", 32,
   2417     { 0|A(NO_DIS)|A(USES_RS)|A(USES_RT)|A(LOAD_DELAY)|A(EVEN_REG_NUM)|A(ALIAS), { { { (1<<MACH_IQ2000), 0 } } } }
   2418   },
   2419 /* sdw $rt,$lo16 */
   2420   {
   2421     -1, "sdw-base-0", "sdw", 32,
   2422     { 0|A(NO_DIS)|A(USES_RT)|A(EVEN_REG_NUM)|A(ALIAS), { { { (1<<MACH_IQ2000), 0 } } } }
   2423   },
   2424 /* avail */
   2425   {
   2426     -1, "m-avail", "avail", 32,
   2427     { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2428   },
   2429 /* cam36 $rd,$rt,${cam-z} */
   2430   {
   2431     -1, "m-cam36", "cam36", 32,
   2432     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2433   },
   2434 /* cam72 $rd,$rt,${cam-z} */
   2435   {
   2436     -1, "m-cam72", "cam72", 32,
   2437     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2438   },
   2439 /* cam144 $rd,$rt,${cam-z} */
   2440   {
   2441     -1, "m-cam144", "cam144", 32,
   2442     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2443   },
   2444 /* cam288 $rd,$rt,${cam-z} */
   2445   {
   2446     -1, "m-cam288", "cam288", 32,
   2447     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2448   },
   2449 /* cm32read $rd,$rt */
   2450   {
   2451     -1, "m-cm32read", "cm32read", 32,
   2452     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2453   },
   2454 /* cm64read $rd,$rt */
   2455   {
   2456     -1, "m-cm64read", "cm64read", 32,
   2457     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2458   },
   2459 /* cm32mlog $rs,$rt */
   2460   {
   2461     -1, "m-cm32mlog", "cm32mlog", 32,
   2462     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2463   },
   2464 /* cm32and $rs,$rt */
   2465   {
   2466     -1, "m-cm32and", "cm32and", 32,
   2467     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2468   },
   2469 /* cm32andn $rs,$rt */
   2470   {
   2471     -1, "m-cm32andn", "cm32andn", 32,
   2472     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2473   },
   2474 /* cm32or $rs,$rt */
   2475   {
   2476     -1, "m-cm32or", "cm32or", 32,
   2477     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2478   },
   2479 /* cm32ra $rs,$rt */
   2480   {
   2481     -1, "m-cm32ra", "cm32ra", 32,
   2482     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2483   },
   2484 /* cm32rd $rt */
   2485   {
   2486     -1, "m-cm32rd", "cm32rd", 32,
   2487     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2488   },
   2489 /* cm32ri $rt */
   2490   {
   2491     -1, "m-cm32ri", "cm32ri", 32,
   2492     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2493   },
   2494 /* cm32rs $rs,$rt */
   2495   {
   2496     -1, "m-cm32rs", "cm32rs", 32,
   2497     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2498   },
   2499 /* cm32sa $rs,$rt */
   2500   {
   2501     -1, "m-cm32sa", "cm32sa", 32,
   2502     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2503   },
   2504 /* cm32sd $rt */
   2505   {
   2506     -1, "m-cm32sd", "cm32sd", 32,
   2507     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2508   },
   2509 /* cm32si $rt */
   2510   {
   2511     -1, "m-cm32si", "cm32si", 32,
   2512     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2513   },
   2514 /* cm32ss $rs,$rt */
   2515   {
   2516     -1, "m-cm32ss", "cm32ss", 32,
   2517     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2518   },
   2519 /* cm32xor $rs,$rt */
   2520   {
   2521     -1, "m-cm32xor", "cm32xor", 32,
   2522     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2523   },
   2524 /* cm64clr $rt */
   2525   {
   2526     -1, "m-cm64clr", "cm64clr", 32,
   2527     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2528   },
   2529 /* cm64ra $rs,$rt */
   2530   {
   2531     -1, "m-cm64ra", "cm64ra", 32,
   2532     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2533   },
   2534 /* cm64rd $rt */
   2535   {
   2536     -1, "m-cm64rd", "cm64rd", 32,
   2537     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2538   },
   2539 /* cm64ri $rt */
   2540   {
   2541     -1, "m-cm64ri", "cm64ri", 32,
   2542     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2543   },
   2544 /* cm64ria2 $rs,$rt */
   2545   {
   2546     -1, "m-cm64ria2", "cm64ria2", 32,
   2547     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2548   },
   2549 /* cm64rs $rs,$rt */
   2550   {
   2551     -1, "m-cm64rs", "cm64rs", 32,
   2552     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2553   },
   2554 /* cm64sa $rs,$rt */
   2555   {
   2556     -1, "m-cm64sa", "cm64sa", 32,
   2557     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2558   },
   2559 /* cm64sd $rt */
   2560   {
   2561     -1, "m-cm64sd", "cm64sd", 32,
   2562     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2563   },
   2564 /* cm64si $rt */
   2565   {
   2566     -1, "m-cm64si", "cm64si", 32,
   2567     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2568   },
   2569 /* cm64sia2 $rs,$rt */
   2570   {
   2571     -1, "m-cm64sia2", "cm64sia2", 32,
   2572     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2573   },
   2574 /* cm64ss $rs,$rt */
   2575   {
   2576     -1, "m-cm64ss", "cm64ss", 32,
   2577     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2578   },
   2579 /* cm128ria2 $rs,$rt */
   2580   {
   2581     -1, "m-cm128ria2", "cm128ria2", 32,
   2582     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2583   },
   2584 /* cm128ria3 $rs,$rt,${cm-3z} */
   2585   {
   2586     -1, "m-cm128ria3", "cm128ria3", 32,
   2587     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2588   },
   2589 /* cm128ria4 $rs,$rt,${cm-4z} */
   2590   {
   2591     -1, "m-cm128ria4", "cm128ria4", 32,
   2592     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2593   },
   2594 /* cm128sia2 $rs,$rt */
   2595   {
   2596     -1, "m-cm128sia2", "cm128sia2", 32,
   2597     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2598   },
   2599 /* cm128sia3 $rs,$rt,${cm-3z} */
   2600   {
   2601     -1, "m-cm128sia3", "cm128sia3", 32,
   2602     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2603   },
   2604 /* cm128sia4 $rs,$rt,${cm-4z} */
   2605   {
   2606     -1, "m-cm128sia4", "cm128sia4", 32,
   2607     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2608   },
   2609 /* cmphdr */
   2610   {
   2611     -1, "m-cmphdr", "cmphdr", 32,
   2612     { 0|A(NO_DIS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2613   },
   2614 /* dbd $rd,$rt */
   2615   {
   2616     -1, "m-dbd", "dbd", 32,
   2617     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2618   },
   2619 /* dbd $rt */
   2620   {
   2621     -1, "m2-dbd", "dbd", 32,
   2622     { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2623   },
   2624 /* dpwt $rs */
   2625   {
   2626     -1, "m-dpwt", "dpwt", 32,
   2627     { 0|A(NO_DIS)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2628   },
   2629 /* free $rs */
   2630   {
   2631     -1, "m-free", "free", 32,
   2632     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2633   },
   2634 /* lock $rt */
   2635   {
   2636     -1, "m-lock", "lock", 32,
   2637     { 0|A(NO_DIS)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2638   },
   2639 /* pkrla $rs,$rt */
   2640   {
   2641     -1, "m-pkrla", "pkrla", 32,
   2642     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2643   },
   2644 /* pkrlac $rs,$rt */
   2645   {
   2646     -1, "m-pkrlac", "pkrlac", 32,
   2647     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2648   },
   2649 /* pkrlah $rs,$rt */
   2650   {
   2651     -1, "m-pkrlah", "pkrlah", 32,
   2652     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2653   },
   2654 /* pkrlau $rs,$rt */
   2655   {
   2656     -1, "m-pkrlau", "pkrlau", 32,
   2657     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2658   },
   2659 /* pkrli $rs,$rt,$bytecount */
   2660   {
   2661     -1, "m-pkrli", "pkrli", 32,
   2662     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2663   },
   2664 /* pkrlic $rs,$rt,$bytecount */
   2665   {
   2666     -1, "m-pkrlic", "pkrlic", 32,
   2667     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2668   },
   2669 /* pkrlih $rs,$rt,$bytecount */
   2670   {
   2671     -1, "m-pkrlih", "pkrlih", 32,
   2672     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2673   },
   2674 /* pkrliu $rs,$rt,$bytecount */
   2675   {
   2676     -1, "m-pkrliu", "pkrliu", 32,
   2677     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2678   },
   2679 /* rba $rs,$rt */
   2680   {
   2681     -1, "m-rba", "rba", 32,
   2682     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2683   },
   2684 /* rbal $rs,$rt */
   2685   {
   2686     -1, "m-rbal", "rbal", 32,
   2687     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2688   },
   2689 /* rbar $rs,$rt */
   2690   {
   2691     -1, "m-rbar", "rbar", 32,
   2692     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2693   },
   2694 /* rbi $rs,$rt,$bytecount */
   2695   {
   2696     -1, "m-rbi", "rbi", 32,
   2697     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2698   },
   2699 /* rbil $rs,$rt,$bytecount */
   2700   {
   2701     -1, "m-rbil", "rbil", 32,
   2702     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2703   },
   2704 /* rbir $rs,$rt,$bytecount */
   2705   {
   2706     -1, "m-rbir", "rbir", 32,
   2707     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2708   },
   2709 /* swwr $rs,$rt */
   2710   {
   2711     -1, "m-swwr", "swwr", 32,
   2712     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2713   },
   2714 /* swwru $rs,$rt */
   2715   {
   2716     -1, "m-swwru", "swwru", 32,
   2717     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2718   },
   2719 /* tstod $rs */
   2720   {
   2721     -1, "m-tstod", "tstod", 32,
   2722     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2723   },
   2724 /* unlk $rt */
   2725   {
   2726     -1, "m-unlk", "unlk", 32,
   2727     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2728   },
   2729 /* wba $rs,$rt */
   2730   {
   2731     -1, "m-wba", "wba", 32,
   2732     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2733   },
   2734 /* wbac $rs,$rt */
   2735   {
   2736     -1, "m-wbac", "wbac", 32,
   2737     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2738   },
   2739 /* wbau $rs,$rt */
   2740   {
   2741     -1, "m-wbau", "wbau", 32,
   2742     { 0|A(NO_DIS)|A(USES_RD)|A(USES_RT)|A(USES_RS)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2743   },
   2744 /* wbi $rs,$rt,$bytecount */
   2745   {
   2746     -1, "m-wbi", "wbi", 32,
   2747     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2748   },
   2749 /* wbic $rs,$rt,$bytecount */
   2750   {
   2751     -1, "m-wbic", "wbic", 32,
   2752     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2753   },
   2754 /* wbiu $rs,$rt,$bytecount */
   2755   {
   2756     -1, "m-wbiu", "wbiu", 32,
   2757     { 0|A(NO_DIS)|A(USES_RT)|A(USES_RS)|A(USES_RD)|A(ALIAS), { { { (1<<MACH_IQ10), 0 } } } }
   2758   },
   2759 };
   2760 
   2761 /* The macro instruction opcode table.  */
   2762 
   2763 static const CGEN_OPCODE iq2000_cgen_macro_insn_opcode_table[] =
   2764 {
   2765 /* nop */
   2766   {
   2767     { 0, 0, 0, 0 },
   2768     { { MNEM, 0 } },
   2769     & ifmt_nop, { 0x0 }
   2770   },
   2771 /* li $rs,$imm */
   2772   {
   2773     { 0, 0, 0, 0 },
   2774     { { MNEM, ' ', OP (RS), ',', OP (IMM), 0 } },
   2775     & ifmt_li, { 0x34000000 }
   2776   },
   2777 /* move $rd,$rt */
   2778   {
   2779     { 0, 0, 0, 0 },
   2780     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   2781     & ifmt_move, { 0x25 }
   2782   },
   2783 /* lb $rt,$lo16 */
   2784   {
   2785     { 0, 0, 0, 0 },
   2786     { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
   2787     & ifmt_lb_base_0, { 0x80000000 }
   2788   },
   2789 /* lbu $rt,$lo16 */
   2790   {
   2791     { 0, 0, 0, 0 },
   2792     { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
   2793     & ifmt_lbu_base_0, { 0x90000000 }
   2794   },
   2795 /* lh $rt,$lo16 */
   2796   {
   2797     { 0, 0, 0, 0 },
   2798     { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
   2799     & ifmt_lh_base_0, { 0x84000000 }
   2800   },
   2801 /* lw $rt,$lo16 */
   2802   {
   2803     { 0, 0, 0, 0 },
   2804     { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
   2805     & ifmt_lw_base_0, { 0x8c000000 }
   2806   },
   2807 /* add $rt,$rs,$lo16 */
   2808   {
   2809     { 0, 0, 0, 0 },
   2810     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
   2811     & ifmt_m_add, { 0x20000000 }
   2812   },
   2813 /* addu $rt,$rs,$lo16 */
   2814   {
   2815     { 0, 0, 0, 0 },
   2816     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
   2817     & ifmt_m_addu, { 0x24000000 }
   2818   },
   2819 /* and $rt,$rs,$lo16 */
   2820   {
   2821     { 0, 0, 0, 0 },
   2822     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
   2823     & ifmt_m_and, { 0x30000000 }
   2824   },
   2825 /* j $rs */
   2826   {
   2827     { 0, 0, 0, 0 },
   2828     { { MNEM, ' ', OP (RS), 0 } },
   2829     & ifmt_m_j, { 0x8 }
   2830   },
   2831 /* or $rt,$rs,$lo16 */
   2832   {
   2833     { 0, 0, 0, 0 },
   2834     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
   2835     & ifmt_m_or, { 0x34000000 }
   2836   },
   2837 /* sll $rd,$rt,$rs */
   2838   {
   2839     { 0, 0, 0, 0 },
   2840     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
   2841     & ifmt_m_sll, { 0x4 }
   2842   },
   2843 /* slt $rt,$rs,$imm */
   2844   {
   2845     { 0, 0, 0, 0 },
   2846     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (IMM), 0 } },
   2847     & ifmt_m_slt, { 0x28000000 }
   2848   },
   2849 /* sltu $rt,$rs,$imm */
   2850   {
   2851     { 0, 0, 0, 0 },
   2852     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (IMM), 0 } },
   2853     & ifmt_m_sltu, { 0x2c000000 }
   2854   },
   2855 /* sra $rd,$rt,$rs */
   2856   {
   2857     { 0, 0, 0, 0 },
   2858     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
   2859     & ifmt_m_sra, { 0x7 }
   2860   },
   2861 /* srl $rd,$rt,$rs */
   2862   {
   2863     { 0, 0, 0, 0 },
   2864     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (RS), 0 } },
   2865     & ifmt_m_srl, { 0x6 }
   2866   },
   2867 /* not $rd,$rt */
   2868   {
   2869     { 0, 0, 0, 0 },
   2870     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   2871     & ifmt_not, { 0x27 }
   2872   },
   2873 /* subi $rt,$rs,$mlo16 */
   2874   {
   2875     { 0, 0, 0, 0 },
   2876     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (MLO16), 0 } },
   2877     & ifmt_subi, { 0x24000000 }
   2878   },
   2879 /* sub $rt,$rs,$mlo16 */
   2880   {
   2881     { 0, 0, 0, 0 },
   2882     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (MLO16), 0 } },
   2883     & ifmt_m_sub, { 0x24000000 }
   2884   },
   2885 /* subu $rt,$rs,$mlo16 */
   2886   {
   2887     { 0, 0, 0, 0 },
   2888     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (MLO16), 0 } },
   2889     & ifmt_m_subu, { 0x24000000 }
   2890   },
   2891 /* sb $rt,$lo16 */
   2892   {
   2893     { 0, 0, 0, 0 },
   2894     { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
   2895     & ifmt_sb_base_0, { 0xa0000000 }
   2896   },
   2897 /* sh $rt,$lo16 */
   2898   {
   2899     { 0, 0, 0, 0 },
   2900     { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
   2901     & ifmt_sh_base_0, { 0xa4000000 }
   2902   },
   2903 /* sw $rt,$lo16 */
   2904   {
   2905     { 0, 0, 0, 0 },
   2906     { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
   2907     & ifmt_sw_base_0, { 0xac000000 }
   2908   },
   2909 /* xor $rt,$rs,$lo16 */
   2910   {
   2911     { 0, 0, 0, 0 },
   2912     { { MNEM, ' ', OP (RT), ',', OP (RS), ',', OP (LO16), 0 } },
   2913     & ifmt_m_xor, { 0x38000000 }
   2914   },
   2915 /* ldw $rt,$lo16 */
   2916   {
   2917     { 0, 0, 0, 0 },
   2918     { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
   2919     & ifmt_ldw_base_0, { 0xc0000000 }
   2920   },
   2921 /* sdw $rt,$lo16 */
   2922   {
   2923     { 0, 0, 0, 0 },
   2924     { { MNEM, ' ', OP (RT), ',', OP (LO16), 0 } },
   2925     & ifmt_sdw_base_0, { 0xe0000000 }
   2926   },
   2927 /* avail */
   2928   {
   2929     { 0, 0, 0, 0 },
   2930     { { MNEM, 0 } },
   2931     & ifmt_m_avail, { 0x4c000024 }
   2932   },
   2933 /* cam36 $rd,$rt,${cam-z} */
   2934   {
   2935     { 0, 0, 0, 0 },
   2936     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), 0 } },
   2937     & ifmt_m_cam36, { 0x4c000400 }
   2938   },
   2939 /* cam72 $rd,$rt,${cam-z} */
   2940   {
   2941     { 0, 0, 0, 0 },
   2942     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), 0 } },
   2943     & ifmt_m_cam72, { 0x4c000440 }
   2944   },
   2945 /* cam144 $rd,$rt,${cam-z} */
   2946   {
   2947     { 0, 0, 0, 0 },
   2948     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), 0 } },
   2949     & ifmt_m_cam144, { 0x4c000480 }
   2950   },
   2951 /* cam288 $rd,$rt,${cam-z} */
   2952   {
   2953     { 0, 0, 0, 0 },
   2954     { { MNEM, ' ', OP (RD), ',', OP (RT), ',', OP (CAM_Z), 0 } },
   2955     & ifmt_m_cam288, { 0x4c0004c0 }
   2956   },
   2957 /* cm32read $rd,$rt */
   2958   {
   2959     { 0, 0, 0, 0 },
   2960     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   2961     & ifmt_m_cm32read, { 0x4c0000b0 }
   2962   },
   2963 /* cm64read $rd,$rt */
   2964   {
   2965     { 0, 0, 0, 0 },
   2966     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   2967     & ifmt_m_cm64read, { 0x4c000090 }
   2968   },
   2969 /* cm32mlog $rs,$rt */
   2970   {
   2971     { 0, 0, 0, 0 },
   2972     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   2973     & ifmt_m_cm32mlog, { 0x4c0000aa }
   2974   },
   2975 /* cm32and $rs,$rt */
   2976   {
   2977     { 0, 0, 0, 0 },
   2978     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   2979     & ifmt_m_cm32and, { 0x4c0000ab }
   2980   },
   2981 /* cm32andn $rs,$rt */
   2982   {
   2983     { 0, 0, 0, 0 },
   2984     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   2985     & ifmt_m_cm32andn, { 0x4c0000a3 }
   2986   },
   2987 /* cm32or $rs,$rt */
   2988   {
   2989     { 0, 0, 0, 0 },
   2990     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   2991     & ifmt_m_cm32or, { 0x4c0000aa }
   2992   },
   2993 /* cm32ra $rs,$rt */
   2994   {
   2995     { 0, 0, 0, 0 },
   2996     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   2997     & ifmt_m_cm32ra, { 0x4c0000b0 }
   2998   },
   2999 /* cm32rd $rt */
   3000   {
   3001     { 0, 0, 0, 0 },
   3002     { { MNEM, ' ', OP (RT), 0 } },
   3003     & ifmt_m_cm32rd, { 0x4c0000a1 }
   3004   },
   3005 /* cm32ri $rt */
   3006   {
   3007     { 0, 0, 0, 0 },
   3008     { { MNEM, ' ', OP (RT), 0 } },
   3009     & ifmt_m_cm32ri, { 0x4c0000a4 }
   3010   },
   3011 /* cm32rs $rs,$rt */
   3012   {
   3013     { 0, 0, 0, 0 },
   3014     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3015     & ifmt_m_cm32rs, { 0x4c0000a0 }
   3016   },
   3017 /* cm32sa $rs,$rt */
   3018   {
   3019     { 0, 0, 0, 0 },
   3020     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3021     & ifmt_m_cm32sa, { 0x4c0000b8 }
   3022   },
   3023 /* cm32sd $rt */
   3024   {
   3025     { 0, 0, 0, 0 },
   3026     { { MNEM, ' ', OP (RT), 0 } },
   3027     & ifmt_m_cm32sd, { 0x4c0000a9 }
   3028   },
   3029 /* cm32si $rt */
   3030   {
   3031     { 0, 0, 0, 0 },
   3032     { { MNEM, ' ', OP (RT), 0 } },
   3033     & ifmt_m_cm32si, { 0x4c0000ac }
   3034   },
   3035 /* cm32ss $rs,$rt */
   3036   {
   3037     { 0, 0, 0, 0 },
   3038     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3039     & ifmt_m_cm32ss, { 0x4c0000a8 }
   3040   },
   3041 /* cm32xor $rs,$rt */
   3042   {
   3043     { 0, 0, 0, 0 },
   3044     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3045     & ifmt_m_cm32xor, { 0x4c0000a2 }
   3046   },
   3047 /* cm64clr $rt */
   3048   {
   3049     { 0, 0, 0, 0 },
   3050     { { MNEM, ' ', OP (RT), 0 } },
   3051     & ifmt_m_cm64clr, { 0x4c000085 }
   3052   },
   3053 /* cm64ra $rs,$rt */
   3054   {
   3055     { 0, 0, 0, 0 },
   3056     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3057     & ifmt_m_cm64ra, { 0x4c000090 }
   3058   },
   3059 /* cm64rd $rt */
   3060   {
   3061     { 0, 0, 0, 0 },
   3062     { { MNEM, ' ', OP (RT), 0 } },
   3063     & ifmt_m_cm64rd, { 0x4c000081 }
   3064   },
   3065 /* cm64ri $rt */
   3066   {
   3067     { 0, 0, 0, 0 },
   3068     { { MNEM, ' ', OP (RT), 0 } },
   3069     & ifmt_m_cm64ri, { 0x4c000084 }
   3070   },
   3071 /* cm64ria2 $rs,$rt */
   3072   {
   3073     { 0, 0, 0, 0 },
   3074     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3075     & ifmt_m_cm64ria2, { 0x4c000094 }
   3076   },
   3077 /* cm64rs $rs,$rt */
   3078   {
   3079     { 0, 0, 0, 0 },
   3080     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3081     & ifmt_m_cm64rs, { 0x4c000080 }
   3082   },
   3083 /* cm64sa $rs,$rt */
   3084   {
   3085     { 0, 0, 0, 0 },
   3086     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3087     & ifmt_m_cm64sa, { 0x4c000098 }
   3088   },
   3089 /* cm64sd $rt */
   3090   {
   3091     { 0, 0, 0, 0 },
   3092     { { MNEM, ' ', OP (RT), 0 } },
   3093     & ifmt_m_cm64sd, { 0x4c000089 }
   3094   },
   3095 /* cm64si $rt */
   3096   {
   3097     { 0, 0, 0, 0 },
   3098     { { MNEM, ' ', OP (RT), 0 } },
   3099     & ifmt_m_cm64si, { 0x4c00008c }
   3100   },
   3101 /* cm64sia2 $rs,$rt */
   3102   {
   3103     { 0, 0, 0, 0 },
   3104     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3105     & ifmt_m_cm64sia2, { 0x4c00009c }
   3106   },
   3107 /* cm64ss $rs,$rt */
   3108   {
   3109     { 0, 0, 0, 0 },
   3110     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3111     & ifmt_m_cm64ss, { 0x4c000088 }
   3112   },
   3113 /* cm128ria2 $rs,$rt */
   3114   {
   3115     { 0, 0, 0, 0 },
   3116     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3117     & ifmt_m_cm128ria2, { 0x4c000095 }
   3118   },
   3119 /* cm128ria3 $rs,$rt,${cm-3z} */
   3120   {
   3121     { 0, 0, 0, 0 },
   3122     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (CM_3Z), 0 } },
   3123     & ifmt_m_cm128ria3, { 0x4c000090 }
   3124   },
   3125 /* cm128ria4 $rs,$rt,${cm-4z} */
   3126   {
   3127     { 0, 0, 0, 0 },
   3128     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (CM_4Z), 0 } },
   3129     & ifmt_m_cm128ria4, { 0x4c0000b0 }
   3130   },
   3131 /* cm128sia2 $rs,$rt */
   3132   {
   3133     { 0, 0, 0, 0 },
   3134     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3135     & ifmt_m_cm128sia2, { 0x4c00009d }
   3136   },
   3137 /* cm128sia3 $rs,$rt,${cm-3z} */
   3138   {
   3139     { 0, 0, 0, 0 },
   3140     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (CM_3Z), 0 } },
   3141     & ifmt_m_cm128sia3, { 0x4c000098 }
   3142   },
   3143 /* cm128sia4 $rs,$rt,${cm-4z} */
   3144   {
   3145     { 0, 0, 0, 0 },
   3146     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (CM_4Z), 0 } },
   3147     & ifmt_m_cm128sia4, { 0x4c0000b8 }
   3148   },
   3149 /* cmphdr */
   3150   {
   3151     { 0, 0, 0, 0 },
   3152     { { MNEM, 0 } },
   3153     & ifmt_m_cmphdr, { 0x4c00002c }
   3154   },
   3155 /* dbd $rd,$rt */
   3156   {
   3157     { 0, 0, 0, 0 },
   3158     { { MNEM, ' ', OP (RD), ',', OP (RT), 0 } },
   3159     & ifmt_m_dbd, { 0x4c000021 }
   3160   },
   3161 /* dbd $rt */
   3162   {
   3163     { 0, 0, 0, 0 },
   3164     { { MNEM, ' ', OP (RT), 0 } },
   3165     & ifmt_m2_dbd, { 0x4c000021 }
   3166   },
   3167 /* dpwt $rs */
   3168   {
   3169     { 0, 0, 0, 0 },
   3170     { { MNEM, ' ', OP (RS), 0 } },
   3171     & ifmt_m_dpwt, { 0x4c000023 }
   3172   },
   3173 /* free $rs */
   3174   {
   3175     { 0, 0, 0, 0 },
   3176     { { MNEM, ' ', OP (RS), 0 } },
   3177     & ifmt_m_free, { 0x4c000025 }
   3178   },
   3179 /* lock $rt */
   3180   {
   3181     { 0, 0, 0, 0 },
   3182     { { MNEM, ' ', OP (RT), 0 } },
   3183     & ifmt_m_lock, { 0x4c000001 }
   3184   },
   3185 /* pkrla $rs,$rt */
   3186   {
   3187     { 0, 0, 0, 0 },
   3188     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3189     & ifmt_m_pkrla, { 0x4c000028 }
   3190   },
   3191 /* pkrlac $rs,$rt */
   3192   {
   3193     { 0, 0, 0, 0 },
   3194     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3195     & ifmt_m_pkrlac, { 0x4c00002b }
   3196   },
   3197 /* pkrlah $rs,$rt */
   3198   {
   3199     { 0, 0, 0, 0 },
   3200     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3201     & ifmt_m_pkrlah, { 0x4c00002a }
   3202   },
   3203 /* pkrlau $rs,$rt */
   3204   {
   3205     { 0, 0, 0, 0 },
   3206     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3207     & ifmt_m_pkrlau, { 0x4c000029 }
   3208   },
   3209 /* pkrli $rs,$rt,$bytecount */
   3210   {
   3211     { 0, 0, 0, 0 },
   3212     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   3213     & ifmt_m_pkrli, { 0x48000000 }
   3214   },
   3215 /* pkrlic $rs,$rt,$bytecount */
   3216   {
   3217     { 0, 0, 0, 0 },
   3218     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   3219     & ifmt_m_pkrlic, { 0x48000300 }
   3220   },
   3221 /* pkrlih $rs,$rt,$bytecount */
   3222   {
   3223     { 0, 0, 0, 0 },
   3224     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   3225     & ifmt_m_pkrlih, { 0x48000200 }
   3226   },
   3227 /* pkrliu $rs,$rt,$bytecount */
   3228   {
   3229     { 0, 0, 0, 0 },
   3230     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   3231     & ifmt_m_pkrliu, { 0x48000100 }
   3232   },
   3233 /* rba $rs,$rt */
   3234   {
   3235     { 0, 0, 0, 0 },
   3236     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3237     & ifmt_m_rba, { 0x4c000008 }
   3238   },
   3239 /* rbal $rs,$rt */
   3240   {
   3241     { 0, 0, 0, 0 },
   3242     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3243     & ifmt_m_rbal, { 0x4c000009 }
   3244   },
   3245 /* rbar $rs,$rt */
   3246   {
   3247     { 0, 0, 0, 0 },
   3248     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3249     & ifmt_m_rbar, { 0x4c00000a }
   3250   },
   3251 /* rbi $rs,$rt,$bytecount */
   3252   {
   3253     { 0, 0, 0, 0 },
   3254     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   3255     & ifmt_m_rbi, { 0x4c000200 }
   3256   },
   3257 /* rbil $rs,$rt,$bytecount */
   3258   {
   3259     { 0, 0, 0, 0 },
   3260     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   3261     & ifmt_m_rbil, { 0x4c000300 }
   3262   },
   3263 /* rbir $rs,$rt,$bytecount */
   3264   {
   3265     { 0, 0, 0, 0 },
   3266     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   3267     & ifmt_m_rbir, { 0x4c000100 }
   3268   },
   3269 /* swwr $rs,$rt */
   3270   {
   3271     { 0, 0, 0, 0 },
   3272     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3273     & ifmt_m_swwr, { 0x4c000006 }
   3274   },
   3275 /* swwru $rs,$rt */
   3276   {
   3277     { 0, 0, 0, 0 },
   3278     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3279     & ifmt_m_swwru, { 0x4c000007 }
   3280   },
   3281 /* tstod $rs */
   3282   {
   3283     { 0, 0, 0, 0 },
   3284     { { MNEM, ' ', OP (RS), 0 } },
   3285     & ifmt_m_tstod, { 0x4c000027 }
   3286   },
   3287 /* unlk $rt */
   3288   {
   3289     { 0, 0, 0, 0 },
   3290     { { MNEM, ' ', OP (RT), 0 } },
   3291     & ifmt_m_unlk, { 0x4c000003 }
   3292   },
   3293 /* wba $rs,$rt */
   3294   {
   3295     { 0, 0, 0, 0 },
   3296     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3297     & ifmt_m_wba, { 0x4c000010 }
   3298   },
   3299 /* wbac $rs,$rt */
   3300   {
   3301     { 0, 0, 0, 0 },
   3302     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3303     & ifmt_m_wbac, { 0x4c000012 }
   3304   },
   3305 /* wbau $rs,$rt */
   3306   {
   3307     { 0, 0, 0, 0 },
   3308     { { MNEM, ' ', OP (RS), ',', OP (RT), 0 } },
   3309     & ifmt_m_wbau, { 0x4c000011 }
   3310   },
   3311 /* wbi $rs,$rt,$bytecount */
   3312   {
   3313     { 0, 0, 0, 0 },
   3314     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   3315     & ifmt_m_wbi, { 0x4c000600 }
   3316   },
   3317 /* wbic $rs,$rt,$bytecount */
   3318   {
   3319     { 0, 0, 0, 0 },
   3320     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   3321     & ifmt_m_wbic, { 0x4c000500 }
   3322   },
   3323 /* wbiu $rs,$rt,$bytecount */
   3324   {
   3325     { 0, 0, 0, 0 },
   3326     { { MNEM, ' ', OP (RS), ',', OP (RT), ',', OP (BYTECOUNT), 0 } },
   3327     & ifmt_m_wbiu, { 0x4c000700 }
   3328   },
   3329 };
   3330 
   3331 #undef A
   3332 #undef OPERAND
   3333 #undef MNEM
   3334 #undef OP
   3335 
   3336 #ifndef CGEN_ASM_HASH_P
   3337 #define CGEN_ASM_HASH_P(insn) 1
   3338 #endif
   3339 
   3340 #ifndef CGEN_DIS_HASH_P
   3341 #define CGEN_DIS_HASH_P(insn) 1
   3342 #endif
   3343 
   3344 /* Return non-zero if INSN is to be added to the hash table.
   3345    Targets are free to override CGEN_{ASM,DIS}_HASH_P in the .opc file.  */
   3346 
   3347 static int
   3348 asm_hash_insn_p (const CGEN_INSN *insn ATTRIBUTE_UNUSED)
   3349 {
   3350   return CGEN_ASM_HASH_P (insn);
   3351 }
   3352 
   3353 static int
   3354 dis_hash_insn_p (const CGEN_INSN *insn)
   3355 {
   3356   /* If building the hash table and the NO-DIS attribute is present,
   3357      ignore.  */
   3358   if (CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_NO_DIS))
   3359     return 0;
   3360   return CGEN_DIS_HASH_P (insn);
   3361 }
   3362 
   3363 #ifndef CGEN_ASM_HASH
   3364 #define CGEN_ASM_HASH_SIZE 127
   3365 #ifdef CGEN_MNEMONIC_OPERANDS
   3366 #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE)
   3367 #else
   3368 #define CGEN_ASM_HASH(mnem) (*(unsigned char *) (mnem) % CGEN_ASM_HASH_SIZE) /*FIXME*/
   3369 #endif
   3370 #endif
   3371 
   3372 /* It doesn't make much sense to provide a default here,
   3373    but while this is under development we do.
   3374    BUFFER is a pointer to the bytes of the insn, target order.
   3375    VALUE is the first base_insn_bitsize bits as an int in host order.  */
   3376 
   3377 #ifndef CGEN_DIS_HASH
   3378 #define CGEN_DIS_HASH_SIZE 256
   3379 #define CGEN_DIS_HASH(buf, value) (*(unsigned char *) (buf))
   3380 #endif
   3381 
   3382 /* The result is the hash value of the insn.
   3383    Targets are free to override CGEN_{ASM,DIS}_HASH in the .opc file.  */
   3384 
   3385 static unsigned int
   3386 asm_hash_insn (const char *mnem)
   3387 {
   3388   return CGEN_ASM_HASH (mnem);
   3389 }
   3390 
   3391 /* BUF is a pointer to the bytes of the insn, target order.
   3392    VALUE is the first base_insn_bitsize bits as an int in host order.  */
   3393 
   3394 static unsigned int
   3395 dis_hash_insn (const char *buf ATTRIBUTE_UNUSED,
   3396 		     CGEN_INSN_INT value ATTRIBUTE_UNUSED)
   3397 {
   3398   return CGEN_DIS_HASH (buf, value);
   3399 }
   3400 
   3401 /* Set the recorded length of the insn in the CGEN_FIELDS struct.  */
   3402 
   3403 static void
   3404 set_fields_bitsize (CGEN_FIELDS *fields, int size)
   3405 {
   3406   CGEN_FIELDS_BITSIZE (fields) = size;
   3407 }
   3408 
   3409 /* Function to call before using the operand instance table.
   3410    This plugs the opcode entries and macro instructions into the cpu table.  */
   3411 
   3412 void
   3413 iq2000_cgen_init_opcode_table (CGEN_CPU_DESC cd)
   3414 {
   3415   int i;
   3416   int num_macros = (sizeof (iq2000_cgen_macro_insn_table) /
   3417 		    sizeof (iq2000_cgen_macro_insn_table[0]));
   3418   const CGEN_IBASE *ib = & iq2000_cgen_macro_insn_table[0];
   3419   const CGEN_OPCODE *oc = & iq2000_cgen_macro_insn_opcode_table[0];
   3420   CGEN_INSN *insns = xmalloc (num_macros * sizeof (CGEN_INSN));
   3421 
   3422   /* This test has been added to avoid a warning generated
   3423      if memset is called with a third argument of value zero.  */
   3424   if (num_macros >= 1)
   3425     memset (insns, 0, num_macros * sizeof (CGEN_INSN));
   3426   for (i = 0; i < num_macros; ++i)
   3427     {
   3428       insns[i].base = &ib[i];
   3429       insns[i].opcode = &oc[i];
   3430       iq2000_cgen_build_insn_regex (& insns[i]);
   3431     }
   3432   cd->macro_insn_table.init_entries = insns;
   3433   cd->macro_insn_table.entry_size = sizeof (CGEN_IBASE);
   3434   cd->macro_insn_table.num_init_entries = num_macros;
   3435 
   3436   oc = & iq2000_cgen_insn_opcode_table[0];
   3437   insns = (CGEN_INSN *) cd->insn_table.init_entries;
   3438   for (i = 0; i < MAX_INSNS; ++i)
   3439     {
   3440       insns[i].opcode = &oc[i];
   3441       iq2000_cgen_build_insn_regex (& insns[i]);
   3442     }
   3443 
   3444   cd->sizeof_fields = sizeof (CGEN_FIELDS);
   3445   cd->set_fields_bitsize = set_fields_bitsize;
   3446 
   3447   cd->asm_hash_p = asm_hash_insn_p;
   3448   cd->asm_hash = asm_hash_insn;
   3449   cd->asm_hash_size = CGEN_ASM_HASH_SIZE;
   3450 
   3451   cd->dis_hash_p = dis_hash_insn_p;
   3452   cd->dis_hash = dis_hash_insn;
   3453   cd->dis_hash_size = CGEN_DIS_HASH_SIZE;
   3454 }
   3455