[BACK]Return to iq2000-opc.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / gpl3 / binutils.old / dist / opcodes

Annotation of src/external/gpl3/binutils.old/dist/opcodes/iq2000-opc.c, Revision 1.1.1.2

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

CVSweb <webmaster@jp.NetBSD.org>