Coverage Report

Created: 2025-06-24 06:45

/src/binutils-gdb/opcodes/mips-opc.c
Line
Count
Source (jump to first uncovered line)
1
/* mips-opc.c -- MIPS opcode list.
2
   Copyright (C) 1993-2025 Free Software Foundation, Inc.
3
   Contributed by Ralph Campbell and OSF
4
   Commented and modified by Ian Lance Taylor, Cygnus Support
5
   Extended for MIPS32 support by Anders Norlander, and by SiByte, Inc.
6
   MIPS-3D, MDMX, and MIPS32 Release 2 support added by Broadcom
7
   Corporation (SiByte).
8
9
   This file is part of the GNU opcodes library.
10
11
   This library is free software; you can redistribute it and/or modify
12
   it under the terms of the GNU General Public License as published by
13
   the Free Software Foundation; either version 3, or (at your option)
14
   any later version.
15
16
   It is distributed in the hope that it will be useful, but WITHOUT
17
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
18
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
19
   License for more details.
20
21
   You should have received a copy of the GNU General Public License
22
   along with this file; see the file COPYING.  If not, write to the
23
   Free Software Foundation, 51 Franklin Street - Fifth Floor, Boston,
24
   MA 02110-1301, USA.  */
25
26
#include "sysdep.h"
27
#include <stdio.h>
28
#include "opcode/mips.h"
29
#include "mips-formats.h"
30
31
/* The 4-bit XYZW mask used in some VU0 instructions.  */
32
const struct mips_operand mips_vu0_channel_mask = { OP_VU0_SUFFIX, 4, 21 };
33
34
static unsigned char reg_0_map[] = { 0 };
35
36
/* Return the mips_operand structure for the operand at the beginning of P.  */
37
38
const struct mips_operand *
39
decode_mips_operand (const char *p)
40
5.80M
{
41
5.80M
  switch (p[0])
42
5.80M
    {
43
63.1k
    case '-':
44
63.1k
      switch (p[1])
45
63.1k
  {
46
0
  case 'a': INT_ADJ (19, 0, 262143, 2, false);
47
0
  case 'b': INT_ADJ (18, 0, 131071, 3, false);
48
1.87k
  case 'd': SPECIAL (0, 0, REPEAT_DEST_REG);
49
578
  case 'm': SPECIAL (20, 6, SAVE_RESTORE_LIST);
50
26.3k
  case 's': SPECIAL (5, 21, NON_ZERO_REG);
51
1.96k
  case 't': SPECIAL (5, 16, NON_ZERO_REG);
52
3.96k
  case 'u': PREV_CHECK (5, 16, true, false, false, false);
53
9.32k
  case 'v': PREV_CHECK (5, 16, true, true, false, false);
54
14.1k
  case 'w': PREV_CHECK (5, 16, false, true, true, true);
55
2.26k
  case 'x': PREV_CHECK (5, 21, true, false, false, false);
56
0
  case 'y': PREV_CHECK (5, 21, false, true, false, false);
57
2.01k
  case 'A': PCREL (19, 0, true, 2, 2, false, false);
58
738
  case 'B': PCREL (18, 0, true, 3, 3, false, false);
59
63.1k
  }
60
0
      break;
61
62
91.5k
    case '+':
63
91.5k
      switch (p[1])
64
91.5k
  {
65
418
  case '1': HINT (5, 6);
66
0
  case '2': HINT (10, 6);
67
0
  case '3': HINT (15, 6);
68
0
  case '4': HINT (20, 6);
69
2.37k
  case '5': REG (5, 6, VF);
70
4.07k
  case '6': REG (5, 11, VF);
71
4.51k
  case '7': REG (5, 16, VF);
72
136
  case '8': REG (5, 6, VI);
73
386
  case '9': REG (5, 11, VI);
74
436
  case '0': REG (5, 16, VI);
75
76
1.23k
  case 'A': BIT (5, 6, 0);   /* (0 .. 31) */
77
298
  case 'B': MSB (5, 11, 1, true, 32); /* (1 .. 32), 32-bit op */
78
882
  case 'C': MSB (5, 11, 1, false, 32); /* (1 .. 32), 32-bit op */
79
44
  case 'E': BIT (5, 6, 32);   /* (32 .. 63) */
80
46
  case 'F': MSB (5, 11, 33, true, 64); /* (33 .. 64), 64-bit op */
81
34
  case 'G': MSB (5, 11, 33, false, 64); /* (33 .. 64), 64-bit op */
82
16
  case 'H': MSB (5, 11, 1, false, 64); /* (1 .. 32), 64-bit op */
83
0
  case 'I': UINT (2, 6);
84
0
  case 'J': HINT (10, 11);
85
6.30k
  case 'K': SPECIAL (4, 21, VU0_MATCH_SUFFIX);
86
916
  case 'L': SPECIAL (2, 21, VU0_SUFFIX);
87
524
  case 'M': SPECIAL (2, 23, VU0_SUFFIX);
88
2.29k
  case 'N': SPECIAL (2, 0, VU0_MATCH_SUFFIX);
89
474
  case 'O': UINT (3, 6);
90
0
  case 'P': BIT (5, 6, 32);   /* (32 .. 63) */
91
16
  case 'Q': SINT (10, 6);
92
0
  case 'R': SPECIAL (0, 0, PC);
93
132
  case 'S': MSB (5, 11, 0, false, 63); /* (0 .. 31), 64-bit op */
94
40
  case 'T': INT_ADJ (10, 16, 511, 0, false); /* (-512 .. 511) << 0 */
95
64
  case 'U': INT_ADJ (10, 16, 511, 1, false); /* (-512 .. 511) << 1 */
96
42
  case 'V': INT_ADJ (10, 16, 511, 2, false); /* (-512 .. 511) << 2 */
97
32
  case 'W': INT_ADJ (10, 16, 511, 3, false); /* (-512 .. 511) << 3 */
98
0
  case 'X': BIT (5, 16, 32);   /* (32 .. 63) */
99
62
  case 'Z': REG (5, 0, FP);
100
101
0
  case 'a': SINT (8, 6);
102
18
  case 'b': SINT (8, 3);
103
64
  case 'c': INT_ADJ (9, 6, 255, 4, false); /* (-256 .. 255) << 4 */
104
1.22k
  case 'd': REG (5, 6, MSA);
105
1.05k
  case 'e': REG (5, 11, MSA);
106
6
  case 'f': INT_ADJ (15, 6, 32767, 3, true);
107
2
  case 'g': SINT (5, 6);
108
668
  case 'h': REG (5, 16, MSA);
109
42.6k
  case 'i': JALX (26, 0, 2);
110
172
  case 'j': SINT (9, 7);
111
2
  case 'k': REG (5, 6, GP);
112
8
  case 'l': REG (5, 6, MSA_CTRL);
113
494
  case 'm': REG (0, 0, R5900_ACC);
114
0
  case 'n': REG (5, 11, MSA_CTRL);
115
0
  case 'o': SPECIAL (4, 16, IMM_INDEX);
116
220
  case 'p': BIT (5, 6, 0);   /* (0 .. 31), 32-bit op */
117
596
  case 'q': REG (0, 0, R5900_Q);
118
388
  case 'r': REG (0, 0, R5900_R);
119
88
  case 's': MSB (5, 11, 0, false, 31); /* (0 .. 31) */
120
8
  case 'u': SPECIAL (3, 16, IMM_INDEX);
121
2
  case 'v': SPECIAL (2, 16, IMM_INDEX);
122
0
  case 'w': SPECIAL (1, 16, IMM_INDEX);
123
742
  case 'x': BIT (5, 16, 0);   /* (0 .. 31) */
124
460
  case 'y': REG (0, 0, R5900_I);
125
2
  case 'z': REG (5, 0, GP);
126
127
412
  case '~': BIT (2, 6, 1);   /* (1 .. 4) */
128
0
  case '!': BIT (3, 16, 0);   /* (0 .. 7) */
129
0
  case '@': BIT (4, 16, 0);   /* (0 .. 15) */
130
18
  case '#': BIT (6, 16, 0);   /* (0 .. 63) */
131
342
  case '$': UINT (5, 16);     /* (0 .. 31) */
132
24
  case '%': SINT (5, 16);     /* (-16 .. 15) */
133
0
  case '^': SINT (10, 11);   /* (-512 .. 511) */
134
2
  case '&': SPECIAL (0, 0, IMM_INDEX);
135
38
  case '*': SPECIAL (5, 16, REG_INDEX);
136
314
  case '|': BIT (8, 16, 0);   /* (0 .. 255) */
137
244
  case ':': SINT (11, 0);
138
2.72k
  case '\'': BRANCH (26, 0, 2);
139
6.55k
  case '"': BRANCH (21, 0, 2);
140
6.25k
  case ';': SPECIAL (10, 16, SAME_RS_RT);
141
0
  case '\\': BIT (2, 8, 0);    /* (0 .. 3) */
142
91.5k
  }
143
0
      break;
144
145
175k
    case '<': BIT (5, 6, 0);     /* (0 .. 31) */
146
0
    case '>': BIT (5, 6, 32);     /* (32 .. 63) */
147
208
    case '%': UINT (3, 21);
148
196
    case ':': SINT (7, 19);
149
290
    case '\'': HINT (6, 16);
150
270
    case '@': SINT (10, 16);
151
246
    case '!': UINT (1, 5);
152
246
    case '$': UINT (1, 4);
153
354
    case '*': REG (2, 18, ACC);
154
322
    case '&': REG (2, 13, ACC);
155
1.54k
    case '~': SINT (12, 0);
156
1.54k
    case '\\': BIT (3, 12, 0);     /* (0 .. 7) */
157
158
194
    case '0': SINT (6, 20);
159
444
    case '1': HINT (5, 6);
160
226
    case '2': HINT (2, 11);
161
200
    case '3': HINT (3, 21);
162
212
    case '4': HINT (4, 21);
163
214
    case '5': HINT (8, 16);
164
254
    case '6': HINT (5, 21);
165
1.57k
    case '7': REG (2, 11, ACC);
166
196
    case '8': HINT (6, 11);
167
794
    case '9': REG (2, 21, ACC);
168
169
9.63k
    case 'B': HINT (20, 6);
170
27.7k
    case 'C': HINT (25, 0);
171
5.89k
    case 'D': REG (5, 6, FP);
172
90.6k
    case 'E': REG (5, 16, COPRO);
173
4.91k
    case 'G': REG (5, 11, COPRO);
174
1.05k
    case 'H': UINT (3, 0);
175
304
    case 'J': HINT (19, 6);
176
476
    case 'K': REG (5, 11, HW);
177
426
    case 'M': REG (3, 8, CCC);
178
7.39k
    case 'N': REG (3, 18, CCC);
179
394
    case 'O': UINT (3, 21);
180
516
    case 'P': SPECIAL (5, 1, PERF_REG);
181
5.24k
    case 'Q': SPECIAL (10, 16, MDMX_IMM_REG);
182
1.45k
    case 'R': REG (5, 21, FP);
183
5.49k
    case 'S': REG (5, 11, FP);
184
44.2k
    case 'T': REG (5, 16, FP);
185
2.66k
    case 'U': SPECIAL (10, 11, CLO_CLZ_DEST);
186
1.13k
    case 'V': OPTIONAL_REG (5, 11, FP);
187
0
    case 'W': OPTIONAL_REG (5, 16, FP);
188
3.46k
    case 'X': REG (5, 6, VEC);
189
3.58k
    case 'Y': REG (5, 11, VEC);
190
494
    case 'Z': REG (5, 16, VEC);
191
192
74.4k
    case 'a': JUMP (26, 0, 2);
193
850k
    case 'b': REG (5, 21, GP);
194
7.20k
    case 'c': HINT (10, 16);
195
356k
    case 'd': REG (5, 11, GP);
196
0
    case 'e': UINT (3, 22)
197
736
    case 'g': REG (5, 11, CONTROL);
198
294
    case 'h': HINT (5, 11);
199
90.3k
    case 'i': HINT (16, 0);
200
308k
    case 'j': SINT (16, 0);
201
7.15k
    case 'k': HINT (5, 16);
202
848k
    case 'o': SINT (16, 0);
203
255k
    case 'p': BRANCH (16, 0, 2);
204
27.8k
    case 'q': HINT (10, 6);
205
353k
    case 'r': OPTIONAL_REG (5, 21, GP);
206
463k
    case 's': REG (5, 21, GP);
207
1.33M
    case 't': REG (5, 16, GP);
208
20.6k
    case 'u': HINT (16, 0);
209
52.4k
    case 'v': OPTIONAL_REG (5, 21, GP);
210
177k
    case 'w': OPTIONAL_REG (5, 16, GP);
211
0
    case 'x': REG (0, 0, GP);
212
210
    case 'y': REG (5, 16, CONTROL);
213
13.2k
    case 'z': MAPPED_REG (0, 0, GP, reg_0_map);
214
5.80M
    }
215
0
  return 0;
216
5.80M
}
217
218
/* Short hand so the lines aren't too long.  */
219
220
#define AL  INSN2_ALIAS
221
222
#define LC  INSN_LOAD_COPROC
223
#define UBD     INSN_UNCOND_BRANCH_DELAY
224
#define CBD INSN_COND_BRANCH_DELAY
225
#define CM  INSN_COPROC_MOVE
226
#define CLD (INSN_LOAD_MEMORY|INSN_COPROC_MEMORY_DELAY)
227
#define CBL INSN_COND_BRANCH_LIKELY
228
#define NODS  INSN_NO_DELAY_SLOT
229
#define TRAP  INSN_NO_DELAY_SLOT
230
#define LM  INSN_LOAD_MEMORY
231
#define SM  INSN_STORE_MEMORY
232
233
#define WR_1  INSN_WRITE_1
234
#define WR_2  INSN_WRITE_2
235
#define RD_1  INSN_READ_1
236
#define RD_2  INSN_READ_2
237
#define RD_3  INSN_READ_3
238
#define RD_4  INSN_READ_4
239
#define RD_31 INSN2_READ_GPR_31
240
#define MOD_1 (WR_1|RD_1)
241
#define MOD_2 (WR_2|RD_2)
242
243
#define WR_31   INSN_WRITE_GPR_31
244
#define WR_CC INSN_WRITE_COND_CODE
245
#define RD_CC INSN_READ_COND_CODE
246
#define RD_C0   INSN_COP
247
#define RD_C1 INSN_COP
248
#define RD_C2   INSN_COP
249
#define RD_C3   INSN_COP
250
#define WR_C0   INSN_COP
251
#define WR_C1 INSN_COP
252
#define WR_C2   INSN_COP
253
#define WR_C3   INSN_COP
254
#define UDI INSN_UDI
255
#define CP  INSN_COP
256
257
#define WR_HI INSN_WRITE_HI
258
#define RD_HI INSN_READ_HI
259
#define MOD_HI  WR_HI|RD_HI
260
261
#define WR_LO INSN_WRITE_LO
262
#define RD_LO INSN_READ_LO
263
#define MOD_LO  WR_LO|RD_LO
264
265
#define WR_HILO WR_HI|WR_LO
266
#define RD_HILO RD_HI|RD_LO
267
#define MOD_HILO WR_HILO|RD_HILO
268
269
#define RD_SP INSN2_READ_SP
270
#define WR_SP INSN2_WRITE_SP
271
#define MOD_SP  (RD_SP|WR_SP)
272
273
#define IS_M    INSN_MULT
274
275
#define WR_MACC INSN2_WRITE_MDMX_ACC
276
#define RD_MACC INSN2_READ_MDMX_ACC
277
278
#define RD_pc   INSN2_READ_PC
279
#define FS      INSN2_FORBIDDEN_SLOT
280
281
#define I1  INSN_ISA1
282
#define I2  INSN_ISA2
283
#define I3  INSN_ISA3
284
#define I4  INSN_ISA4
285
#define I5  INSN_ISA5
286
#define I32 INSN_ISA32
287
#define I64     INSN_ISA64
288
#define I33 INSN_ISA32R2
289
#define I34 INSN_ISA32R3
290
#define I36 INSN_ISA32R5
291
#define I37 INSN_ISA32R6
292
#define I65 INSN_ISA64R2
293
#define I66 INSN_ISA64R3
294
#define I68 INSN_ISA64R5
295
#define I69 INSN_ISA64R6
296
#define I3_32   INSN_ISA3_32
297
#define I3_33   INSN_ISA3_32R2
298
#define I4_32   INSN_ISA4_32
299
#define I4_33   INSN_ISA4_32R2
300
#define I5_33   INSN_ISA5_32R2
301
302
/* MIPS64 MIPS-3D ASE support.  */
303
#define M3D     ASE_MIPS3D
304
305
/* MIPS32 SmartMIPS ASE support.  */
306
#define SMT ASE_SMARTMIPS
307
308
/* MIPS64 MDMX ASE support.  */
309
#define MX      ASE_MDMX
310
311
#define IL2E    (INSN_LOONGSON_2E)
312
#define IL2F    (INSN_LOONGSON_2F)
313
314
#define P3  INSN_4650
315
#define L1  INSN_4010
316
#define V1  (INSN_4100 | INSN_4111 | INSN_4120)
317
#define T3      INSN_3900
318
/* Emotion Engine MIPS r5900. */
319
#define EE      INSN_5900
320
#define M1  INSN_10000
321
#define ALX INSN_ALLEGREX
322
#define SB1     INSN_SB1
323
#define N411  INSN_4111
324
#define N412  INSN_4120
325
#define N5  (INSN_5400 | INSN_5500)
326
#define N54 INSN_5400
327
#define N55 INSN_5500
328
#define IOCT  (INSN_OCTEON | INSN_OCTEONP | INSN_OCTEON2 | INSN_OCTEON3)
329
#define IOCTP (INSN_OCTEONP | INSN_OCTEON2 | INSN_OCTEON3)
330
#define IOCT2 (INSN_OCTEON2 | INSN_OCTEON3)
331
#define IOCT3 INSN_OCTEON3
332
#define XLR     INSN_XLR
333
#define IAMR2 INSN_INTERAPTIV_MR2
334
#define IVIRT ASE_VIRT
335
#define IVIRT64 ASE_VIRT64
336
337
#define G1      (T3             \
338
                 |EE            \
339
                 )
340
341
#define G2      (T3             \
342
                 )
343
344
#define G3      EE
345
346
/* CPU without 64 bit FPU support (single float only). */
347
#define SF      (ALX            \
348
                 |EE            \
349
                 )
350
351
/* Support for 128 bit MMI instructions. */
352
#define MMI EE
353
354
/* 64 bit CPU with only 32 bit multiplication/division support. */
355
#define M32 EE
356
357
/* Support for VU0 Coprocessor instructions */
358
#define VU0 EE
359
#define VU0CH INSN2_VU0_CHANNEL_SUFFIX
360
361
/* MIPS DSP ASE support.
362
   NOTE:
363
   1. MIPS DSP ASE includes 4 accumulators ($ac0 - $ac3).  $ac0 is the pair
364
   of original HI and LO.  $ac1, $ac2 and $ac3 are new registers, and have
365
   the same structure as $ac0 (HI + LO).  For DSP instructions that write or
366
   read accumulators (that may be $ac0), we add WR_a (WR_HILO) or RD_a
367
   (RD_HILO) attributes, such that HILO dependencies are maintained
368
   conservatively.
369
370
   2. For some mul. instructions that use integer registers as destinations
371
   but destroy HI+LO as side-effect, we add WR_HILO to their attributes.
372
373
   3. MIPS DSP ASE includes a new DSP control register, which has 6 fields
374
   (ccond, outflag, EFI, c, scount, pos).  Many DSP instructions read or write
375
   certain fields of the DSP control register.  For simplicity, we decide not
376
   to track dependencies of these fields.
377
   However, "bposge32" is a branch instruction that depends on the "pos"
378
   field.  In order to make sure that GAS does not reorder DSP instructions
379
   that writes the "pos" field and "bposge32", we add DSP_VOLA
380
   (INSN_NO_DELAY_SLOT) attribute to those instructions that write the "pos"
381
   field.  */
382
383
#define WR_a  WR_HILO /* Write dsp accumulators (reuse WR_HILO)  */
384
#define RD_a  RD_HILO /* Read dsp accumulators (reuse RD_HILO)  */
385
#define MOD_a WR_a|RD_a
386
#define DSP_VOLA INSN_NO_DELAY_SLOT
387
#define D32 ASE_DSP
388
#define D33 ASE_DSPR2
389
#define D34 ASE_DSPR3
390
#define D64 ASE_DSP64
391
392
/* MIPS MT ASE support.  */
393
#define MT32  ASE_MT
394
395
/* MIPS MCU (MicroController) ASE support.  */
396
#define MC  ASE_MCU
397
398
/* MIPS Enhanced VA Scheme.  */
399
#define EVA ASE_EVA
400
#define EVAR6 ASE_EVA_R6
401
402
/* TLB invalidate instruction support.  */
403
#define TLBINV  ASE_EVA
404
405
/* MSA support.  */
406
#define MSA ASE_MSA
407
#define MSA64 ASE_MSA64
408
409
/* eXtended Physical Address (XPA) support.  */
410
#define XPA     ASE_XPA
411
#define XPAVZ ASE_XPA_VIRT
412
413
/* Cyclic redundancy check instruction (CRC) support.  */
414
#define CRC ASE_CRC
415
#define CRC64 ASE_CRC64
416
417
/* Global INValidate (GINV) support.  */
418
#define GINV  ASE_GINV
419
420
/* Loongson MultiMedia extensions Instructions (MMI) support.  */
421
#define LMMI  ASE_LOONGSON_MMI
422
423
/* Loongson Content Address Memory (CAM) support.  */
424
#define LCAM  ASE_LOONGSON_CAM
425
426
/* Loongson EXTensions (EXT) instructions support.  */
427
#define LEXT  ASE_LOONGSON_EXT
428
429
/* Loongson EXTensions R2 (EXT2) instructions support.  */
430
#define LEXT2 ASE_LOONGSON_EXT2
431
432
/* The order of overloaded instructions matters.  Label arguments and
433
   register arguments look the same. Instructions that can have either
434
   for arguments must apear in the correct order in this table for the
435
   assembler to pick the right one. In other words, entries with
436
   immediate operands must apear after the same instruction with
437
   registers.
438
439
   Because of the lookup algorithm used, entries with the same opcode
440
   name must be contiguous.
441
442
   Many instructions are short hand for other instructions (i.e., The
443
   jal <register> instruction is short for jalr <register>).  */
444
445
const struct mips_opcode mips_builtin_opcodes[] =
446
{
447
/* These instructions appear first so that the disassembler will find
448
   them first.  The assemblers uses a hash table based on the
449
   instruction name anyhow.  */
450
/* name,    args,   match,      mask, pinfo,            pinfo2,   membership, ase,  exclusions */
451
{"pref",    "k,+j(b)",  0x7c000035, 0xfc00007f, RD_3,     0,    I37,    0,  0 },
452
{"pref",    "k,o(b)", 0xcc000000, 0xfc000000, RD_3|LM,            0,    I4_32|G3, 0,  I37 },
453
{"pref",    "k,A(b)", 0,    (int) M_PREF_AB,  INSN_MACRO,   0,    I4_32|G3, 0,  0 },
454
{"prefx",   "h,t(b)", 0x4c00000f, 0xfc0007ff, RD_2|RD_3|FP_S|LM,    0,    I4_33,    0,  I37 },
455
{"nop",     "",   0x00000000, 0xffffffff, 0,                AL,   I1,   0,  0 }, /* sll */
456
{"ssnop",   "",   0x00000040, 0xffffffff, 0,                AL,   I1,   0,  0 }, /* sll */
457
{"ehb",     "",   0x000000c0, 0xffffffff, 0,                AL,   I1,   0,  0 }, /* sll */
458
{"li",      "t,j",    0x24000000, 0xffe00000, WR_1,     AL,   I1,   0,  0 }, /* addiu */
459
{"li",      "t,i",    0x34000000, 0xffe00000, WR_1,     AL,   I1,   0,  0 }, /* ori */
460
{"li",      "t,I",    0,    (int) M_LI, INSN_MACRO,   0,    I1,   0,  0 },
461
{"move",    "d,s",    0,    (int) M_MOVE, INSN_MACRO,   0,    I1,   0,  0 },
462
{"move",    "d,s",    0x00000025, 0xfc1f07ff, WR_1|RD_2,    AL,   I1,   0,  0 },/* or */
463
{"move",    "d,s",    0x0000002d, 0xfc1f07ff, WR_1|RD_2,    AL,   I3,   0,  0 },/* daddu */
464
{"move",    "d,s",    0x00000021, 0xfc1f07ff, WR_1|RD_2,    AL,   I1,   0,  0 },/* addu */
465
{"b",     "p",    0x10000000, 0xffff0000, UBD,      AL,   I1,   0,  0 },/* beq 0,0 */
466
{"b",     "p",    0x04010000, 0xffff0000, UBD,      AL,   I1,   0,  0 },/* bgez 0 */
467
{"bal",     "p",    0x04110000, 0xffff0000, WR_31|UBD,    AL,   I1,   0,  I37 }, /* bgezal 0 */
468
{"bal",     "p",    0x04110000, 0xffff0000, WR_31|UBD,    0,    I37,    0,  0 },
469
{"bc",      "+'",   0xc8000000, 0xfc000000, NODS,     0,    I37,    0,  0 },
470
{"balc",    "+'",   0xe8000000, 0xfc000000, WR_31|NODS,   0,    I37,    0,  0 },
471
{"lapc",    "s,-A",   0xec000000, 0xfc180000, WR_1,     RD_pc,    I37,    0,  0 },
472
{"la",      "t,A(b)", 0,    (int) M_LA_AB,  INSN_MACRO,   0,    I1,   0,  0 },
473
474
/* Loongson specific instructions.  Loongson gs464 (aka loongson3a) redefines the Coprocessor 2
475
   instructions.  Put them here so that disassembler will find them first.
476
   The assemblers uses a hash table based on the instruction name anyhow.  */
477
{"campi",   "d,s",    0x70000075, 0xfc1f07ff, WR_1|RD_2,    0,    0,    LCAM, 0 },
478
{"campv",   "d,s",    0x70000035, 0xfc1f07ff, WR_1|RD_2,    0,    0,    LCAM, 0 },
479
{"camwi",   "d,s,t",  0x700000b5, 0xfc0007ff, RD_1|RD_2|RD_3,   0,    0,    LCAM, 0 },
480
{"ramri",   "d,s",    0x700000f5, 0xfc1f07ff, WR_1|RD_2,    0,    0,    LCAM, 0 },
481
{"gsle",    "s,t",    0x70000026, 0xfc00ffff, RD_1|RD_2,    0,    0,    LEXT, 0 },
482
{"gsgt",    "s,t",    0x70000027, 0xfc00ffff, RD_1|RD_2,    0,    0,    LEXT, 0 },
483
{"gslble",    "t,b,d",  0xc8000010, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
484
{"gslbgt",    "t,b,d",  0xc8000011, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
485
{"gslhle",    "t,b,d",  0xc8000012, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
486
{"gslhgt",    "t,b,d",  0xc8000013, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
487
{"gslwle",    "t,b,d",  0xc8000014, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
488
{"gslwgt",    "t,b,d",  0xc8000015, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
489
{"gsldle",    "t,b,d",  0xc8000016, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
490
{"gsldgt",    "t,b,d",  0xc8000017, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
491
{"gssble",    "t,b,d",  0xe8000010, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
492
{"gssbgt",    "t,b,d",  0xe8000011, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
493
{"gsshle",    "t,b,d",  0xe8000012, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
494
{"gsshgt",    "t,b,d",  0xe8000013, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
495
{"gsswle",    "t,b,d",  0xe8000014, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
496
{"gsswgt",    "t,b,d",  0xe8000015, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
497
{"gssdle",    "t,b,d",  0xe8000016, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
498
{"gssdgt",    "t,b,d",  0xe8000017, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
499
{"gslwlec1",    "T,b,d",  0xc8000018, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
500
{"gslwgtc1",    "T,b,d",  0xc8000019, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
501
{"gsldlec1",    "T,b,d",  0xc800001a, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
502
{"gsldgtc1",    "T,b,d",  0xc800001b, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    0,    LEXT, 0 },
503
{"gsswlec1",    "T,b,d",  0xe800001c, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
504
{"gsswgtc1",    "T,b,d",  0xe800001d, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
505
{"gssdlec1",    "T,b,d",  0xe800001e, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
506
{"gssdgtc1",    "T,b,d",  0xe800001f, 0xfc0007ff, RD_1|RD_2|RD_3|SM,  0,    0,    LEXT, 0 },
507
{"gslwlc1",   "T,+a(b)",  0xc8000004, 0xfc00c03f, WR_1|RD_3|LM,   0,    0,    LEXT, 0 },
508
{"gslwrc1",   "T,+a(b)",  0xc8000005, 0xfc00c03f, WR_1|RD_3|LM,   0,    0,    LEXT, 0 },
509
{"gsldlc1",   "T,+a(b)",  0xc8000006, 0xfc00c03f, WR_1|RD_3|LM,   0,    0,    LEXT, 0 },
510
{"gsldrc1",   "T,+a(b)",  0xc8000007, 0xfc00c03f, WR_1|RD_3|LM,   0,    0,    LEXT, 0 },
511
{"gsswlc1",   "T,+a(b)",  0xe8000004, 0xfc00c03f, RD_1|RD_3|SM,   0,    0,    LEXT, 0 },
512
{"gsswrc1",   "T,+a(b)",  0xe8000005, 0xfc00c03f, RD_1|RD_3|SM,   0,    0,    LEXT, 0 },
513
{"gssdlc1",   "T,+a(b)",  0xe8000006, 0xfc00c03f, RD_1|RD_3|SM,   0,    0,    LEXT, 0 },
514
{"gssdrc1",   "T,+a(b)",  0xe8000007, 0xfc00c03f, RD_1|RD_3|SM,   0,    0,    LEXT, 0 },
515
{"gslbx",   "t,+b(b,d)",  0xd8000000, 0xfc000007, WR_1|RD_3|RD_4|LM,  0,    0,    LEXT, 0 },
516
{"gslhx",   "t,+b(b,d)",  0xd8000001, 0xfc000007, WR_1|RD_3|RD_4|LM,  0,    0,    LEXT, 0 },
517
{"gslwx",   "t,+b(b,d)",  0xd8000002, 0xfc000007, WR_1|RD_3|RD_4|LM,  0,    0,    LEXT, 0 },
518
{"gsldx",   "t,+b(b,d)",  0xd8000003, 0xfc000007, WR_1|RD_3|RD_4|LM,  0,    0,    LEXT, 0 },
519
{"gssbx",   "t,+b(b,d)",  0xf8000000, 0xfc000007, RD_1|RD_3|RD_4|SM,  0,    0,    LEXT, 0 },
520
{"gsshx",   "t,+b(b,d)",  0xf8000001, 0xfc000007, RD_1|RD_3|RD_4|SM,  0,    0,    LEXT, 0 },
521
{"gsswx",   "t,+b(b,d)",  0xf8000002, 0xfc000007, RD_1|RD_3|RD_4|SM,  0,    0,    LEXT, 0 },
522
{"gssdx",   "t,+b(b,d)",  0xf8000003, 0xfc000007, RD_1|RD_3|RD_4|SM,  0,    0,    LEXT, 0 },
523
{"gslwxc1",   "T,+b(b,d)",  0xd8000006, 0xfc000007, WR_1|RD_3|RD_4|LM,  0,    0,    LEXT, 0 },
524
{"gsldxc1",   "T,+b(b,d)",  0xd8000007, 0xfc000007, WR_1|RD_3|RD_4|LM,  0,    0,    LEXT, 0 },
525
{"gsswxc1",   "T,+b(b,d)",  0xf8000006, 0xfc000007, RD_1|RD_3|RD_4|SM,  0,    0,    LEXT, 0 },
526
{"gssdxc1",   "T,+b(b,d)",  0xf8000007, 0xfc000007, RD_1|RD_3|RD_4|SM,  0,    0,    LEXT, 0 },
527
{"gslq",    "+z,t,+c(b)", 0xc8000020, 0xfc008020, WR_1|WR_2|RD_4|LM,  0,    0,    LEXT, 0 },
528
{"gssq",    "+z,t,+c(b)", 0xe8000020, 0xfc008020, RD_1|RD_2|RD_4|SM,  0,    0,    LEXT, 0 },
529
{"gslqc1",    "+Z,T,+c(b)", 0xc8008020, 0xfc008020, WR_1|WR_2|RD_4|LM,  0,    0,    LEXT, 0 },
530
{"gssqc1",    "+Z,T,+c(b)", 0xe8008020, 0xfc008020, RD_1|RD_2|RD_4|SM,  0,    0,    LEXT, 0 },
531
{"cto",     "d,s",    0x70000062, 0xfc1f07ff, WR_1|RD_2,    0,    0,    LEXT2,  0 },
532
{"ctz",     "d,s",    0x70000022, 0xfc1f07ff, WR_1|RD_2,    0,    0,    LEXT2,  0 },
533
{"dcto",    "d,s",    0x700000e2, 0xfc1f07ff, WR_1|RD_2,    0,    0,    LEXT2,  0 },
534
{"dctz",    "d,s",    0x700000a2, 0xfc1f07ff, WR_1|RD_2,    0,    0,    LEXT2,  0 },
535
536
/* R5900 VU0 Macromode instructions. */
537
{"vabs",    "+7+K,+6+K",    0x4a0001fd, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
538
{"vadd",    "+5+K,+6+K,+7+K", 0x4a000028, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
539
{"vaddi",   "+5+K,+6+K,+y",   0x4a000022, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
540
{"vaddq",   "+5+K,+6+K,+q",   0x4a000020, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
541
{"vaddw",   "+5+K,+6+K,+7+N", 0x4a000003, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
542
{"vaddx",   "+5+K,+6+K,+7+N", 0x4a000000, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
543
{"vaddy",   "+5+K,+6+K,+7+N", 0x4a000001, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
544
{"vaddz",   "+5+K,+6+K,+7+N", 0x4a000002, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
545
{"vadda",   "+m+K,+7+K,+6+K", 0x4a0002bc, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
546
{"vaddai",    "+m+K,+6+K,+y",   0x4a00023e, 0xfe1f07ff, CP,   VU0CH,    VU0,    0,  0 },
547
{"vaddaq",    "+m+K,+6+K,+q",   0x4a00023c, 0xfe1f07ff, CP,   VU0CH,    VU0,    0,  0 },
548
{"vaddaw",    "+m+K,+6+K,+7+N", 0x4a00003f, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
549
{"vaddax",    "+m+K,+6+K,+7+N", 0x4a00003c, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
550
{"vadday",    "+m+K,+6+K,+7+N", 0x4a00003d, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
551
{"vaddaz",    "+m+K,+6+K,+7+N", 0x4a00003e, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
552
{"vcallms",   "+f",     0x4a000038, 0xffe0003f, CP,   0,    VU0,    0,  0 },
553
{"vcallmsr",    "+9",     0x4a000039, 0xffff07ff, CP,   0,    VU0,    0,  0 },
554
{"vclipw.xyz",    "+6+K,+7+N",    0x4bc001ff, 0xffe007ff, CP,   0,    VU0,    0,  0 },
555
{"vclipw",    "+6+K,+7+N",    0x4bc001ff, 0xffe007ff, CP,   0,    VU0,    0,  0 },
556
{"vdiv",    "+q,+6+L,+7+M",   0x4a0003bc, 0xfe0007ff, CP,   0,    VU0,    0,  0 },
557
{"vftoi0",    "+7+K,+6+K",    0x4a00017c, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
558
{"vftoi4",    "+7+K,+6+K",    0x4a00017d, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
559
{"vftoi12",   "+7+K,+6+K",    0x4a00017e, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
560
{"vftoi15",   "+7+K,+6+K",    0x4a00017f, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
561
{"viadd",   "+8,+9,+0",   0x4a000030, 0xffe0003f, CP,   0,    VU0,    0,  0 },
562
{"viaddi",    "+0,+9,+g",   0x4a000032, 0xffe0003f, CP,   0,    VU0,    0,  0 },
563
{"viand",   "+8,+9,+0",   0x4a000034, 0xffe0003f, CP,   0,    VU0,    0,  0 },
564
{"vilwr.w",   "+0,(+9)",    0x4a2003fe, 0xffe007ff, CP,   0,    VU0,    0,  0 },
565
{"vilwr.x",   "+0,(+9)",    0x4b0003fe, 0xffe007ff, CP,   0,    VU0,    0,  0 },
566
{"vilwr.y",   "+0,(+9)",    0x4a8003fe, 0xffe007ff, CP,   0,    VU0,    0,  0 },
567
{"vilwr.z",   "+0,(+9)",    0x4a4003fe, 0xffe007ff, CP,   0,    VU0,    0,  0 },
568
{"vior",    "+8,+9,+0",   0x4a000035, 0xffe0003f, CP,   0,    VU0,    0,  0 },
569
{"viswr.w",   "+0,(+9)",    0x4a2003ff, 0xffe007ff, CP,   0,    VU0,    0,  0 },
570
{"viswr.x",   "+0,(+9)",    0x4b0003ff, 0xffe007ff, CP,   0,    VU0,    0,  0 },
571
{"viswr.y",   "+0,(+9)",    0x4a8003ff, 0xffe007ff, CP,   0,    VU0,    0,  0 },
572
{"viswr.z",   "+0,(+9)",    0x4a4003ff, 0xffe007ff, CP,   0,    VU0,    0,  0 },
573
{"visub",   "+8,+9,+0",   0x4a000031, 0xffe0003f, CP,   0,    VU0,    0,  0 },
574
{"vitof0",    "+7+K,+6+K",    0x4a00013c, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
575
{"vitof4",    "+7+K,+6+K",    0x4a00013d, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
576
{"vitof12",   "+7+K,+6+K",    0x4a00013e, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
577
{"vitof15",   "+7+K,+6+K",    0x4a00013f, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
578
{"vlqd",    "+7+K,(#-+9)",    0x4a00037e, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
579
{"vlqi",    "+7+K,(+9#+)",    0x4a00037c, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
580
{"vmadd",   "+5+K,+6+K,+7+K", 0x4a000029, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
581
{"vmaddi",    "+5+K,+6+K,+y",   0x4a000023, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
582
{"vmaddq",    "+5+K,+6+K,+q",   0x4a000021, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
583
{"vmaddw",    "+5+K,+6+K,+7+N", 0x4a00000b, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
584
{"vmaddx",    "+5+K,+6+K,+7+N", 0x4a000008, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
585
{"vmaddy",    "+5+K,+6+K,+7+N", 0x4a000009, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
586
{"vmaddz",    "+5+K,+6+K,+7+N", 0x4a00000a, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
587
{"vmadda",    "+m+K,+6+K,+7+K", 0x4a0002bd, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
588
{"vmaddai",   "+m+K,+6+K,+y",   0x4a00023f, 0xfe1f07ff, CP,   VU0CH,    VU0,    0,  0 },
589
{"vmaddaq",   "+m+K,+6+K,+q",   0x4a00023d, 0xfe1f07ff, CP,   VU0CH,    VU0,    0,  0 },
590
{"vmaddaw",   "+m+K,+6+K,+7+N", 0x4a0000bf, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
591
{"vmaddax",   "+m+K,+6+K,+7+N", 0x4a0000bc, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
592
{"vmadday",   "+m+K,+6+K,+7+N", 0x4a0000bd, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
593
{"vmaddaz",   "+m+K,+6+K,+7+N", 0x4a0000be, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
594
{"vmax",    "+5+K,+6+K,+7+K", 0x4a00002b, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
595
{"vmaxi",   "+5+K,+6+K,+y",   0x4a00001d, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
596
{"vmaxw",   "+5+K,+6+K,+7+N", 0x4a000013, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
597
{"vmaxx",   "+5+K,+6+K,+7+N", 0x4a000010, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
598
{"vmaxy",   "+5+K,+6+K,+7+N", 0x4a000011, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
599
{"vmaxz",   "+5+K,+6+K,+7+N", 0x4a000012, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
600
{"vmfir",   "+7+K,+9",    0x4a0003fd, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
601
{"vmini",   "+5+K,+6+K,+7+K", 0x4a00002f, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
602
{"vminii",    "+5+K,+6+K,+y",   0x4a00001f, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
603
{"vminiw",    "+5+K,+6+K,+7+N", 0x4a000017, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
604
{"vminix",    "+5+K,+6+K,+7+N", 0x4a000014, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
605
{"vminiy",    "+5+K,+6+K,+7+N", 0x4a000015, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
606
{"vminiz",    "+5+K,+6+K,+7+N", 0x4a000016, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
607
{"vmove",   "+7+K,+6+K",    0x4a00033c, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
608
{"vmr32",   "+7+K,+6+K",    0x4a00033d, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
609
{"vmsub",   "+5+K,+6+K,+7+K", 0x4a00002d, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
610
{"vmsubi",    "+5+K,+6+K,+y",   0x4a000027, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
611
{"vmsubq",    "+5+K,+6+K,+q",   0x4a000025, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
612
{"vmsubw",    "+5+K,+6+K,+7+N", 0x4a00000f, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
613
{"vmsubx",    "+5+K,+6+K,+7+N", 0x4a00000c, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
614
{"vmsuby",    "+5+K,+6+K,+7+N", 0x4a00000d, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
615
{"vmsubz",    "+5+K,+6+K,+7+N", 0x4a00000e, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
616
{"vmsuba",    "+m+K,+7+K,+6+K", 0x4a0002fd, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
617
{"vmsubai",   "+m+K,+6+K,+y",   0x4a00027f, 0xfe1f07ff, CP,   VU0CH,    VU0,    0,  0 },
618
{"vmsubaq",   "+m+K,+6+K,+q",   0x4a00027d, 0xfe1f07ff, CP,   VU0CH,    VU0,    0,  0 },
619
{"vmsubaw",   "+m+K,+6+K,+7+N", 0x4a0000ff, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
620
{"vmsubax",   "+m+K,+6+K,+7+N", 0x4a0000fc, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
621
{"vmsubay",   "+m+K,+6+K,+7+N", 0x4a0000fd, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
622
{"vmsubaz",   "+m+K,+6+K,+7+N", 0x4a0000fe, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
623
{"vmtir",   "+0,+6+L",    0x4a0003fc, 0xff8007ff, CP,   0,    VU0,    0,  0 },
624
{"vmul",    "+5+K,+6+K,+7+K", 0x4a00002a, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
625
{"vmuli",   "+5+K,+6+K,+y",   0x4a00001e, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
626
{"vmulq",   "+5+K,+6+K,+q",   0x4a00001c, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
627
{"vmulw",   "+5+K,+6+K,+7+N", 0x4a00001b, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
628
{"vmulx",   "+5+K,+6+K,+7+N", 0x4a000018, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
629
{"vmuly",   "+5+K,+6+K,+7+N", 0x4a000019, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
630
{"vmulz",   "+5+K,+6+K,+7+N", 0x4a00001a, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
631
{"vmula",   "+m+K,+6+K,+7+K", 0x4a0002be, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
632
{"vmulai",    "+m+K,+6+K,+y",   0x4a0001fe, 0xfe1f07ff, CP,   VU0CH,    VU0,    0,  0 },
633
{"vmulaq",    "+m+K,+6+K,+q",   0x4a0001fc, 0xfe1f07ff, CP,   VU0CH,    VU0,    0,  0 },
634
{"vmulaw",    "+m+K,+6+K,+7+N", 0x4a0001bf, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
635
{"vmulax",    "+m+K,+6+K,+7+N", 0x4a0001bc, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
636
{"vmulay",    "+m+K,+6+K,+7+N", 0x4a0001bd, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
637
{"vmulaz",    "+m+K,+6+K,+7+N", 0x4a0001be, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
638
{"vnop",    "",     0x4a0002ff, 0xffffffff, CP,   0,    VU0,    0,  0 },
639
{"vopmula.xyz",   "+m+K,+6+K,+7+K", 0x4bc002fe, 0xffe007ff, CP,   0,    VU0,    0,  0 },
640
{"vopmula",   "+m+K,+6+K,+7+K", 0x4bc002fe, 0xffe007ff, CP,   0,    VU0,    0,  0 },
641
{"vopmsub.xyz",   "+5+K,+6+K,+7+K", 0x4bc0002e, 0xffe0003f, CP,   0,    VU0,    0,  0 },
642
{"vopmsub",   "+5+K,+6+K,+7+K", 0x4bc0002e, 0xffe0003f, CP,   0,    VU0,    0,  0 },
643
{"vrget",   "+7+K,+r",    0x4a00043d, 0xfe00ffff, CP,   VU0CH,    VU0,    0,  0 },
644
{"vrinit",    "+r,+6+L",    0x4a00043e, 0xff9f07ff, CP,   0,    VU0,    0,  0 },
645
{"vrnext",    "+7+K,+r",    0x4a00043c, 0xfe00ffff, CP,   VU0CH,    VU0,    0,  0 },
646
{"vrsqrt",    "+q,+6+L,+7+M",   0x4a0003be, 0xfe0007ff, CP,   0,    VU0,    0,  0 },
647
{"vrxor",   "+r,+6+L",    0x4a00043f, 0xff9f07ff, CP,   0,    VU0,    0,  0 },
648
{"vsqd",    "+6+K,(#-+0)",    0x4a00037f, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
649
{"vsqi",    "+6+K,(+0#+)",    0x4a00037d, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
650
{"vsqrt",   "+q,+7+M",    0x4a2003bd, 0xfe60ffff, CP,   0,    VU0,    0,  0 },
651
{"vsub",    "+5+K,+6+K,+7+K", 0x4a00002c, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
652
{"vsubi",   "+5+K,+6+K,+y",   0x4a000026, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
653
{"vsubq",   "+5+K,+6+K,+q",   0x4a000024, 0xfe1f003f, CP,   VU0CH,    VU0,    0,  0 },
654
{"vsubw",   "+5+K,+6+K,+7+N", 0x4a000007, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
655
{"vsubx",   "+5+K,+6+K,+7+N", 0x4a000004, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
656
{"vsuby",   "+5+K,+6+K,+7+N", 0x4a000005, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
657
{"vsubz",   "+5+K,+6+K,+7+N", 0x4a000006, 0xfe00003f, CP,   VU0CH,    VU0,    0,  0 },
658
{"vsuba",   "+m+K,+6+K,+7+K", 0x4a0002fc, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
659
{"vsubai",    "+m+K,+6+K,+y",   0x4a00027e, 0xfe1f07ff, CP,   VU0CH,    VU0,    0,  0 },
660
{"vsubaq",    "+m+K,+6+K,+q",   0x4a00027c, 0xfe1f07ff, CP,   VU0CH,    VU0,    0,  0 },
661
{"vsubaw",    "+m+K,+6+K,+7+N", 0x4a00007f, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
662
{"vsubax",    "+m+K,+6+K,+7+N", 0x4a00007c, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
663
{"vsubay",    "+m+K,+6+K,+7+N", 0x4a00007d, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
664
{"vsubaz",    "+m+K,+6+K,+7+N", 0x4a00007e, 0xfe0007ff, CP,   VU0CH,    VU0,    0,  0 },
665
{"vwaitq",    "",     0x4a0003bf, 0xffffffff, CP,   0,    VU0,    0,  0 },
666
667
{"abs",     "d,v",    0,    (int) M_ABS,  INSN_MACRO,   0,    I1,   0,  0 },
668
{"abs.s",   "D,V",    0x46000005, 0xffff003f, WR_1|RD_2|FP_S,   0,    I1,   0,  0 },
669
{"abs.d",   "D,V",    0x46200005, 0xffff003f, WR_1|RD_2|FP_D,   0,    I1,   0,  SF },
670
{"abs.ps",    "D,V",    0x46c00005, 0xffff003f, WR_1|RD_2|FP_D,   0,    I5_33|IL2F, 0,  I37 },
671
{"abs.ps",    "D,V",    0x45600005, 0xffff003f, WR_1|RD_2|FP_D,   0,    IL2E,   0,  0 },
672
{"aclr",    "\\,~(b)",  0x04070000, 0xfc1f8000, RD_3|LM|SM|NODS,  0,    0,    MC, 0 },
673
{"aclr",    "\\,A(b)",  0,    (int) M_ACLR_AB,  INSN_MACRO,   0,    0,    MC, 0 },
674
{"add",     "d,v,t",  0x00000020, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
675
{"add",     "t,r,I",  0,    (int) M_ADD_I,  INSN_MACRO,   0,    I1,   0,  0 },
676
{"add",     "D,S,T",  0x45c00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    IL2E,   0,  0 },
677
{"add",     "D,S,T",  0x4b40000c, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    0,    LMMI, 0 },
678
{"add.s",   "D,V,T",  0x46000000, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I1,   0,  0 },
679
{"add.d",   "D,V,T",  0x46200000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I1,   0,  SF },
680
{"add.ob",    "X,Y,Q",  0x7800000b, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
681
{"add.ob",    "D,S,Q",  0x4800000b, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
682
{"add.ps",    "D,V,T",  0x46c00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I5_33|IL2F, 0,  I37 },
683
{"add.ps",    "D,V,T",  0x45600000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
684
{"add.qh",    "X,Y,Q",  0x7820000b, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
685
{"adda.ob",   "Y,Q",    0x78000037, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  SB1,    MX, 0 },
686
{"adda.qh",   "Y,Q",    0x78200037, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  0,    MX, 0 },
687
{"adda.s",    "S,T",    0x46000018, 0xffe007ff, RD_1|RD_2|FP_S,   0,    EE,   0,  0 },
688
{"addi",    "t,r,j",  0x20000000, 0xfc000000, WR_1|RD_2,    0,    I1,   0,  I37 },
689
{"addiu",   "t,r,j",  0x24000000, 0xfc000000, WR_1|RD_2,    0,    I1,   0,  0 },
690
{"addiu",   "s,+R,-a",  0xec000000, 0xfc180000, WR_1,     RD_pc,    I37,    0,  0 },
691
{"addiupc",   "s,-a",   0xec000000, 0xfc180000, WR_1,     RD_pc,    I37,    0,  0 },
692
{"addl.ob",   "Y,Q",    0x78000437, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  SB1,    MX, 0 },
693
{"addl.qh",   "Y,Q",    0x78200437, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  0,    MX, 0 },
694
{"addr.ps",   "D,S,T",  0x46c00018, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    M3D,  0 },
695
{"addu",    "d,v,t",  0x00000021, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
696
{"addu",    "t,r,I",  0,    (int) M_ADDU_I, INSN_MACRO,   0,    I1,   0,  0 },
697
{"addu",    "D,S,T",  0x45800000, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    IL2E,   0,  0 },
698
{"addu",    "D,S,T",  0x4b00000c, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    0,    LMMI, 0 },
699
{"alni.ob",   "X,Y,Z,O",  0x78000018, 0xff00003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
700
{"alni.ob",   "D,S,T,%",  0x48000018, 0xff00003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
701
{"alni.qh",   "X,Y,Z,O",  0x7800001a, 0xff00003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
702
{"alnv.ps",   "D,V,T,s",  0x4c00001e, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0,    I5_33,    0,  I37 },
703
{"alnv.ob",   "X,Y,Z,s",  0x78000019, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0,    SB1,    MX, 0 },
704
{"alnv.qh",   "X,Y,Z,s",  0x7800001b, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0,    0,    MX, 0 },
705
{"and",     "d,v,t",  0x00000024, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
706
{"and",     "t,r,I",  0,    (int) M_AND_I,  INSN_MACRO,   0,    I1,   0,  0 },
707
{"and",     "D,S,T",  0x47c00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
708
{"and",     "D,S,T",  0x4bc00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
709
{"and.ob",    "X,Y,Q",  0x7800000c, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
710
{"and.ob",    "D,S,Q",  0x4800000c, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
711
{"and.qh",    "X,Y,Q",  0x7820000c, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
712
{"andi",    "t,r,i",  0x30000000, 0xfc000000, WR_1|RD_2,    0,    I1,   0,  0 },
713
{"aset",    "\\,~(b)",  0x04078000, 0xfc1f8000, RD_3|LM|SM|NODS,  0,    0,    MC, 0 },
714
{"aset",    "\\,A(b)",  0,    (int) M_ASET_AB,  INSN_MACRO,   0,    0,    MC, 0 },
715
{"baddu",   "d,v,t",  0x70000028, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IOCT,   0,  0 },
716
/* b is at the top of the table.  */
717
/* bal is at the top of the table.  */
718
{"bbit032",   "s,+x,p", 0xd8000000, 0xfc000000, RD_1|CBD,   0,    IOCT,   0,  0 },
719
{"bbit0",   "s,+X,p", 0xd8000000, 0xfc000000, RD_1|CBD,   0,    IOCT,   0,  0 }, /* bbit032 */
720
{"bbit0",   "s,+x,p", 0xc8000000, 0xfc000000, RD_1|CBD,   0,    IOCT,   0,  0 },
721
{"bbit132",   "s,+x,p", 0xf8000000, 0xfc000000, RD_1|CBD,   0,    IOCT,   0,  0 },
722
{"bbit1",   "s,+X,p", 0xf8000000, 0xfc000000, RD_1|CBD,   0,    IOCT,   0,  0 }, /* bbit132 */
723
{"bbit1",   "s,+x,p", 0xe8000000, 0xfc000000, RD_1|CBD,   0,    IOCT,   0,  0 },
724
/* bc0[tf]l? are at the bottom of the table.  */
725
{"bc1any2f",    "N,p",    0x45200000, 0xffe30000, RD_CC|CBD|FP_S,   0,    0,    M3D,  0 },
726
{"bc1any2t",    "N,p",    0x45210000, 0xffe30000, RD_CC|CBD|FP_S,   0,    0,    M3D,  0 },
727
{"bc1any4f",    "N,p",    0x45400000, 0xffe30000, RD_CC|CBD|FP_S,   0,    0,    M3D,  0 },
728
{"bc1any4t",    "N,p",    0x45410000, 0xffe30000, RD_CC|CBD|FP_S,   0,    0,    M3D,  0 },
729
{"bc1eqz",    "T,p",    0x45200000, 0xffe00000, RD_1|CBD|FP_S,    0,    I37,    0,  0 },
730
{"bc1f",    "p",    0x45000000, 0xffff0000, RD_CC|CBD|FP_S,   0,    I1,   0,  I37 },
731
{"bc1f",    "N,p",    0x45000000, 0xffe30000, RD_CC|CBD|FP_S,   0,    I4_32,    0,  I37 },
732
{"bc1fl",   "p",    0x45020000, 0xffff0000, RD_CC|CBL|FP_S,   0,    I2|T3,    0,  I37 },
733
{"bc1fl",   "N,p",    0x45020000, 0xffe30000, RD_CC|CBL|FP_S,   0,    I4_32,    0,  I37 },
734
{"bc1nez",    "T,p",    0x45a00000, 0xffe00000, RD_1|CBD|FP_S,    0,    I37,    0,  0 },
735
{"bc1t",    "p",    0x45010000, 0xffff0000, RD_CC|CBD|FP_S,   0,    I1,   0,  I37 },
736
{"bc1t",    "N,p",    0x45010000, 0xffe30000, RD_CC|CBD|FP_S,   0,    I4_32,    0,  I37 },
737
{"bc1tl",   "p",    0x45030000, 0xffff0000, RD_CC|CBL|FP_S,   0,    I2|T3,    0,  I37 },
738
{"bc1tl",   "N,p",    0x45030000, 0xffe30000, RD_CC|CBL|FP_S,   0,    I4_32,    0,  I37 },
739
/* bc2* are at the bottom of the table.  */
740
/* bc3* are at the bottom of the table.  */
741
{"beqz",    "s,p",    0x10000000, 0xfc1f0000, RD_1|CBD,   AL,   I1,   0,  0 },
742
{"beqzl",   "s,p",    0x50000000, 0xfc1f0000, RD_1|CBL,   AL,   I2|T3,    0,  I37 },
743
{"beq",     "s,t,p",  0x10000000, 0xfc000000, RD_1|RD_2|CBD,    0,    I1,   0,  0 },
744
{"beq",     "s,I,p",  0,    (int) M_BEQ_I,  INSN_MACRO,   0,    I1,   0,  0 },
745
{"beql",    "s,t,p",  0x50000000, 0xfc000000, RD_1|RD_2|CBL,    0,    I2|T3,    0,  I37 },
746
{"beql",    "s,I,p",  0,    (int) M_BEQL_I, INSN_MACRO,   0,    I2|T3,    0,  I37 },
747
{"bge",     "s,t,p",  0,    (int) M_BGE,  INSN_MACRO,   0,    I1,   0,  0 },
748
{"bge",     "s,I,p",  0,    (int) M_BGE_I,  INSN_MACRO,   0,    I1,   0,  0 },
749
{"bgel",    "s,t,p",  0,    (int) M_BGEL, INSN_MACRO,   0,    I2|T3,    0,  I37 },
750
{"bgel",    "s,I,p",  0,    (int) M_BGEL_I, INSN_MACRO,   0,    I2|T3,    0,  I37 },
751
{"bgeu",    "s,t,p",  0,    (int) M_BGEU, INSN_MACRO,   0,    I1,   0,  0 },
752
{"bgeu",    "s,I,p",  0,    (int) M_BGEU_I, INSN_MACRO,   0,    I1,   0,  0 },
753
{"bgeul",   "s,t,p",  0,    (int) M_BGEUL,  INSN_MACRO,   0,    I2|T3,    0,  I37 },
754
{"bgeul",   "s,I,p",  0,    (int) M_BGEUL_I,  INSN_MACRO,   0,    I2|T3,    0,  I37 },
755
{"bgez",    "s,p",    0x04010000, 0xfc1f0000, RD_1|CBD,   0,    I1,   0,  0 },
756
{"bgezl",   "s,p",    0x04030000, 0xfc1f0000, RD_1|CBL,   0,    I2|T3,    0,  I37 },
757
{"bgezal",    "s,p",    0x04110000, 0xfc1f0000, RD_1|WR_31|CBD,   0,    I1,   0,  I37 },
758
{"bgezall",   "s,p",    0x04130000, 0xfc1f0000, RD_1|WR_31|CBL,   0,    I2|T3,    0,  I37 },
759
{"bgt",     "s,t,p",  0,    (int) M_BGT,  INSN_MACRO,   0,    I1,   0,  0 },
760
{"bgt",     "s,I,p",  0,    (int) M_BGT_I,  INSN_MACRO,   0,    I1,   0,  0 },
761
{"bgtl",    "s,t,p",  0,    (int) M_BGTL, INSN_MACRO,   0,    I2|T3,    0,  I37 },
762
{"bgtl",    "s,I,p",  0,    (int) M_BGTL_I, INSN_MACRO,   0,    I2|T3,    0,  I37 },
763
{"bgtu",    "s,t,p",  0,    (int) M_BGTU, INSN_MACRO,   0,    I1,   0,  0 },
764
{"bgtu",    "s,I,p",  0,    (int) M_BGTU_I, INSN_MACRO,   0,    I1,   0,  0 },
765
{"bgtul",   "s,t,p",  0,    (int) M_BGTUL,  INSN_MACRO,   0,    I2|T3,    0,  I37 },
766
{"bgtul",   "s,I,p",  0,    (int) M_BGTUL_I,  INSN_MACRO,   0,    I2|T3,    0,  I37 },
767
{"bgtz",    "s,p",    0x1c000000, 0xfc1f0000, RD_1|CBD,   0,    I1,   0,  0 },
768
{"bgtzl",   "s,p",    0x5c000000, 0xfc1f0000, RD_1|CBL,   0,    I2|T3,    0,  I37 },
769
{"ble",     "s,t,p",  0,    (int) M_BLE,  INSN_MACRO,   0,    I1,   0,  0 },
770
{"ble",     "s,I,p",  0,    (int) M_BLE_I,  INSN_MACRO,   0,    I1,   0,  0 },
771
{"blel",    "s,t,p",  0,    (int) M_BLEL, INSN_MACRO,   0,    I2|T3,    0,  I37 },
772
{"blel",    "s,I,p",  0,    (int) M_BLEL_I, INSN_MACRO,   0,    I2|T3,    0,  I37 },
773
{"bleu",    "s,t,p",  0,    (int) M_BLEU, INSN_MACRO,   0,    I1,   0,  0 },
774
{"bleu",    "s,I,p",  0,    (int) M_BLEU_I, INSN_MACRO,   0,    I1,   0,  0 },
775
{"bleul",   "s,t,p",  0,    (int) M_BLEUL,  INSN_MACRO,   0,    I2|T3,    0,  I37 },
776
{"bleul",   "s,I,p",  0,    (int) M_BLEUL_I,  INSN_MACRO,   0,    I2|T3,    0,  I37 },
777
{"blez",    "s,p",    0x18000000, 0xfc1f0000, RD_1|CBD,   0,    I1,   0,  0 },
778
{"blezl",   "s,p",    0x58000000, 0xfc1f0000, RD_1|CBL,   0,    I2|T3,    0,  I37 },
779
{"blt",     "s,t,p",  0,    (int) M_BLT,  INSN_MACRO,   0,    I1,   0,  0 },
780
{"blt",     "s,I,p",  0,    (int) M_BLT_I,  INSN_MACRO,   0,    I1,   0,  0 },
781
{"bltl",    "s,t,p",  0,    (int) M_BLTL, INSN_MACRO,   0,    I2|T3,    0,  I37 },
782
{"bltl",    "s,I,p",  0,    (int) M_BLTL_I, INSN_MACRO,   0,    I2|T3,    0,  I37 },
783
{"bltu",    "s,t,p",  0,    (int) M_BLTU, INSN_MACRO,   0,    I1,   0,  0 },
784
{"bltu",    "s,I,p",  0,    (int) M_BLTU_I, INSN_MACRO,   0,    I1,   0,  0 },
785
{"bltul",   "s,t,p",  0,    (int) M_BLTUL,  INSN_MACRO,   0,    I2|T3,    0,  I37 },
786
{"bltul",   "s,I,p",  0,    (int) M_BLTUL_I,  INSN_MACRO,   0,    I2|T3,    0,  I37 },
787
{"bltz",    "s,p",    0x04000000, 0xfc1f0000, RD_1|CBD,   0,    I1,   0,  0 },
788
{"bltzl",   "s,p",    0x04020000, 0xfc1f0000, RD_1|CBL,   0,    I2|T3,    0,  I37 },
789
{"bltzal",    "s,p",    0x04100000, 0xfc1f0000, RD_1|WR_31|CBD,   0,    I1,   0,  I37 },
790
{"nal",     "",   0x04100000, 0xffffffff, WR_31|CBD,    0,    I1,   0,  0 }, /* bltzal 0,.+4 */
791
{"bltzall",   "s,p",    0x04120000, 0xfc1f0000, RD_1|WR_31|CBL,   0,    I2|T3,    0,  I37 },
792
{"bnez",    "s,p",    0x14000000, 0xfc1f0000, RD_1|CBD,   AL,   I1,   0,  0 },
793
{"bnezl",   "s,p",    0x54000000, 0xfc1f0000, RD_1|CBL,   AL,   I2|T3,    0,  I37 },
794
{"bne",     "s,t,p",  0x14000000, 0xfc000000, RD_1|RD_2|CBD,    0,    I1,   0,  0 },
795
{"bne",     "s,I,p",  0,    (int) M_BNE_I,  INSN_MACRO,   0,    I1,   0,  0 },
796
{"bnel",    "s,t,p",  0x54000000, 0xfc000000, RD_1|RD_2|CBL,    0,    I2|T3,    0,  I37 },
797
{"bnel",    "s,I,p",  0,    (int) M_BNEL_I, INSN_MACRO,   0,    I2|T3,    0,  I37 },
798
{"break",   "",   0x0000000d, 0xffffffff, TRAP,     0,    I1,   0,  0 },
799
{"break",   "c",    0x0000000d, 0xfc00ffff, TRAP,     0,    I1,   0,  0 },
800
{"break",   "c,q",    0x0000000d, 0xfc00003f, TRAP,     0,    I1,   0,  0 },
801
{"c.f.d",   "S,T",    0x46200030, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
802
{"c.f.d",   "M,S,T",  0x46200030, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
803
{"c.f.s",   "S,T",        0x46000030, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  I37 },
804
{"c.f.s",   "M,S,T",  0x46000030, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
805
{"c.f.ps",    "S,T",    0x46c00030, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
806
{"c.f.ps",    "S,T",    0x45600030, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
807
{"c.f.ps",    "M,S,T",  0x46c00030, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
808
{"c.un.d",    "S,T",    0x46200031, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
809
{"c.un.d",    "M,S,T",  0x46200031, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
810
{"c.un.s",    "S,T",    0x46000031, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
811
{"c.un.s",    "M,S,T",  0x46000031, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
812
{"c.un.ps",   "S,T",    0x46c00031, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
813
{"c.un.ps",   "S,T",    0x45600031, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
814
{"c.un.ps",   "M,S,T",  0x46c00031, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
815
{"c.eq.d",    "S,T",    0x46200032, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
816
{"c.eq.d",    "M,S,T",  0x46200032, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
817
{"c.eq.s",    "S,T",    0x46000032, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  I37 },
818
{"c.eq.s",    "M,S,T",  0x46000032, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
819
{"c.eq.ob",   "Y,Q",    0x78000001, 0xfc2007ff, RD_1|RD_2|WR_CC|FP_D, 0,    SB1,    MX, 0 },
820
{"c.eq.ob",   "S,Q",    0x48000001, 0xfc2007ff, RD_1|RD_2|WR_CC|FP_D, 0,    N54,    0,  0 },
821
{"c.eq.ps",   "S,T",    0x46c00032, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
822
{"c.eq.ps",   "S,T",    0x45600032, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
823
{"c.eq.ps",   "M,S,T",  0x46c00032, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
824
{"c.eq.qh",   "Y,Q",    0x78200001, 0xfc2007ff, RD_1|RD_2|WR_CC|FP_D, 0,    0,    MX, 0 },
825
{"c.ueq.d",   "S,T",    0x46200033, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
826
{"c.ueq.d",   "M,S,T",  0x46200033, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
827
{"c.ueq.s",   "S,T",    0x46000033, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
828
{"c.ueq.s",   "M,S,T",  0x46000033, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
829
{"c.ueq.ps",    "S,T",    0x46c00033, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
830
{"c.ueq.ps",    "S,T",    0x45600033, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
831
{"c.ueq.ps",    "M,S,T",  0x46c00033, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
832
{"c.olt.d",   "S,T",    0x46200034, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D,   0,    I1,   0,  SF|I37 },
833
{"c.olt.d",   "M,S,T",  0x46200034, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
834
{"c.olt.s",   "S,T",    0x46000034, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S, 0,    I1,   0,  EE|I37 },
835
{"c.olt.s",   "M,S,T",  0x46000034, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
836
{"c.olt.ps",    "S,T",    0x46c00034, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
837
{"c.olt.ps",    "S,T",    0x45600034, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
838
{"c.olt.ps",    "M,S,T",  0x46c00034, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
839
{"c.ult.d",   "S,T",    0x46200035, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
840
{"c.ult.d",   "M,S,T",  0x46200035, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
841
{"c.ult.s",   "S,T",    0x46000035, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
842
{"c.ult.s",   "M,S,T",  0x46000035, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
843
{"c.ult.ps",    "S,T",    0x46c00035, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
844
{"c.ult.ps",    "S,T",    0x45600035, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
845
{"c.ult.ps",    "M,S,T",  0x46c00035, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
846
{"c.ole.d",   "S,T",    0x46200036, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D,   0,    I1,   0,  SF|I37 },
847
{"c.ole.d",   "M,S,T",  0x46200036, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
848
{"c.ole.s",   "S,T",    0x46000036, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
849
{"c.ole.s",   "M,S,T",  0x46000036, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
850
{"c.ole.ps",    "S,T",    0x46c00036, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
851
{"c.ole.ps",    "S,T",    0x45600036, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
852
{"c.ole.ps",    "M,S,T",  0x46c00036, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
853
{"c.ule.d",   "S,T",    0x46200037, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
854
{"c.ule.d",   "M,S,T",  0x46200037, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
855
{"c.ule.s",   "S,T",    0x46000037, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
856
{"c.ule.s",   "M,S,T",  0x46000037, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
857
{"c.ule.ps",    "S,T",    0x46c00037, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
858
{"c.ule.ps",    "S,T",    0x45600037, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
859
{"c.ule.ps",    "M,S,T",  0x46c00037, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
860
{"c.sf.d",    "S,T",    0x46200038, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
861
{"c.sf.d",    "M,S,T",  0x46200038, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
862
{"c.sf.s",    "S,T",    0x46000038, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
863
{"c.sf.s",    "M,S,T",  0x46000038, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
864
{"c.sf.ps",   "S,T",    0x46c00038, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
865
{"c.sf.ps",   "S,T",    0x45600038, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
866
{"c.sf.ps",   "M,S,T",  0x46c00038, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
867
{"c.ngle.d",    "S,T",    0x46200039, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
868
{"c.ngle.d",    "M,S,T",  0x46200039, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
869
{"c.ngle.s",    "S,T",    0x46000039, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
870
{"c.ngle.s",    "M,S,T",  0x46000039, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
871
{"c.ngle.ps",   "S,T",    0x46c00039, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
872
{"c.ngle.ps",   "S,T",    0x45600039, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
873
{"c.ngle.ps",   "M,S,T",  0x46c00039, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
874
{"c.seq.d",   "S,T",    0x4620003a, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
875
{"c.seq.d",   "M,S,T",  0x4620003a, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
876
{"c.seq.s",   "S,T",    0x4600003a, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
877
{"c.seq.s",   "M,S,T",  0x4600003a, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
878
{"c.seq.ps",    "S,T",    0x46c0003a, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
879
{"c.seq.ps",    "S,T",    0x4560003a, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
880
{"c.seq.ps",    "M,S,T",  0x46c0003a, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
881
{"c.ngl.d",   "S,T",    0x4620003b, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
882
{"c.ngl.d",   "M,S,T",  0x4620003b, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
883
{"c.ngl.s",   "S,T",    0x4600003b, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
884
{"c.ngl.s",   "M,S,T",  0x4600003b, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
885
{"c.ngl.ps",    "S,T",    0x46c0003b, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
886
{"c.ngl.ps",    "S,T",    0x4560003b, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
887
{"c.ngl.ps",    "M,S,T",  0x46c0003b, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
888
{"c.lt.d",    "S,T",    0x4620003c, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
889
{"c.lt.d",    "M,S,T",  0x4620003c, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
890
{"c.lt.s",    "S,T",    0x46000034, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S, 0,    EE,   0,  0 },
891
{"c.lt.s",    "S,T",    0x4600003c, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S, 0,    I1,   0,  EE|I37 },
892
{"c.lt.s",    "M,S,T",  0x4600003c, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
893
{"c.lt.ob",   "Y,Q",    0x78000004, 0xfc2007ff, RD_1|RD_2|WR_CC|FP_D, 0,    SB1,    MX, 0 },
894
{"c.lt.ob",   "S,Q",    0x48000004, 0xfc2007ff, RD_1|RD_2|WR_CC|FP_D, 0,    N54,    0,  0 },
895
{"c.lt.ps",   "S,T",    0x46c0003c, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
896
{"c.lt.ps",   "S,T",    0x4560003c, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
897
{"c.lt.ps",   "M,S,T",  0x46c0003c, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
898
{"c.lt.qh",   "Y,Q",    0x78200004, 0xfc2007ff, RD_1|RD_2|WR_CC|FP_D, 0,    0,    MX, 0 },
899
{"c.nge.d",   "S,T",    0x4620003d, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
900
{"c.nge.d",   "M,S,T",  0x4620003d, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
901
{"c.nge.s",   "S,T",    0x4600003d, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
902
{"c.nge.s",   "M,S,T",  0x4600003d, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
903
{"c.nge.ps",    "S,T",    0x46c0003d, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
904
{"c.nge.ps",    "S,T",    0x4560003d, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
905
{"c.nge.ps",    "M,S,T",  0x46c0003d, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
906
{"c.le.d",    "S,T",    0x4620003e, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
907
{"c.le.d",    "M,S,T",  0x4620003e, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
908
{"c.le.s",    "S,T",    0x46000036, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S, 0,    EE,   0,  0 },
909
{"c.le.s",    "S,T",    0x4600003e, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S, 0,    I1,   0,  EE|I37 },
910
{"c.le.s",    "M,S,T",  0x4600003e, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
911
{"c.le.ob",   "Y,Q",    0x78000005, 0xfc2007ff, RD_1|RD_2|WR_CC|FP_D, 0,    SB1,    MX, 0 },
912
{"c.le.ob",   "S,Q",    0x48000005, 0xfc2007ff, RD_1|RD_2|WR_CC|FP_D, 0,    N54,    0,  0 },
913
{"c.le.ps",   "S,T",    0x46c0003e, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
914
{"c.le.ps",   "S,T",    0x4560003e, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
915
{"c.le.ps",   "M,S,T",  0x46c0003e, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
916
{"c.le.qh",   "Y,Q",    0x78200005, 0xfc2007ff, RD_1|RD_2|WR_CC|FP_D, 0,    0,    MX, 0 },
917
{"c.ngt.d",   "S,T",    0x4620003f, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I1,   0,  SF|I37 },
918
{"c.ngt.d",   "M,S,T",  0x4620003f, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D,   0,    I4_32,    0,  I37 },
919
{"c.ngt.s",   "S,T",    0x4600003f, 0xffe007ff, RD_1|RD_2|WR_CC|FP_S,   0,    I1,   0,  EE|I37 },
920
{"c.ngt.s",   "M,S,T",  0x4600003f, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S,   0,    I4_32,    0,  I37 },
921
{"c.ngt.ps",    "S,T",    0x46c0003f, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    I5_33|IL2F, 0,  I37 },
922
{"c.ngt.ps",    "S,T",    0x4560003f, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
923
{"c.ngt.ps",    "M,S,T",  0x46c0003f, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    I5_33,    0,  I37 },
924
{"cabs.eq.d",   "M,S,T",  0x46200072, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
925
{"cabs.eq.ps",    "M,S,T",  0x46c00072, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
926
{"cabs.eq.s",   "M,S,T",  0x46000072, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
927
{"cabs.f.d",    "M,S,T",  0x46200070, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
928
{"cabs.f.ps",   "M,S,T",  0x46c00070, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
929
{"cabs.f.s",    "M,S,T",  0x46000070, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
930
{"cabs.le.d",   "M,S,T",  0x4620007e, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
931
{"cabs.le.ps",    "M,S,T",  0x46c0007e, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
932
{"cabs.le.s",   "M,S,T",  0x4600007e, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
933
{"cabs.lt.d",   "M,S,T",  0x4620007c, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
934
{"cabs.lt.ps",    "M,S,T",  0x46c0007c, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
935
{"cabs.lt.s",   "M,S,T",  0x4600007c, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
936
{"cabs.nge.d",    "M,S,T",  0x4620007d, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
937
{"cabs.nge.ps",   "M,S,T",  0x46c0007d, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
938
{"cabs.nge.s",    "M,S,T",  0x4600007d, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
939
{"cabs.ngl.d",    "M,S,T",  0x4620007b, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
940
{"cabs.ngl.ps",   "M,S,T",  0x46c0007b, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
941
{"cabs.ngl.s",    "M,S,T",  0x4600007b, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
942
{"cabs.ngle.d",   "M,S,T",  0x46200079, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
943
{"cabs.ngle.ps",  "M,S,T",  0x46c00079, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
944
{"cabs.ngle.s",   "M,S,T",  0x46000079, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
945
{"cabs.ngt.d",    "M,S,T",  0x4620007f, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
946
{"cabs.ngt.ps",   "M,S,T",  0x46c0007f, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
947
{"cabs.ngt.s",    "M,S,T",  0x4600007f, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
948
{"cabs.ole.d",    "M,S,T",  0x46200076, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
949
{"cabs.ole.ps",   "M,S,T",  0x46c00076, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
950
{"cabs.ole.s",    "M,S,T",  0x46000076, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
951
{"cabs.olt.d",    "M,S,T",  0x46200074, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
952
{"cabs.olt.ps",   "M,S,T",  0x46c00074, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
953
{"cabs.olt.s",    "M,S,T",  0x46000074, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
954
{"cabs.seq.d",    "M,S,T",  0x4620007a, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
955
{"cabs.seq.ps",   "M,S,T",  0x46c0007a, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
956
{"cabs.seq.s",    "M,S,T",  0x4600007a, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
957
{"cabs.sf.d",   "M,S,T",  0x46200078, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
958
{"cabs.sf.ps",    "M,S,T",  0x46c00078, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
959
{"cabs.sf.s",   "M,S,T",  0x46000078, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
960
{"cabs.ueq.d",    "M,S,T",  0x46200073, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
961
{"cabs.ueq.ps",   "M,S,T",  0x46c00073, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
962
{"cabs.ueq.s",    "M,S,T",  0x46000073, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
963
{"cabs.ule.d",    "M,S,T",  0x46200077, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
964
{"cabs.ule.ps",   "M,S,T",  0x46c00077, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
965
{"cabs.ule.s",    "M,S,T",  0x46000077, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
966
{"cabs.ult.d",    "M,S,T",  0x46200075, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
967
{"cabs.ult.ps",   "M,S,T",  0x46c00075, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
968
{"cabs.ult.s",    "M,S,T",  0x46000075, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
969
{"cabs.un.d",   "M,S,T",  0x46200071, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
970
{"cabs.un.ps",    "M,S,T",  0x46c00071, 0xffe000ff, RD_2|RD_3|WR_CC|FP_D, 0,    0,    M3D,  0 },
971
{"cabs.un.s",   "M,S,T",  0x46000071, 0xffe000ff, RD_2|RD_3|WR_CC|FP_S, 0,    0,    M3D,  0 },
972
/* CW4010 instructions which are aliases for the cache instruction.  */
973
{"flushi",    "",   0xbc010000, 0xffffffff, 0,      0,    L1,   0,  0 },
974
{"flushd",    "",   0xbc020000, 0xffffffff, 0,      0,    L1,   0,  0 },
975
{"flushid",   "",   0xbc030000, 0xffffffff, 0,      0,    L1,   0,  0 },
976
{"wb",      "o(b)",   0xbc040000, 0xfc1f0000, RD_2|SM,    0,    L1,   0,  0 },
977
{"cache",   "k,+j(b)",  0x7c000025, 0xfc00007f, RD_3,     0,    I37,    0,  0 },
978
{"cache",   "k,o(b)", 0xbc000000, 0xfc000000, RD_3,             0,    I3_32|T3|ALX, 0,  I37 },
979
{"cache",   "k,A(b)", 0,    (int) M_CACHE_AB, INSN_MACRO,   0,    I3_32|T3|ALX, 0,  0 },
980
{"ceil.l.d",    "D,S",    0x4620000a, 0xffff003f, WR_1|RD_2|FP_D,   0,    I3_33,    0,  0 },
981
{"ceil.l.s",    "D,S",    0x4600000a, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I3_33,    0,  0 },
982
{"ceil.w.d",    "D,S",    0x4620000e, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I2,   0,  SF },
983
{"ceil.w.s",    "D,S",    0x4600000e, 0xffff003f, WR_1|RD_2|FP_S,   0,    I2,   0,  EE },
984
/* cfc0 is at the bottom of the table.  */
985
{"cfc1",    "t,g",    0x44400000, 0xffe007ff, WR_1|RD_C1|LC,    0,    I1,   0,  0 },
986
{"cfc1",    "t,S",    0x44400000, 0xffe007ff, WR_1|RD_C1|LC,    0,    I1,   0,  0 },
987
/* cfc2 is at the bottom of the table.  */
988
/* cfc3 is at the bottom of the table.  */
989
{"cftc1",   "d,y",    0x41000023, 0xffe007ff, WR_1|RD_C1|TRAP|LC, AL,   0,    MT32, 0 },
990
{"cftc1",   "d,T",    0x41000023, 0xffe007ff, WR_1|RD_C1|TRAP|LC, AL,   0,    MT32, 0 },
991
{"cftc2",   "d,y",    0x41000025, 0xffe007ff, WR_1|RD_C2|TRAP|LC, AL,   0,    MT32, IOCT|IOCTP|IOCT2 },
992
{"cins32",    "t,r,+p,+s",  0x70000033, 0xfc00003f, WR_1|RD_2,    0,    IOCT,   0,  0 },
993
{"cins",    "t,r,+P,+S",  0x70000033, 0xfc00003f, WR_1|RD_2,    0,    IOCT,   0,  0 }, /* cins32 */
994
{"cins",    "t,r,+p,+S",  0x70000032, 0xfc00003f, WR_1|RD_2,    0,    IOCT,   0,  0 },
995
{"clo",     "d,s",    0x00000017, 0xfc1f07ff, WR_1|RD_2,    0,    ALX,    0,  0 },
996
{"clo",     "d,s",    0x00000051, 0xfc1f07ff, WR_1|RD_2,    0,    I37,    0,  0 },
997
{"clo",     "U,s",    0x70000021, 0xfc0007ff, WR_1|RD_2,    0,    I32|N55,  0,  I37 },
998
{"clz",     "d,s",    0x00000016, 0xfc1f07ff, WR_1|RD_2,    0,    ALX,    0,  0 },
999
{"clz",     "d,s",    0x00000050, 0xfc1f07ff, WR_1|RD_2,    0,    I37,    0,  0 },
1000
{"clz",     "U,s",    0x70000020, 0xfc0007ff, WR_1|RD_2,    0,    I32|N55,  0,  I37 },
1001
/* ctc0 is at the bottom of the table.  */
1002
{"ctc1",    "t,g",    0x44c00000, 0xffe007ff, RD_1|WR_CC|CM,    0,    I1,   0,  0 },
1003
{"ctc1",    "t,S",    0x44c00000, 0xffe007ff, RD_1|WR_CC|CM,    0,    I1,   0,  0 },
1004
/* ctc2 is at the bottom of the table.  */
1005
/* ctc3 is at the bottom of the table.  */
1006
{"cttc1",   "t,g",    0x41800023, 0xffe007ff, RD_1|WR_CC|TRAP|CM, AL,   0,    MT32, 0 },
1007
{"cttc1",   "t,S",    0x41800023, 0xffe007ff, RD_1|WR_CC|TRAP|CM, AL,   0,    MT32, 0 },
1008
{"cttc2",   "t,g",    0x41800025, 0xffe007ff, RD_1|WR_CC|TRAP|CM, AL,   0,    MT32, IOCT|IOCTP|IOCT2 },
1009
{"cvt.d.l",   "D,S",    0x46a00021, 0xffff003f, WR_1|RD_2|FP_D,   0,    I3_33,    0,  0 },
1010
{"cvt.d.s",   "D,S",    0x46000021, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I1,   0,  SF },
1011
{"cvt.d.w",   "D,S",    0x46800021, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I1,   0,  SF },
1012
{"cvt.l.d",   "D,S",    0x46200025, 0xffff003f, WR_1|RD_2|FP_D,   0,    I3_33,    0,  0 },
1013
{"cvt.l.s",   "D,S",    0x46000025, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I3_33,    0,  0 },
1014
{"cvt.s.l",   "D,S",    0x46a00020, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I3_33,    0,  0 },
1015
{"cvt.s.d",   "D,S",    0x46200020, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I1,   0,  SF },
1016
{"cvt.s.w",   "D,S",    0x46800020, 0xffff003f, WR_1|RD_2|FP_S,   0,    I1,   0,  0 },
1017
{"cvt.s.pl",    "D,S",    0x46c00028, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I5_33,    0,  0 },
1018
{"cvt.s.pu",    "D,S",    0x46c00020, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I5_33,    0,  0 },
1019
{"cvt.w.d",   "D,S",    0x46200024, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I1,   0,  SF },
1020
{"cvt.w.s",   "D,S",    0x46000024, 0xffff003f, WR_1|RD_2|FP_S,   0,    I1,   0,  EE },
1021
{"cvt.ps.pw",   "D,S",    0x46800026, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    0,    M3D,  0 },
1022
{"cvt.ps.s",    "D,V,T",  0x46000026, 0xffe0003f, WR_1|RD_2|RD_3|FP_S|FP_D, 0,    I5_33,    0,  I37 },
1023
{"cvt.pw.ps",   "D,S",    0x46c00024, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    0,    M3D,  0 },
1024
{"dabs",    "d,v",    0,    (int) M_DABS, INSN_MACRO,   0,    I3,   0,  0 },
1025
{"dadd",    "d,v,t",  0x0000002c, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I3,   0,  0 },
1026
{"dadd",    "t,r,I",  0,    (int) M_DADD_I, INSN_MACRO,   0,    I3,   0,  0 },
1027
{"dadd",    "D,S,T",  0x45e00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1028
{"dadd",    "D,S,T",  0x4b60000c, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
1029
{"daddi",   "t,r,j",  0x60000000, 0xfc000000, WR_1|RD_2,    0,    I3,   0,  I69 },
1030
{"daddiu",    "t,r,j",  0x64000000, 0xfc000000, WR_1|RD_2,    0,    I3,   0,  0 },
1031
{"daddu",   "d,v,t",  0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I3,   0,  0 },
1032
{"daddu",   "t,r,I",  0,    (int) M_DADDU_I,  INSN_MACRO,   0,    I3,   0,  0 },
1033
{"daddwc",    "d,s,t",  0x70000038, 0xfc0007ff, WR_1|RD_2|RD_3|WR_C0|RD_C0, 0,    XLR,    0,  0 },
1034
{"dbreak",    "",   0x7000003f, 0xffffffff, 0,      0,    N5|ALX,   0,  0 },
1035
{"dclo",    "d,s",    0x00000053, 0xfc1f07ff, WR_1|RD_2,    0,    I69,    0,  0 },
1036
{"dclo",    "U,s",    0x70000025, 0xfc0007ff, WR_1|RD_2,  0,    I64|N55,  0,  I69 },
1037
{"dclz",    "d,s",    0x00000052, 0xfc1f07ff, WR_1|RD_2,    0,    I69,    0,  0 },
1038
{"dclz",    "U,s",    0x70000024, 0xfc0007ff, WR_1|RD_2,  0,    I64|N55,  0,  I69 },
1039
/* dctr and dctw are used on the r5000.  */
1040
{"dctr",    "o(b)",   0xbc050000, 0xfc1f0000, RD_2,     0,    I3,   0,  0 },
1041
{"dctw",    "o(b)",   0xbc090000, 0xfc1f0000, RD_2,     0,    I3,   0,  0 },
1042
{"deret",   "",   0x4200001f, 0xffffffff, NODS,       0,    I32|G2,   0,  0 },
1043
{"dext",    "t,r,+A,+H",  0x7c000003, 0xfc00003f, WR_1|RD_2,        0,    I65,    0,  0 },
1044
{"dext",    "t,r,+A,+G",  0x7c000001, 0xfc00003f, WR_1|RD_2,        0,    I65,    0,  0 }, /* dextm */
1045
{"dext",    "t,r,+E,+H",  0x7c000002, 0xfc00003f, WR_1|RD_2,        0,    I65,    0,  0 }, /* dextu */
1046
{"dextm",   "t,r,+A,+G",  0x7c000001, 0xfc00003f, WR_1|RD_2,        0,    I65,    0,  0 },
1047
{"dextu",   "t,r,+E,+H",  0x7c000002, 0xfc00003f, WR_1|RD_2,        0,    I65,    0,  0 },
1048
/* For ddiv, see the comments about div.  */
1049
{"dmod",    "d,s,t",  0x000000de, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I69,    0,  0 },
1050
{"ddiv",    "d,s,t",  0x0000009e, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I69,    0,  0 },
1051
{"ddiv",    "z,s,t",  0x0000001e, 0xfc00ffff, RD_2|RD_3|WR_HILO,      0,    I3,   0,  M32|I69 },
1052
{"ddiv",    "d,v,t",  0,    (int) M_DDIV_3, INSN_MACRO,   0,    I3,   0,  M32|I69 },
1053
{"ddiv",    "d,v,I",  0,    (int) M_DDIV_3I,  INSN_MACRO,   0,    I3,   0,  M32|I69 },
1054
/* For ddivu, see the comments about div.  */
1055
{"dmodu",   "d,s,t",  0x000000df, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I69,    0,  0 },
1056
{"ddivu",   "d,s,t",  0x0000009f, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I69,    0,  0 },
1057
{"ddivu",   "z,s,t",  0x0000001f, 0xfc00ffff, RD_2|RD_3|WR_HILO,      0,    I3,   0,  M32|I69 },
1058
{"ddivu",   "d,v,t",  0,    (int) M_DDIVU_3,  INSN_MACRO,   0,    I3,   0,  M32|I69 },
1059
{"ddivu",   "d,v,I",  0,    (int) M_DDIVU_3I, INSN_MACRO,   0,    I3,   0,  M32|I69 },
1060
{"di",      "",   0x42000039, 0xffffffff, WR_C0,      0,    EE,   0,  0 },
1061
{"di",      "",   0x41606000, 0xffffffff, WR_C0,      0,    I33,    0,  0 },
1062
{"di",      "t",    0x41606000, 0xffe0ffff, WR_1|WR_C0,   0,    I33,    0,  0 },
1063
{"dins",    "t,r,+A,+B",  0x7c000007, 0xfc00003f, WR_1|RD_2,        0,    I65,    0,  0 },
1064
{"dins",    "t,r,+A,+F",  0x7c000005, 0xfc00003f, WR_1|RD_2,        0,    I65,    0,  0 }, /* dinsm */
1065
{"dins",    "t,r,+E,+F",  0x7c000006, 0xfc00003f, WR_1|RD_2,        0,    I65,    0,  0 }, /* dinsu */
1066
{"dinsm",   "t,r,+A,+F",  0x7c000005, 0xfc00003f, WR_1|RD_2,        0,    I65,    0,  0 },
1067
{"dinsu",   "t,r,+E,+F",  0x7c000006, 0xfc00003f, WR_1|RD_2,        0,    I65,    0,  0 },
1068
/* The MIPS assembler treats the div opcode with two operands as
1069
   though the first operand appeared twice (the first operand is both
1070
   a source and a destination).  To get the div machine instruction,
1071
   you must use an explicit destination of $0.  */
1072
{"mod",     "d,v,t",  0x000000da, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I37,    0,  0},
1073
{"modu",    "d,v,t",  0x000000db, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I37,    0,  0},
1074
{"div",     "d,v,t",  0x0000009a, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I37,    0,  0},
1075
{"div",     "z,s,t",  0x0000001a, 0xfc00ffff, RD_2|RD_3|WR_HILO,      0,    I1,   0,  I37 },
1076
{"div",     "z,t",    0x0000001a, 0xffe0ffff, RD_2|WR_HILO,   0,    I1,   0,  I37 },
1077
{"div",     "d,v,t",  0,    (int) M_DIV_3,  INSN_MACRO,   0,    I1,   0,  I37 },
1078
{"div",     "d,v,I",  0,    (int) M_DIV_3I, INSN_MACRO,   0,    I1,   0,  I37 },
1079
{"div1",    "z,s,t",  0x7000001a, 0xfc00ffff, RD_2|RD_3|WR_HILO,      0,    EE,   0,  0 },
1080
{"div1",    "z,t",    0x7000001a, 0xffe0ffff, RD_2|WR_HILO,   0,    EE,   0,  0 },
1081
{"div.d",   "D,V,T",  0x46200003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I1,   0,  SF },
1082
{"div.s",   "D,V,T",  0x46000003, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I1,   0,  0 },
1083
{"div.ps",    "D,V,T",  0x46c00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    0,  0 },
1084
/* For divu, see the comments about div.  */
1085
{"divu",    "d,v,t",  0x0000009b, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I37,    0,  0},
1086
{"divu",    "z,s,t",  0x0000001b, 0xfc00ffff, RD_2|RD_3|WR_HILO,      0,    I1,   0,  I37 },
1087
{"divu",    "z,t",    0x0000001b, 0xffe0ffff, RD_2|WR_HILO,   0,    I1,   0,  I37 },
1088
{"divu",    "d,v,t",  0,    (int) M_DIVU_3, INSN_MACRO,   0,    I1,   0,  I37 },
1089
{"divu",    "d,v,I",  0,    (int) M_DIVU_3I,  INSN_MACRO,   0,    I1,   0,  I37 },
1090
{"divu1",   "z,s,t",  0x7000001b, 0xfc00ffff, RD_2|RD_3|WR_HILO,      0,    EE,   0,  0 },
1091
{"divu1",   "z,t",    0x7000001b, 0xffe0ffff, RD_2|WR_HILO,   0,    EE,   0,  0 },
1092
{"dla",     "t,A(b)", 0,    (int) M_DLA_AB, INSN_MACRO,   0,    I3,   0,  0 },
1093
{"dlca",    "t,A(b)", 0,    (int) M_DLCA_AB,  INSN_MACRO,   0,    I3,   0,  0 },
1094
{"dli",     "t,j",    0x24000000, 0xffe00000, WR_1,     0,    I3,   0,  0 }, /* addiu */
1095
{"dli",     "t,i",    0x34000000, 0xffe00000, WR_1,     0,    I3,   0,  0 }, /* ori */
1096
{"dli",     "t,I",    0,    (int) M_DLI,  INSN_MACRO,   0,    I3,   0,  0 },
1097
{"dmacc",   "d,s,t",  0x00000029, 0xfc0007ff, WR_1|RD_2|RD_3|WR_LO, 0,    N412,   0,  0 },
1098
{"dmacchi",   "d,s,t",  0x00000229, 0xfc0007ff, WR_1|RD_2|RD_3|WR_LO, 0,    N412,   0,  0 },
1099
{"dmacchis",    "d,s,t",  0x00000629, 0xfc0007ff, WR_1|RD_2|RD_3|WR_LO, 0,    N412,   0,  0 },
1100
{"dmacchiu",    "d,s,t",  0x00000269, 0xfc0007ff, WR_1|RD_2|RD_3|WR_LO, 0,    N412,   0,  0 },
1101
{"dmacchius",   "d,s,t",  0x00000669, 0xfc0007ff, WR_1|RD_2|RD_3|WR_LO, 0,    N412,   0,  0 },
1102
{"dmaccs",    "d,s,t",  0x00000429, 0xfc0007ff, WR_1|RD_2|RD_3|WR_LO, 0,    N412,   0,  0 },
1103
{"dmaccu",    "d,s,t",  0x00000069, 0xfc0007ff, WR_1|RD_2|RD_3|WR_LO, 0,    N412,   0,  0 },
1104
{"dmaccus",   "d,s,t",  0x00000469, 0xfc0007ff, WR_1|RD_2|RD_3|WR_LO, 0,    N412,   0,  0 },
1105
{"dmadd16",   "s,t",    0x00000029, 0xfc00ffff, RD_1|RD_2|MOD_LO,       0,    N411,   0,  0 },
1106
{"dmfc0",   "t,G",    0x40200000, 0xffe007ff, WR_1|RD_C0|LC,    0,    I3,   0,  EE },
1107
{"dmfc0",   "t,G,H",  0x40200000, 0xffe007f8, WR_1|RD_C0|LC,    0,    I64,    0,  0 },
1108
{"dmfc1",   "t,S",    0x44200000, 0xffe007ff, WR_1|RD_2|LC|FP_D,  0,    I3,   0,  SF },
1109
{"dmfc1",   "t,G",    0x44200000, 0xffe007ff, WR_1|RD_2|LC|FP_D,  0,    I3,   0,  SF },
1110
/* dmfc2 is at the bottom of the table.  */
1111
{"dmfgc0",    "t,G",    0x40600100, 0xffe007ff, WR_1|RD_C0|LC,    0,    0,    IVIRT64, 0 },
1112
{"dmfgc0",    "t,G,H",  0x40600100, 0xffe007f8, WR_1|RD_C0|LC,    0,    0,    IVIRT64, 0 },
1113
{"dmt",     "",   0x41600bc1, 0xffffffff, TRAP,     0,    0,    MT32, 0 },
1114
{"dmt",     "t",    0x41600bc1, 0xffe0ffff, WR_1|TRAP,    0,    0,    MT32, 0 },
1115
{"dmtc0",   "t,G",    0x40a00000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM,  0,    I3,   0,  EE },
1116
{"dmtc0",   "t,G,H",  0x40a00000, 0xffe007f8, RD_1|WR_C0|WR_CC|CM,  0,    I64,    0,  0 },
1117
{"dmtc1",   "t,S",    0x44a00000, 0xffe007ff, RD_1|WR_2|CM|FP_D,  0,    I3,   0,  SF },
1118
{"dmtc1",   "t,G",    0x44a00000, 0xffe007ff, RD_1|WR_2|CM|FP_D,     0,   I3,   0,  SF },
1119
/* dmtc2 is at the bottom of the table.  */
1120
{"dmtgc0",    "t,G",    0x40600300, 0xffe007ff, RD_1|WR_C0|WR_CC|CM,  0,    0,    IVIRT64, 0 },
1121
{"dmtgc0",    "t,G,H",  0x40600300, 0xffe007f8, RD_1|WR_C0|WR_CC|CM,  0,    0,    IVIRT64, 0 },
1122
{"dmuh",    "d,s,t",  0x000000dc, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I69,    0,  0 },
1123
{"dmul",    "d,s,t",  0x0000009c, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I69,    0,  0 },
1124
{"dmul",    "d,v,t",  0x70000003, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    IOCT,   0,  0 },
1125
{"dmul",    "d,v,t",  0,    (int) M_DMUL, INSN_MACRO,   0,    I3,   0,  M32|I69 },
1126
{"dmul",    "d,v,I",  0,    (int) M_DMUL_I, INSN_MACRO,   0,    I3,   0,  M32|I69 },
1127
{"dmulo",   "d,v,t",  0,    (int) M_DMULO,  INSN_MACRO,   0,    I3,   0,  M32|I69 },
1128
{"dmulo",   "d,v,I",  0,    (int) M_DMULO_I,  INSN_MACRO,   0,    I3,   0,  M32|I69 },
1129
{"dmulou",    "d,v,t",  0,    (int) M_DMULOU, INSN_MACRO,   0,    I3,   0,  M32|I69 },
1130
{"dmulou",    "d,v,I",  0,    (int) M_DMULOU_I, INSN_MACRO,   0,    I3,   0,  M32|I69 },
1131
{"dmult",   "s,t",    0x0000001c, 0xfc00ffff, RD_1|RD_2|WR_HILO,      0,    I3,   0,  M32|I69 },
1132
{"dmulu",   "d,s,t",  0x0000009d, 0xfc0007ff, WR_1|RD_2|RD_3,       0,    I69,    0,  0 },
1133
{"dmuhu",   "d,s,t",  0x000000dd, 0xfc0007ff, WR_1|RD_2|RD_3,       0,    I69,    0,  0 },
1134
{"dmultu",    "s,t",    0x0000001d, 0xfc00ffff, RD_1|RD_2|WR_HILO,      0,    I3,   0,  M32|I69 },
1135
{"dneg",    "d,w",    0x0000002e, 0xffe007ff, WR_1|RD_2,    0,    I3,   0,  0 }, /* dsub 0 */
1136
{"dnegu",   "d,w",    0x0000002f, 0xffe007ff, WR_1|RD_2,    0,    I3,   0,  0 }, /* dsubu 0*/
1137
{"dpop",    "d,v",    0x7000002d, 0xfc1f07ff, WR_1|RD_2,    0,    IOCT,   0,  0 },
1138
{"drem",    "z,s,t",  0x0000001e, 0xfc00ffff, RD_2|RD_3|WR_HILO,      0,    I3,   0,  M32|I69 },
1139
{"drem",    "d,v,t",  0,    (int) M_DREM_3, INSN_MACRO,   0,    I3,   0,  M32|I69 },
1140
{"drem",    "d,v,I",  0,    (int) M_DREM_3I,  INSN_MACRO,   0,    I3,   0,  M32|I69 },
1141
{"dremu",   "z,s,t",  0x0000001f, 0xfc00ffff, RD_2|RD_3|WR_HILO,      0,    I3,   0,  M32|I69 },
1142
{"dremu",   "d,v,t",  0,    (int) M_DREMU_3,  INSN_MACRO,   0,    I3,   0,  M32|I69 },
1143
{"dremu",   "d,v,I",  0,    (int) M_DREMU_3I, INSN_MACRO,   0,    I3,   0,  M32|I69 },
1144
{"dret",    "",   0x7000003e, 0xffffffff, 0,      0,    N5|ALX,   0,  0 },
1145
{"drol",    "d,v,t",  0,    (int) M_DROL, INSN_MACRO,   0,    I3,   0,  0 },
1146
{"drol",    "d,v,I",  0,    (int) M_DROL_I, INSN_MACRO,   0,    I3,   0,  0 },
1147
{"dror",    "d,v,t",  0,    (int) M_DROR, INSN_MACRO,   0,    I3,   0,  0 },
1148
{"dror",    "d,v,I",  0,    (int) M_DROR_I, INSN_MACRO,   0,    I3,   0,  0 },
1149
{"dror",    "d,w,<",  0x0020003a, 0xffe0003f, WR_1|RD_2,    0,    N5|I65,   0,  0 },
1150
{"drorv",   "d,t,s",  0x00000056, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    N5|I65,   0,  0 },
1151
{"dror32",    "d,w,<",  0x0020003e, 0xffe0003f, WR_1|RD_2,    0,    N5|I65,   0,  0 },
1152
{"drotl",   "d,v,t",  0,    (int) M_DROL, INSN_MACRO,   0,    I65,    0,  0 },
1153
{"drotl",   "d,v,I",  0,    (int) M_DROL_I, INSN_MACRO,   0,    I65,    0,  0 },
1154
{"drotr",   "d,v,t",  0,    (int) M_DROR, INSN_MACRO,   0,    I65,    0,  0 },
1155
{"drotr",   "d,v,I",  0,    (int) M_DROR_I, INSN_MACRO,   0,    I65,    0,  0 },
1156
{"drotrv",    "d,t,s",  0x00000056, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I65,    0,  0 },
1157
{"drotr32",   "d,w,<",  0x0020003e, 0xffe0003f, WR_1|RD_2,    0,    I65,    0,  0 },
1158
{"dsbh",    "d,w",    0x7c0000a4, 0xffe007ff, WR_1|RD_2,    0,    I65,    0,  0 },
1159
{"dshd",    "d,w",    0x7c000164, 0xffe007ff, WR_1|RD_2,    0,    I65,    0,  0 },
1160
{"dsllv",   "d,t,s",  0x00000014, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I3,   0,  0 },
1161
{"dsll32",    "d,w,<",  0x0000003c, 0xffe0003f, WR_1|RD_2,    0,    I3,   0,  0 },
1162
{"dsll",    "d,w,s",  0x00000014, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I3,   0,  0 }, /* dsllv */
1163
{"dsll",    "d,w,>",  0x0000003c, 0xffe0003f, WR_1|RD_2,    0,    I3,   0,  0 }, /* dsll32 */
1164
{"dsll",    "d,w,<",  0x00000038, 0xffe0003f, WR_1|RD_2,    0,    I3,   0,  0 },
1165
{"dsll",    "D,S,T",  0x45a00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1166
{"dsll",    "D,S,T",  0x4b20000e, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
1167
{"dsrav",   "d,t,s",  0x00000017, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I3,   0,  0 },
1168
{"dsra32",    "d,w,<",  0x0000003f, 0xffe0003f, WR_1|RD_2,    0,    I3,   0,  0 },
1169
{"dsra",    "d,w,s",  0x00000017, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I3,   0,  0 }, /* dsrav */
1170
{"dsra",    "d,w,>",  0x0000003f, 0xffe0003f, WR_1|RD_2,    0,    I3,   0,  0 }, /* dsra32 */
1171
{"dsra",    "d,w,<",  0x0000003b, 0xffe0003f, WR_1|RD_2,    0,    I3,   0,  0 },
1172
{"dsra",    "D,S,T",  0x45e00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1173
{"dsra",    "D,S,T",  0x4b60000f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
1174
{"dsrlv",   "d,t,s",  0x00000016, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I3,   0,  0 },
1175
{"dsrl32",    "d,w,<",  0x0000003e, 0xffe0003f, WR_1|RD_2,    0,    I3,   0,  0 },
1176
{"dsrl",    "d,w,s",  0x00000016, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I3,   0,  0 }, /* dsrlv */
1177
{"dsrl",    "d,w,>",  0x0000003e, 0xffe0003f, WR_1|RD_2,    0,    I3,   0,  0 }, /* dsrl32 */
1178
{"dsrl",    "d,w,<",  0x0000003a, 0xffe0003f, WR_1|RD_2,    0,    I3,   0,  0 },
1179
{"dsrl",    "D,S,T",  0x45a00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1180
{"dsrl",    "D,S,T",  0x4b20000f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
1181
{"dsub",    "d,v,t",  0x0000002e, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I3,   0,  0 },
1182
{"dsub",    "d,v,I",  0,    (int) M_DSUB_I, INSN_MACRO,   0,    I3,   0,  0 },
1183
{"dsub",    "D,S,T",  0x45e00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1184
{"dsub",    "D,S,T",  0x4b60000d, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
1185
{"dsubu",   "d,v,t",  0x0000002f, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I3,   0,  0 },
1186
{"dsubu",   "d,v,I",  0,    (int) M_DSUBU_I,  INSN_MACRO,   0,    I3,   0,  0 },
1187
{"dvpe",    "",   0x41600001, 0xffffffff, TRAP,     0,    0,    MT32, 0 },
1188
{"dvpe",    "t",    0x41600001, 0xffe0ffff, WR_1|TRAP,    0,    0,    MT32, 0 },
1189
{"dvp",     "",   0x41600024, 0xffffffff, TRAP,     0,    I37,    0,  0 },
1190
{"dvp",     "t",    0x41600024, 0xffe0ffff, WR_1|TRAP,    0,    I37,    0,  0 },
1191
{"ei",      "",   0x42000038, 0xffffffff, WR_C0,      0,    EE,   0,  0 },
1192
{"ei",      "",   0x41606020, 0xffffffff, WR_C0,      0,    I33,    0,  0 },
1193
{"ei",      "t",    0x41606020, 0xffe0ffff, WR_1|WR_C0,   0,    I33,    0,  0 },
1194
{"emt",     "",   0x41600be1, 0xffffffff, TRAP,     0,    0,    MT32, 0 },
1195
{"emt",     "t",    0x41600be1, 0xffe0ffff, WR_1|TRAP,    0,    0,    MT32, 0 },
1196
{"eret",    "",   0x42000018, 0xffffffff, NODS,         0,    I3_32|ALX,  0,  0 },
1197
{"eretnc",    "",   0x42000058, 0xffffffff, NODS,         0,    I36,    0,  0 },
1198
{"evpe",    "",   0x41600021, 0xffffffff, TRAP,     0,    0,    MT32, 0 },
1199
{"evpe",    "t",    0x41600021, 0xffe0ffff, WR_1|TRAP,    0,    0,    MT32, 0 },
1200
{"evp",     "",   0x41600004, 0xffffffff, TRAP,     0,    I37,    0,  0 },
1201
{"evp",     "t",    0x41600004, 0xffe0ffff, WR_1|TRAP,    0,    I37,    0,  0 },
1202
{"ext",     "t,r,+A,+C",  0x7c000000, 0xfc00003f, WR_1|RD_2,        0,    I33|ALX,    0,  0 },
1203
{"exts32",    "t,r,+p,+s",  0x7000003b, 0xfc00003f, WR_1|RD_2,    0,    IOCT,   0,  0 },
1204
{"exts",    "t,r,+P,+S",  0x7000003b, 0xfc00003f, WR_1|RD_2,    0,    IOCT,   0,  0 }, /* exts32 */
1205
{"exts",    "t,r,+p,+S",  0x7000003a, 0xfc00003f, WR_1|RD_2,    0,    IOCT,   0,  0 },
1206
{"floor.l.d",   "D,S",    0x4620000b, 0xffff003f, WR_1|RD_2|FP_D,   0,    I3_33,    0,  0 },
1207
{"floor.l.s",   "D,S",    0x4600000b, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I3_33,    0,  0 },
1208
{"floor.w.d",   "D,S",    0x4620000f, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I2,   0,  SF },
1209
{"floor.w.s",   "D,S",    0x4600000f, 0xffff003f, WR_1|RD_2|FP_S,   0,    I2,   0,  0 },
1210
{"hibernate",   "",   0x42000023, 0xffffffff, 0,      0,    V1,   0,  0 },
1211
{"hypcall",   "",   0x42000028, 0xffffffff, TRAP,     0,    0,    IVIRT,  0 },
1212
{"hypcall",   "+J",   0x42000028, 0xffe007ff, TRAP,     0,    0,    IVIRT,  0 },
1213
{"ins",     "t,r,+A,+B",  0x7c000004, 0xfc00003f, WR_1|RD_2,        0,    I33|ALX,    0,  0 },
1214
{"iret",    "",   0x42000038, 0xffffffff, NODS,     0,    0,    MC, 0 },
1215
{"jr",      "s",    0x00000009, 0xfc1fffff, RD_1|UBD,   AL,   I37,    0,  0 }, /* jalr $0 */
1216
{"jr",      "s",    0x00000008, 0xfc1fffff, RD_1|UBD,   0,    I1,   0,  I37 },
1217
/* MIPS R6 jic appears before beqzc and jialc appears before bnezc */
1218
/* jr.hb is officially MIPS{32,64}R2, but it works on R1 as jr with
1219
   the same hazard barrier effect.  */
1220
{"jr.hb",   "s",    0x00000409, 0xfc1fffff, RD_1|UBD,   AL,   I37,    0,  0 }, /* jalr.hb $0 */
1221
{"jr.hb",   "s",    0x00000408, 0xfc1fffff, RD_1|UBD,   0,    I32,    0,  I37 },
1222
{"j",     "s",    0x00000009, 0xfc1fffff, RD_1|UBD,   AL,   I37,    0,  0 }, /* jalr $0 */
1223
{"j",     "s",    0x00000008, 0xfc1fffff, RD_1|UBD,   0,    I1,   0,  I37 }, /* jr */
1224
/* SVR4 PIC code requires special handling for j, so it must be a
1225
   macro.  */
1226
{"j",     "a",    0,     (int) M_J_A, INSN_MACRO,   0,    I1,   0,  0 },
1227
/* This form of j is used by the disassembler and internally by the
1228
   assembler, but will never match user input (because the line above
1229
   will match first).  */
1230
{"j",     "a",    0x08000000, 0xfc000000, UBD,      0,    I1,   0,  0 },
1231
{"jalr",    "s",    0x0000f809, 0xfc1fffff, RD_1|WR_31|UBD,   0,    I1,   0,  0 },
1232
{"jalr",    "d,s",    0x00000009, 0xfc1f07ff, WR_1|RD_2|UBD,    0,    I1,   0,  0 },
1233
/* jalr.hb is officially MIPS{32,64}R2, but it works on R1 as jalr
1234
   with the same hazard barrier effect.  */
1235
{"jalr.hb",   "s",    0x0000fc09, 0xfc1fffff, RD_1|WR_31|UBD,   0,    I32,    0,  0 },
1236
{"jalr.hb",   "d,s",    0x00000409, 0xfc1f07ff, WR_1|RD_2|UBD,    0,    I32,    0,  0 },
1237
/* SVR4 PIC code requires special handling for jal, so it must be a
1238
   macro.  */
1239
{"jal",     "d,s",    0,     (int) M_JAL_2, INSN_MACRO,   0,    I1,   0,  0 },
1240
{"jal",     "s",    0,     (int) M_JAL_1, INSN_MACRO,   0,    I1,   0,  0 },
1241
{"jal",     "a",    0,     (int) M_JAL_A, INSN_MACRO,   0,    I1,   0,  0 },
1242
/* This form of jal is used by the disassembler and internally by the
1243
   assembler, but will never match user input (because the line above
1244
   will match first).  */
1245
{"jal",     "a",    0x0c000000, 0xfc000000, WR_31|UBD,    0,    I1,   0,  0 },
1246
{"jalx",    "+i",   0x74000000, 0xfc000000, WR_31|UBD,    0,    I1,   0,  I37 },
1247
{"laa",     "d,(b),t",  0x7000049f, 0xfc0007ff, WR_1|RD_2|RD_3|LM|SM, 0,    IOCT2,    0,  0 },
1248
{"laad",    "d,(b),t",  0x700004df, 0xfc0007ff, WR_1|RD_2|RD_3|LM|SM, 0,    IOCT2,    0,  0 },
1249
{"lac",     "d,(b)",  0x7000039f, 0xfc1f07ff, WR_1|RD_2|LM|SM,  0,    IOCT2,    0,  0 },
1250
{"lacd",    "d,(b)",  0x700003df, 0xfc1f07ff, WR_1|RD_2|LM|SM,  0,    IOCT2,    0,  0 },
1251
{"lad",     "d,(b)",  0x7000019f, 0xfc1f07ff, WR_1|RD_2|LM|SM,  0,    IOCT2,    0,  0 },
1252
{"ladd",    "d,(b)",  0x700001df, 0xfc1f07ff, WR_1|RD_2|LM|SM,  0,    IOCT2,    0,  0 },
1253
{"lai",     "d,(b)",  0x7000009f, 0xfc1f07ff, WR_1|RD_2|LM|SM,  0,    IOCT2,    0,  0 },
1254
{"laid",    "d,(b)",  0x700000df, 0xfc1f07ff, WR_1|RD_2|LM|SM,  0,    IOCT2,    0,  0 },
1255
{"las",     "d,(b)",  0x7000029f, 0xfc1f07ff, WR_1|RD_2|LM|SM,  0,    IOCT2,    0,  0 },
1256
{"lasd",    "d,(b)",  0x700002df, 0xfc1f07ff, WR_1|RD_2|LM|SM,  0,    IOCT2,    0,  0 },
1257
{"law",     "d,(b),t",  0x7000059f, 0xfc0007ff, WR_1|RD_2|RD_3|LM|SM, 0,    IOCT2,    0,  0 },
1258
{"lawd",    "d,(b),t",  0x700005df, 0xfc0007ff, WR_1|RD_2|RD_3|LM|SM, 0,    IOCT2,    0,  0 },
1259
{"lb",      "t,o(b)", 0x80000000, 0xfc000000, WR_1|RD_3|LM,   0,    I1,   0,  0 },
1260
{"lb",      "t,A(b)", 0,    (int) M_LB_AB,  INSN_MACRO,   0,    I1,   0,  0 },
1261
{"lbu",     "t,o(b)", 0x90000000, 0xfc000000, WR_1|RD_3|LM,   0,    I1,   0,  0 },
1262
{"lbu",     "t,A(b)", 0,    (int) M_LBU_AB, INSN_MACRO,   0,    I1,   0,  0 },
1263
{"lbx",     "d,t(b)", 0x7c00058a, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    IOCT2,    0,  0 },
1264
{"lbux",    "d,t(b)", 0x7c00018a, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    IOCT2,    D32,  0},
1265
{"ldx",     "d,t(b)", 0x7c00020a, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    IOCT2,    D64,  0},
1266
{"lhx",     "d,t(b)", 0x7c00010a, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    IOCT2,    D32,  0},
1267
{"lhux",    "d,t(b)", 0x7c00050a, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    IOCT2,    0,  0 },
1268
{"lwx",     "d,t(b)", 0x7c00000a, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    IOCT2,    D32,  0},
1269
{"lwux",    "d,t(b)", 0x7c00040a, 0xfc0007ff, WR_1|RD_2|RD_3|LM,  0,    IOCT2,    0,  0 },
1270
{"lca",     "t,A(b)", 0,    (int) M_LCA_AB, INSN_MACRO,   0,    I1,   0,  0 },
1271
{"ldpc",    "s,-B",   0xec180000, 0xfc1c0000, WR_1,     RD_pc,    I69,    0,  0 },
1272
/* The macro has to be first to handle o32 correctly.  */
1273
{"ld",      "s,-b(+R)", 0xec180000, 0xfc1c0000, WR_1,     RD_pc,    I69,    0,  0 },
1274
{"ld",      "t,A(b)", 0,    (int) M_LD_AB,  INSN_MACRO,   0,    I1,   0,  0 },
1275
{"ld",      "t,o(b)", 0xdc000000, 0xfc000000, WR_1|RD_3|LM,   0,    I3,   0,  0 },
1276
{"ldaddw",    "t,b",    0x70000010, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0,    XLR,    0,  0 },
1277
{"ldaddwu",   "t,b",    0x70000011, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0,    XLR,    0,  0 },
1278
{"ldaddd",    "t,b",    0x70000012, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0,    XLR,    0,  0 },
1279
{"ldc1",    "T,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0,    I2,   0,  SF },
1280
{"ldc1",    "E,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0,    I2,   0,  SF },
1281
{"ldc1",    "T,A(b)", 0,    (int) M_LDC1_AB,  INSN_MACRO,   INSN2_M_FP_D, I2,   0,  SF },
1282
{"ldc1",    "E,A(b)", 0,    (int) M_LDC1_AB,  INSN_MACRO,   INSN2_M_FP_D, I2,   0,  SF },
1283
{"l.d",     "T,o(b)", 0xd4000000, 0xfc000000, WR_1|RD_3|CLD|FP_D, 0,    I2,   0,  SF }, /* ldc1 */
1284
{"l.d",     "T,A(b)", 0,    (int) M_L_DAB,  INSN_MACRO,   INSN2_M_FP_D, I1,   0,  0 },
1285
{"ldc2",    "E,+:(d)",  0x49c00000, 0xffe00000, RD_3|WR_C2|CLD,   0,    I37,    0,  0 },
1286
{"ldc2",    "E,o(b)", 0xd8000000, 0xfc000000, RD_3|WR_CC|CLD,   0,    I2,   0,  N54|IOCT|IOCTP|IOCT2|EE|ALX|I37 },
1287
{"ldc2",    "E,A(b)", 0,    (int) M_LDC2_AB,  INSN_MACRO,   0,    I2,   0,  N54|IOCT|IOCTP|IOCT2|EE|ALX },
1288
{"ldc3",    "E,o(b)", 0xdc000000, 0xfc000000, RD_3|WR_CC|CLD,   0,    I2,   0,  I3_32|EE|ALX },
1289
{"ldc3",    "E,A(b)", 0,    (int) M_LDC3_AB,  INSN_MACRO,   0,    I2,   0,  I3_32|EE|ALX },
1290
{"ldl",     "t,o(b)", 0x68000000, 0xfc000000, WR_1|RD_3|LM,   0,    I3,   0,  I69 },
1291
{"ldl",     "t,A(b)", 0,    (int) M_LDL_AB, INSN_MACRO,   0,    I3,   0,  I69 },
1292
{"ldr",     "t,o(b)", 0x6c000000, 0xfc000000, WR_1|RD_3|LM,   0,    I3,   0,  I69 },
1293
{"ldr",     "t,A(b)", 0,    (int) M_LDR_AB, INSN_MACRO,   0,    I3,   0,  I69 },
1294
{"ldxc1",   "D,t(b)", 0x4c000001, 0xfc00f83f, WR_1|RD_2|RD_3|LM|FP_D, 0,    I4_33,    0,  I37 },
1295
{"lh",      "t,o(b)", 0x84000000, 0xfc000000, WR_1|RD_3|LM,   0,    I1,   0,  0 },
1296
{"lh",      "t,A(b)", 0,    (int) M_LH_AB,  INSN_MACRO,   0,    I1,   0,  0 },
1297
{"lhu",     "t,o(b)", 0x94000000, 0xfc000000, WR_1|RD_3|LM,   0,    I1,   0,  0 },
1298
{"lhu",     "t,A(b)", 0,    (int) M_LHU_AB, INSN_MACRO,   0,    I1,   0,  0 },
1299
/* li is at the start of the table.  */
1300
{"li.d",    "t,F",    0,    (int) M_LI_D, INSN_MACRO,   INSN2_M_FP_D, I1,   0,  SF },
1301
{"li.d",    "T,L",    0,    (int) M_LI_DD,  INSN_MACRO,   INSN2_M_FP_D, I1,   0,  SF },
1302
{"li.s",    "t,f",    0,    (int) M_LI_S, INSN_MACRO,   INSN2_M_FP_S, I1,   0,  0 },
1303
{"li.s",    "T,l",    0,    (int) M_LI_SS,  INSN_MACRO,   INSN2_M_FP_S, I1,   0,  0 },
1304
{"ll",      "t,+j(b)",  0x7c000036, 0xfc00007f, WR_1|RD_3|LM,   0,    I37,    0,  0 },
1305
{"ll",      "t,o(b)", 0xc0000000, 0xfc000000, WR_1|RD_3|LM,   0,    I2,   0,  EE|I37 },
1306
{"ll",      "t,A(b)", 0,    (int) M_LL_AB,  INSN_MACRO,   0,    I2,   0,  EE },
1307
{"lld",     "t,+j(b)",  0x7c000037, 0xfc00007f, WR_1|RD_3|LM,   0,    I69,    0,  0 },
1308
{"lld",     "t,o(b)", 0xd0000000, 0xfc000000, WR_1|RD_3|LM,   0,    I3,   0,  EE|I69 },
1309
{"lld",     "t,A(b)", 0,    (int) M_LLD_AB, INSN_MACRO,   0,    I3,   0,  EE },
1310
{"lldp",    "t,d,s",  0x7c000077, 0xfc0007ff, WR_1|WR_2|RD_3|LM,  0,    I69,    0,  0 },
1311
{"lldp",    "t,d,A(b)", 0,    (int) M_LLDP_AB,  INSN_MACRO,   0,    I69,    0,  0 },
1312
{"llwp",    "t,d,s",  0x7c000076, 0xfc0007ff, WR_1|WR_2|RD_3|LM,  0,    I37,    0,  0 },
1313
{"llwp",    "t,d,A(b)", 0,    (int) M_LLWP_AB,  INSN_MACRO,   0,    I37,    0,  0 },
1314
{"lq",      "t,o(b)", 0x78000000, 0xfc000000, WR_1|RD_3|LM,   0,    MMI,    0,  0 },
1315
{"lq",      "t,A(b)", 0,    (int) M_LQ_AB,  INSN_MACRO,   0,    MMI,    0,  0 },
1316
{"lqc2",    "+7,o(b)",  0xd8000000, 0xfc000000, RD_3|WR_C2|LM,    0,    EE,   0,  0 },
1317
{"lqc2",    "+7,A(b)",  0,    (int) M_LQC2_AB,  INSN_MACRO,   0,    EE,   0,  0 },
1318
{"lui",     "t,u",    0x3c000000, 0xffe00000, WR_1,     0,    I1,   0,  0 },
1319
{"luxc1",   "D,t(b)", 0x4c000005, 0xfc00f83f, WR_1|RD_2|RD_3|LM|FP_D, 0,    I5_33|N55,  0,  I37},
1320
{"lwpc",    "s,-A",   0xec080000, 0xfc180000, WR_1|LM,    RD_pc,    I37,    0,  0 },
1321
{"lw",      "t,o(b)", 0x8c000000, 0xfc000000, WR_1|RD_3|LM,   0,    I1,   0,  0 },
1322
{"lw",      "s,-a(+R)", 0xec080000, 0xfc180000, WR_1|LM,    RD_pc,    I37,    0,  0 },
1323
{"lw",      "t,A(b)", 0,    (int) M_LW_AB,  INSN_MACRO,   0,    I1,   0,  0 },
1324
{"lwc0",    "E,o(b)", 0xc0000000, 0xfc000000, RD_3|WR_CC|CLD,   0,    I1,   0,  I2 },
1325
{"lwc0",    "E,A(b)", 0,    (int) M_LWC0_AB,  INSN_MACRO,   0,    I1,   0,  I2 },
1326
{"lwc1",    "T,o(b)", 0xc4000000, 0xfc000000, WR_1|RD_3|CLD|FP_S, 0,    I1,   0,  0 },
1327
{"lwc1",    "E,o(b)", 0xc4000000, 0xfc000000, WR_1|RD_3|CLD|FP_S, 0,    I1,   0,  0 },
1328
{"lwc1",    "T,A(b)", 0,    (int) M_LWC1_AB,  INSN_MACRO,   INSN2_M_FP_S, I1,   0,  0 },
1329
{"lwc1",    "E,A(b)", 0,    (int) M_LWC1_AB,  INSN_MACRO,   INSN2_M_FP_S, I1,   0,  0 },
1330
{"l.s",     "T,o(b)", 0xc4000000, 0xfc000000, WR_1|RD_3|CLD|FP_S, 0,    I1,   0,  0 }, /* lwc1 */
1331
{"l.s",     "T,A(b)", 0,    (int) M_LWC1_AB,  INSN_MACRO,   INSN2_M_FP_S, I1,   0,  0 },
1332
{"lwc2",    "E,+:(d)",  0x49400000, 0xffe00000, RD_3|WR_C2|CLD,   0,    I37,    0,  0 },
1333
{"lwc2",    "E,o(b)", 0xc8000000, 0xfc000000, RD_3|WR_CC|CLD,   0,    I1,   0,  N54|IOCT|IOCTP|IOCT2|EE|I37 },
1334
{"lwc2",    "E,A(b)", 0,    (int) M_LWC2_AB,  INSN_MACRO,   0,    I1,   0,  N54|IOCT|IOCTP|IOCT2|EE },
1335
{"lwc3",    "E,o(b)", 0xcc000000, 0xfc000000, RD_3|WR_CC|CLD,   0,    I1,   0,  I3_32|EE|ALX },
1336
{"lwc3",    "E,A(b)", 0,    (int) M_LWC3_AB,  INSN_MACRO,   0,    I1,   0,  I3_32|EE|ALX },
1337
{"lwl",     "t,o(b)", 0x88000000, 0xfc000000, WR_1|RD_3|LM,   0,    I1,   0,  I37 },
1338
{"lwl",     "t,A(b)", 0,    (int) M_LWL_AB, INSN_MACRO,   0,    I1,   0,  I37 },
1339
{"lcache",    "t,o(b)", 0x88000000, 0xfc000000, WR_1|RD_3|LM,   0,    I2,   0,  I37 }, /* same */
1340
{"lcache",    "t,A(b)", 0,    (int) M_LWL_AB, INSN_MACRO,   0,    I2,   0,  I37 }, /* as lwl */
1341
{"lwr",     "t,o(b)", 0x98000000, 0xfc000000, WR_1|RD_3|LM,   0,    I1,   0,  I37 },
1342
{"lwr",     "t,A(b)", 0,    (int) M_LWR_AB, INSN_MACRO,   0,    I1,   0,  I37 },
1343
{"flush",   "t,o(b)", 0x98000000, 0xfc000000, WR_1|RD_3|LM,   0,    I2,   0,  I37 }, /* same */
1344
{"flush",   "t,A(b)", 0,    (int) M_LWR_AB, INSN_MACRO,   0,    I2,   0,  I37 }, /* as lwr */
1345
{"fork",    "d,s,t",  0x7c000008, 0xfc0007ff, WR_1|RD_2|RD_3|TRAP,  0,    0,    MT32, 0 },
1346
{"lwupc",   "s,-A",   0xec100000, 0xfc180000, WR_1,     RD_pc,    I69,    0,  0 },
1347
{"lwu",     "t,o(b)", 0x9c000000, 0xfc000000, WR_1|RD_3|LM,   0,    I3,   0,  0 },
1348
{"lwu"  ,   "s,-a(+R)", 0xec100000, 0xfc180000, WR_1,     RD_pc,    I69,    0,  0 },
1349
{"lwu",     "t,A(b)", 0,    (int) M_LWU_AB, INSN_MACRO,   0,    I3,   0,  0 },
1350
{"lwxc1",   "D,t(b)", 0x4c000000, 0xfc00f83f, WR_1|RD_2|RD_3|LM|FP_S,     0,    I4_33,    0,  I37 },
1351
{"lwxs",    "d,t(b)", 0x70000088, 0xfc0007ff, WR_1|RD_2|RD_3|LM,       0,   0,    SMT,  0 },
1352
{"macc",    "d,s,t",  0x00000028, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N412,   0,  0 },
1353
{"macc",    "d,s,t",  0x00000158, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N5,   0,  0 },
1354
{"maccs",   "d,s,t",  0x00000428, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N412,   0,  0 },
1355
{"macchi",    "d,s,t",  0x00000228, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N412,   0,  0 },
1356
{"macchi",    "d,s,t",  0x00000358, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N5,   0,  0 },
1357
{"macchis",   "d,s,t",  0x00000628, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N412,   0,  0 },
1358
{"macchiu",   "d,s,t",  0x00000268, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N412,   0,  0 },
1359
{"macchiu",   "d,s,t",  0x00000359, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N5,   0,  0 },
1360
{"macchius",    "d,s,t",  0x00000668, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N412,   0,  0 },
1361
{"maccu",   "d,s,t",  0x00000068, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N412,   0,  0 },
1362
{"maccu",   "d,s,t",  0x00000159, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N5,   0,  0 },
1363
{"maccus",    "d,s,t",  0x00000468, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO,      0,   N412,   0,  0 },
1364
{"mad",     "s,t",    0x70000000, 0xfc00ffff, RD_1|RD_2|MOD_HILO,      0,   P3,   0,  0 },
1365
{"madu",    "s,t",    0x70000001, 0xfc00ffff, RD_1|RD_2|MOD_HILO,      0,   P3,   0,  0 },
1366
{"madd.d",    "D,R,S,T",  0x4c000021, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D,    0,   I4_33,    0,  I37 },
1367
{"madd.d",    "D,S,T",  0x46200018, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,       0,   IL2E,   0,  0 },
1368
{"madd.d",    "D,S,T",  0x72200018, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,       0,   IL2F,   0,  0 },
1369
{"madd.s",    "D,R,S,T",  0x4c000020, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_S,    0,   I4_33,    0,  I37 },
1370
{"madd.s",    "D,S,T",  0x46000018, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,       0,   IL2E,   0,  0 },
1371
{"madd.s",    "D,S,T",  0x72000018, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,       0,   IL2F,   0,  0 },
1372
{"madd.s",    "D,S,T",  0x4600001c, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,       0,   EE,   0,  0 },
1373
{"madd.ps",   "D,R,S,T",  0x4c000026, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D,    0,   I5_33,    0,  I37 },
1374
{"madd.ps",   "D,S,T",  0x45600018, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,       0,   IL2E,   0,  0 },
1375
{"madd.ps",   "D,S,T",  0x72c00018, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,       0,   IL2F,   0,  0 },
1376
{"madd",    "s,t",    0x0000001c, 0xfc00ffff, RD_1|RD_2|WR_HILO,           0,   L1|ALX,   0,  0 },
1377
{"madd",    "s,t",    0x70000000, 0xfc00ffff, RD_1|RD_2|MOD_HILO,          0,   I32|N55,  0,  I37 },
1378
{"madd",    "s,t",    0x70000000, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M,      0,   G1,   0,  0 },
1379
{"madd",    "7,s,t",  0x70000000, 0xfc00e7ff, RD_2|RD_3|MOD_a,             0,         0,    D32,  0 },
1380
{"madd",    "d,s,t",  0x70000000, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO|IS_M, 0,   G1,   0,  0 },
1381
{"madd1",   "s,t",    0x70000020, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M,      0,   EE,   0,  0 },
1382
{"madd1",   "d,s,t",  0x70000020, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO|IS_M, 0,   EE,   0,  0 },
1383
{"madda.s",   "S,T",    0x4600001e, 0xffe007ff, RD_1|RD_2|FP_S,        0,   EE,   0,  0 },
1384
{"maddp",   "s,t",    0x70000441, 0xfc00ffff, RD_1|RD_2|MOD_HILO,      0,   0,    SMT,  0 },
1385
{"maddu",   "s,t",    0x0000001d, 0xfc00ffff, RD_1|RD_2|WR_HILO,           0,   L1|ALX,   0,  0 },
1386
{"maddu",   "s,t",    0x70000001, 0xfc00ffff, RD_1|RD_2|MOD_HILO,          0,   I32|N55,  0,  I37 },
1387
{"maddu",   "s,t",    0x70000001, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M,      0,   G1,   0,  0 },
1388
{"maddu",   "7,s,t",  0x70000001, 0xfc00e7ff, RD_2|RD_3|MOD_a,             0,         0,    D32,  0 },
1389
{"maddu",   "d,s,t",  0x70000001, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO|IS_M, 0,   G1,   0,  0 },
1390
{"maddu1",    "s,t",    0x70000021, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M,      0,   EE,   0,  0 },
1391
{"maddu1",    "d,s,t",  0x70000021, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO|IS_M, 0,   EE,   0,  0 },
1392
{"madd16",    "s,t",    0x00000028, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    N411,   0,  0 },
1393
{"max",     "d,v,t",  0x0000002c, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    ALX,    0,  0 },
1394
{"max.ob",    "X,Y,Q",  0x78000007, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1395
{"max.ob",    "D,S,Q",  0x48000007, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1396
{"max.qh",    "X,Y,Q",  0x78200007, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1397
{"max.s",   "D,S,T",  0x46000028, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    EE,   0,  0 },
1398
{"max.s",   "D,S,T",  0x4600001e, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
1399
{"mfbpc",   "t",    0x4000c000, 0xffe0ffff, WR_1|RD_C0|LC,    0,    EE,   0,  0 },
1400
/* mfps overlaps with mfc0, so it's here to take precedence.  */
1401
{"mfps",    "t,P",    0x4000c800, 0xffe0ffc1, WR_1|RD_C0|LC,    0,    M1|N5|EE, 0,  0 },
1402
{"mfc0",    "t,G",    0x40000000, 0xffe007ff, WR_1|RD_C0|LC,    0,    I1,   0,  0 },
1403
{"mfc0",    "t,G,H",  0x40000000, 0xffe007f8, WR_1|RD_C0|LC,    0,    I32,    0,  0 },
1404
{"mfc1",    "t,S",    0x44000000, 0xffe007ff, WR_1|RD_2|LC|FP_S,  0,    I1,   0,  0 },
1405
{"mfc1",    "t,G",    0x44000000, 0xffe007ff, WR_1|RD_2|LC|FP_S,  0,    I1,   0,  0 },
1406
/* mfc2 is at the bottom of the table.  */
1407
/* mfc3 is at the bottom of the table.  */
1408
{"mfcr",    "t,s",    0x70000018, 0xfc00ffff, WR_1|RD_2,    0,    XLR,    0,  0 },
1409
{"mfdab",   "t",    0x4000c004, 0xffe0ffff, WR_1|RD_C0|LC,    0,    EE,   0,  0 },
1410
{"mfdabm",    "t",    0x4000c005, 0xffe0ffff, WR_1|RD_C0|LC,    0,    EE,   0,  0 },
1411
{"mfdr",    "t,G",    0x7000003d, 0xffe007ff, WR_1|RD_C0|LC,    0,    N5|ALX,   0,  0 },
1412
{"mfdvb",   "t",    0x4000c006, 0xffe0ffff, WR_1|RD_C0|LC,    0,    EE,   0,  0 },
1413
{"mfdvbm",    "t",    0x4000c007, 0xffe0ffff, WR_1|RD_C0|LC,    0,    EE,   0,  0 },
1414
{"mfgc0",   "t,G",    0x40600000, 0xffe007ff, WR_1|RD_C0|LC,    0,    0,    IVIRT,  0 },
1415
{"mfgc0",   "t,G,H",  0x40600000, 0xffe007f8, WR_1|RD_C0|LC,    0,    0,    IVIRT,  0 },
1416
{"mfhc0",   "t,G",    0x40400000, 0xffe007ff, WR_1|RD_C0|LC,    0,    0,    XPA,  0 },
1417
{"mfhc0",   "t,G,H",  0x40400000, 0xffe007f8, WR_1|RD_C0|LC,    0,    0,    XPA,  0 },
1418
{"mfhc1",   "t,S",    0x44600000, 0xffe007ff, WR_1|RD_2|LC|FP_D,  0,    I33,    0,  0 },
1419
{"mfhc1",   "t,G",    0x44600000, 0xffe007ff, WR_1|RD_2|LC|FP_D,  0,    I33,    0,  0 },
1420
/* mfhc2 is at the bottom of the table.  */
1421
{"mfhgc0",    "t,G",    0x40600400, 0xffe007ff, WR_1|RD_C0|LC,    0,    0,    XPAVZ,  0 },
1422
{"mfhgc0",    "t,G,H",  0x40600400, 0xffe007f8, WR_1|RD_C0|LC,    0,    0,    XPAVZ,  0 },
1423
{"mfhi",    "d",    0x00000010, 0xffff07ff, WR_1|RD_HI,   0,    I1,   0,  I37 },
1424
{"mfhi",    "d,9",    0x00000010, 0xff9f07ff, WR_1|RD_HI,   0,    0,    D32,  0 },
1425
{"mfhi1",   "d",    0x70000010, 0xffff07ff, WR_1|RD_HI,   0,    EE,   0,  0 },
1426
{"mfiab",   "t",    0x4000c002, 0xffe0ffff, WR_1|RD_C0|LC,    0,    EE,   0,  0 },
1427
{"mfiabm",    "t",    0x4000c003, 0xffe0ffff, WR_1|RD_C0|LC,    0,    EE,   0,  0 },
1428
{"mflo",    "d",    0x00000012, 0xffff07ff, WR_1|RD_LO,   0,    I1,   0,  I37 },
1429
{"mflo",    "d,9",    0x00000012, 0xff9f07ff, WR_1|RD_LO,   0,    0,    D32,  0 },
1430
{"mflo1",   "d",    0x70000012, 0xffff07ff, WR_1|RD_LO,   0,    EE,   0,  0 },
1431
{"mflhxu",    "d",    0x00000052, 0xffff07ff, WR_1|MOD_HILO,    0,    0,    SMT,  0 },
1432
{"mfpc",    "t,P",    0x4000c801, 0xffe0ffc1, WR_1|RD_C0|LC,    0,    M1|N5|EE, 0,  0 },
1433
/* mfps is above mfc0.  */
1434
{"mfsa",    "d",    0x00000028, 0xffff07ff, WR_1,     0,    EE,   0,  0 },
1435
{"mftacx",    "d",    0x41020021, 0xffff07ff, WR_1|RD_a|TRAP,   AL,   0,    MT32, 0 },
1436
{"mftacx",    "d,*",    0x41020021, 0xfff307ff, WR_1|RD_a|TRAP,   AL,   0,    MT32, 0 },
1437
{"mftc0",   "d,E",    0x41000000, 0xffe007ff, WR_1|RD_C0|TRAP|LC, AL,   0,    MT32, 0 },
1438
{"mftc0",   "d,E,H",  0x41000000, 0xffe007f8, WR_1|RD_C0|TRAP|LC, AL,   0,    MT32, 0 },
1439
{"mftc1",   "d,T",    0x41000022, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_S, AL,   0,    MT32, 0 },
1440
{"mftc1",   "d,E",    0x41000022, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_S, AL,   0,    MT32, 0 },
1441
{"mftc2",   "d,E",    0x41000024, 0xffe007ff, WR_1|RD_C2|TRAP|LC, AL,   0,    MT32, IOCT|IOCTP|IOCT2 },
1442
{"mftdsp",    "d",    0x41100021, 0xffff07ff, WR_1|TRAP,    AL,   0,    MT32, 0 },
1443
{"mftgpr",    "d,t",    0x41000020, 0xffe007ff, WR_1|RD_2|TRAP,   AL,   0,    MT32, 0 },
1444
{"mfthc1",    "d,T",    0x41000032, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_D, AL,   0,    MT32, 0 },
1445
{"mfthc1",    "d,E",    0x41000032, 0xffe007ff, WR_1|RD_2|TRAP|LC|FP_D, AL,   0,    MT32, 0 },
1446
{"mfthc2",    "d,E",    0x41000034, 0xffe007ff, WR_1|RD_C2|TRAP|LC, AL,   0,    MT32, IOCT|IOCTP|IOCT2 },
1447
{"mfthi",   "d",    0x41010021, 0xffff07ff, WR_1|RD_a|TRAP,   AL,   0,    MT32, 0 },
1448
{"mfthi",   "d,*",    0x41010021, 0xfff307ff, WR_1|RD_a|TRAP,   AL,   0,    MT32, 0 },
1449
{"mftlo",   "d",    0x41000021, 0xffff07ff, WR_1|RD_a|TRAP,   AL,   0,    MT32, 0 },
1450
{"mftlo",   "d,*",    0x41000021, 0xfff307ff, WR_1|RD_a|TRAP,   AL,   0,    MT32, 0 },
1451
{"mftr",    "d,E,!,H,$",  0x41000000, 0xffe007c8, WR_1|TRAP,    0,    0,    MT32, 0 },
1452
{"min",     "d,v,t",  0x0000002d, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    ALX,    0,  0 },
1453
{"min.ob",    "X,Y,Q",  0x78000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1454
{"min.ob",    "D,S,Q",  0x48000006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1455
{"min.qh",    "X,Y,Q",  0x78200006, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1456
{"min.s",   "D,S,T",  0x46000029, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    EE,   0,  0 },
1457
{"min.s",   "D,S,T",  0x4600001c, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
1458
{"mov.d",   "D,S",    0x46200006, 0xffff003f, WR_1|RD_2|FP_D,   0,    I1,   0,  SF },
1459
{"mov.s",   "D,S",    0x46000006, 0xffff003f, WR_1|RD_2|FP_S,   0,    I1,   0,  0 },
1460
{"mov.ps",    "D,S",    0x46c00006, 0xffff003f, WR_1|RD_2|FP_D,   0,    I5_33|IL2F, 0,  I37 },
1461
{"mov.ps",    "D,S",    0x45600006, 0xffff003f, WR_1|RD_2|FP_D,   0,    IL2E,   0,  0 },
1462
{"movf",    "d,s,N",  0x00000001, 0xfc0307ff, WR_1|RD_2|RD_CC|FP_S|FP_D, 0,   I4_32,    0,  I37  },
1463
{"movf.d",    "D,S,N",  0x46200011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D,   0,    I4_32,    0,  I37 },
1464
{"movf.l",    "D,S,N",  0x46a00011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D, 0,    SB1,    MX, 0 },
1465
{"movf.l",    "X,Y,N",  0x46a00011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D, 0,    SB1,    MX, 0 },
1466
{"movf.s",    "D,S,N",  0x46000011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_S,   0,    I4_32,    0,  I37 },
1467
{"movf.ps",   "D,S,N",  0x46c00011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D, 0,    I5_33,    0,  I37 },
1468
{"movn",    "d,v,t",  0x0000000b, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I4_32|IL2E|IL2F|EE|ALX, 0,  I37 },
1469
{"movnz",   "d,v,t",  0x0000000b, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E|IL2F,  LEXT, 0 },
1470
{"ffc",     "d,v",    0x0000000b, 0xfc1f07ff, WR_1|RD_2,    0,    L1,   0,  0 },
1471
{"movn.d",    "D,S,t",  0x46200013, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,    0,    I4_32,    0,  I37 },
1472
{"movn.l",    "D,S,t",  0x46a00013, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,    0,    SB1,    MX, 0 },
1473
{"movn.l",    "X,Y,t",  0x46a00013, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,    0,    SB1,    MX, 0 },
1474
{"movn.s",    "D,S,t",  0x46000013, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,    0,    I4_32,    0,  I37 },
1475
{"movn.ps",   "D,S,t",  0x46c00013, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,    0,    I5_33,    0,  I37 },
1476
{"movt",    "d,s,N",  0x00010001, 0xfc0307ff, WR_1|RD_2|RD_CC|FP_S|FP_D, 0,   I4_32,    0,  I37 },
1477
{"movt.d",    "D,S,N",  0x46210011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D,   0,    I4_32,    0,  I37 },
1478
{"movt.l",    "D,S,N",  0x46a10011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D,   0,    SB1,    MX, 0 },
1479
{"movt.l",    "X,Y,N",  0x46a10011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D,   0,    SB1,    MX, 0 },
1480
{"movt.s",    "D,S,N",  0x46010011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_S,   0,    I4_32,    0,  I37 },
1481
{"movt.ps",   "D,S,N",  0x46c10011, 0xffe3003f, WR_1|RD_2|RD_CC|FP_D, 0,    I5_33,    0,  I37 },
1482
{"movz",    "d,v,t",  0x0000000a, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I4_32|IL2E|IL2F|EE|ALX, 0,  I37 },
1483
{"ffs",     "d,v",    0x0000000a, 0xfc1f07ff, WR_1|RD_2,    0,    L1,   0,  0 },
1484
{"movz.d",    "D,S,t",  0x46200012, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,    0,    I4_32,    0,  I37 },
1485
{"movz.l",    "D,S,t",  0x46a00012, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,    0,    SB1,    MX, 0 },
1486
{"movz.l",    "X,Y,t",  0x46a00012, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,    0,    SB1,    MX, 0 },
1487
{"movz.s",    "D,S,t",  0x46000012, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,    0,    I4_32,    0,  I37 },
1488
{"movz.ps",   "D,S,t",  0x46c00012, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,    0,    I5_33,    0,  I37 },
1489
{"msac",    "d,s,t",  0x000001d8, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1490
{"msacu",   "d,s,t",  0x000001d9, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1491
{"msachi",    "d,s,t",  0x000003d8, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1492
{"msachiu",   "d,s,t",  0x000003d9, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1493
/* move is at the top of the table.  */
1494
{"msgn.qh",   "X,Y,Q",  0x78200000, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1495
{"msgsnd",    "t",    0,    (int) M_MSGSND, INSN_MACRO,   0,    XLR,    0,  0 },
1496
{"msgld",   "",     0,    (int) M_MSGLD,  INSN_MACRO,   0,    XLR,    0,  0 },
1497
{"msgld",   "t",    0,    (int) M_MSGLD_T,  INSN_MACRO,   0,    XLR,    0,  0 },
1498
{"msgwait",   "",     0,    (int) M_MSGWAIT,  INSN_MACRO,   0,    XLR,    0,  0 },
1499
{"msgwait",   "t",    0,    (int) M_MSGWAIT_T,INSN_MACRO,   0,    XLR,    0,  0 },
1500
{"msub.d",    "D,R,S,T",  0x4c000029, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0,    I4_33,    0,  I37 },
1501
{"msub.d",    "D,S,T",  0x46200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1502
{"msub.d",    "D,S,T",  0x72200019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2F,   0,  0 },
1503
{"msub.s",    "D,R,S,T",  0x4c000028, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_S, 0,    I4_33,    0,  I37 },
1504
{"msub.s",    "D,S,T",  0x46000019, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    IL2E,   0,  0 },
1505
{"msub.s",    "D,S,T",  0x72000019, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    IL2F,   0,  0 },
1506
{"msub.s",    "D,S,T",  0x4600001d, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    EE,   0,  0 },
1507
{"msub.ps",   "D,R,S,T",  0x4c00002e, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0,    I5_33,    0,  I37 },
1508
{"msub.ps",   "D,S,T",  0x45600019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1509
{"msub.ps",   "D,S,T",  0x72c00019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2F,   0,  0 },
1510
{"msub",    "s,t",    0x0000002e, 0xfc00ffff, RD_1|RD_2|WR_HILO,  0,    ALX,    0,  0 },
1511
{"msub",    "s,t",    0x0000001e, 0xfc00ffff, RD_1|RD_2|WR_HILO,  0,    L1,   0,  0 },
1512
{"msub",    "s,t",    0x70000004, 0xfc00ffff, RD_1|RD_2|MOD_HILO,     0,    I32|N55,  0,  I37 },
1513
{"msub",    "7,s,t",  0x70000004, 0xfc00e7ff, RD_2|RD_3|MOD_a,        0,              0,    D32,  0 },
1514
{"msuba.s",   "S,T",    0x4600001f, 0xffe007ff, RD_1|RD_2|FP_S,   0,    EE,   0,  0 },
1515
{"msubu",   "s,t",    0x0000002f, 0xfc00ffff, RD_1|RD_2|WR_HILO,  0,    ALX,    0,  0 },
1516
{"msubu",   "s,t",    0x0000001f, 0xfc00ffff, RD_1|RD_2|WR_HILO,  0,    L1,   0,  0 },
1517
{"msubu",   "s,t",    0x70000005, 0xfc00ffff, RD_1|RD_2|MOD_HILO,     0,    I32|N55,  0,  I37 },
1518
{"msubu",   "7,s,t",  0x70000005, 0xfc00e7ff, RD_2|RD_3|MOD_a,        0,              0,    D32,  0 },
1519
{"mtbpc",   "t",    0x4080c000, 0xffe0ffff, RD_1|WR_C0|CM,    0,    EE,   0,  0 },
1520
/* mtps overlaps with mtc0, so it's here to take precedence.  */
1521
{"mtps",    "t,P",    0x4080c800, 0xffe0ffc1, RD_1|WR_C0|CM,    0,    M1|N5|EE, 0,  0 },
1522
{"mtc0",    "t,G",    0x40800000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM,  0,    I1,   0,  0 },
1523
{"mtc0",    "t,G,H",  0x40800000, 0xffe007f8, RD_1|WR_C0|WR_CC|CM,  0,    I32,    0,  0 },
1524
{"mtc1",    "t,S",    0x44800000, 0xffe007ff, RD_1|WR_2|CM|FP_S,  0,    I1,   0,  0 },
1525
{"mtc1",    "t,G",    0x44800000, 0xffe007ff, RD_1|WR_2|CM|FP_S,  0,    I1,   0,  0 },
1526
/* mtc2 is at the bottom of the table.  */
1527
/* mtc3 is at the bottom of the table.  */
1528
{"mtcr",    "t,s",    0x70000019, 0xfc00ffff, RD_1|RD_2,    0,    XLR,    0,  0 },
1529
{"mtdab",   "t",    0x4080c004, 0xffe0ffff, RD_1|WR_C0|CM,    0,    EE,   0,  0 },
1530
{"mtdabm",    "t",    0x4080c005, 0xffe0ffff, RD_1|WR_C0|CM,    0,    EE,   0,  0 },
1531
{"mtdr",    "t,G",    0x7080003d, 0xffe007ff, RD_1|WR_C0|CM,    0,    N5|ALX,   0,  0 },
1532
{"mtdvb",   "t",    0x4080c006, 0xffe0ffff, RD_1|WR_C0|CM,    0,    EE,   0,  0 },
1533
{"mtdvbm",    "t",    0x4080c007, 0xffe0ffff, RD_1|WR_C0|CM,    0,    EE,   0,  0 },
1534
{"mtgc0",   "t,G",    0x40600200, 0xffe007ff, RD_1|WR_C0|WR_CC|CM,  0,    0,    IVIRT,  0 },
1535
{"mtgc0",   "t,G,H",  0x40600200, 0xffe007f8, RD_1|WR_C0|WR_CC|CM,   0,   0,    IVIRT,  0 },
1536
{"mthc0",   "t,G",    0x40c00000, 0xffe007ff, RD_1|WR_C0|WR_CC|CM,  0,    0,    XPA,  0 },
1537
{"mthc0",   "t,G,H",  0x40c00000, 0xffe007f8, RD_1|WR_C0|WR_CC|CM,  0,    0,    XPA,  0 },
1538
{"mthc1",   "t,S",    0x44e00000, 0xffe007ff, RD_1|WR_2|CM|FP_D,  0,    I33,    0,  0 },
1539
{"mthc1",   "t,G",    0x44e00000, 0xffe007ff, RD_1|WR_2|CM|FP_D,  0,    I33,    0,  0 },
1540
/* mthc2 is at the bottom of the table.  */
1541
{"mthgc0",    "t,G",    0x40600600, 0xffe007ff, RD_1|WR_C0|WR_CC|CM,  0,    0,    XPAVZ,  0 },
1542
{"mthgc0",    "t,G,H",  0x40600600, 0xffe007f8, RD_1|WR_C0|WR_CC|CM,  0,    0,    XPAVZ,  0 },
1543
{"mthi",    "s",    0x00000011, 0xfc1fffff, RD_1|WR_HI,   0,    I1,   0,  I37 },
1544
{"mthi",    "s,7",    0x00000011, 0xfc1fe7ff, RD_1|WR_HI,   0,    0,    D32,  0 },
1545
{"mthi1",   "s",    0x70000011, 0xfc1fffff, RD_1|WR_HI,   0,    EE,   0,  0 },
1546
{"mtiab",   "t",    0x4080c002, 0xffe0ffff, RD_1|WR_C0|CM,    0,    EE,   0,  0 },
1547
{"mtiabm",    "t",    0x4080c003, 0xffe0ffff, RD_1|WR_C0|CM,    0,    EE,   0,  0 },
1548
{"mtlhx",   "s",    0x00000053, 0xfc1fffff, RD_1|MOD_HILO,    0,    0,    SMT,  0 },
1549
{"mtlo",    "s",    0x00000013, 0xfc1fffff, RD_1|WR_LO,   0,    I1,   0,  I37 },
1550
{"mtlo",    "s,7",    0x00000013, 0xfc1fe7ff, RD_1|WR_LO,   0,    0,    D32,  0 },
1551
{"mtlo1",   "s",    0x70000013, 0xfc1fffff, RD_1|WR_LO,   0,    EE,   0,  0 },
1552
{"mtm0",    "s",    0x70000008, 0xfc1fffff, RD_1,     0,    IOCT,   0,  0 },
1553
{"mtm0",        "s,t",    0x70000008, 0xfc00ffff, RD_1|RD_2,    0,    IOCT3,    0,  0 },
1554
{"mtm1",    "s",    0x7000000c, 0xfc1fffff, RD_1,     0,    IOCT,   0,  0 },
1555
{"mtm1",        "s,t",    0x7000000c, 0xfc00ffff, RD_1|RD_2,    0,    IOCT3,    0,  0 },
1556
{"mtm2",    "s",    0x7000000d, 0xfc1fffff, RD_1,     0,    IOCT,   0,  0 },
1557
{"mtm2",        "s,t",    0x7000000d, 0xfc00ffff, RD_1|RD_2,    0,    IOCT3,    0,  0 },
1558
{"mtp0",    "s",    0x70000009, 0xfc1fffff, RD_1,     0,    IOCT,   0,  0 },
1559
{"mtp0",        "s,t",    0x70000009, 0xfc00ffff, RD_1|RD_2,    0,    IOCT3,    0,  0 },
1560
{"mtp1",    "s",    0x7000000a, 0xfc1fffff, RD_1,     0,    IOCT,   0,  0 },
1561
{"mtp1",        "s,t",    0x7000000a, 0xfc00ffff, RD_1|RD_2,    0,    IOCT3,    0,  0 },
1562
{"mtp2",    "s",    0x7000000b, 0xfc1fffff, RD_1,     0,    IOCT,   0,  0 },
1563
{"mtp2",        "s,t",    0x7000000b, 0xfc00ffff, RD_1|RD_2,    0,    IOCT3,    0,  0 },
1564
{"mtpc",    "t,P",    0x4080c801, 0xffe0ffc1, RD_1|WR_C0|CM,    0,    M1|N5|EE, 0,  0 },
1565
/* mtps is above mtc0.  */
1566
{"mtsa",    "s",    0x00000029, 0xfc1fffff, RD_1,     0,    EE,   0,  0 },
1567
{"mtsab",   "s,j",    0x04180000, 0xfc1f0000, RD_1,     0,    EE,   0,  0 },
1568
{"mtsah",   "s,j",    0x04190000, 0xfc1f0000, RD_1,     0,    EE,   0,  0 },
1569
{"mttacx",    "t",    0x41801021, 0xffe0ffff, RD_1|WR_a|TRAP,   AL,   0,    MT32, 0 },
1570
{"mttacx",    "t,&",    0x41801021, 0xffe09fff, RD_1|WR_a|TRAP,   AL,   0,    MT32, 0 },
1571
{"mttc0",   "t,G",    0x41800000, 0xffe007ff, RD_1|WR_C0|WR_CC|TRAP|CM, AL,   0,    MT32, 0 },
1572
{"mttc0",   "t,G,H",  0x41800000, 0xffe007f8, RD_1|WR_C0|WR_CC|TRAP|CM, AL,   0,    MT32, 0 },
1573
{"mttc1",   "t,S",    0x41800022, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_S, AL,   0,    MT32, 0 },
1574
{"mttc1",   "t,G",    0x41800022, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_S, AL,   0,    MT32, 0 },
1575
{"mttc2",   "t,G",    0x41800024, 0xffe007ff, RD_1|WR_C2|WR_CC|TRAP|CM, AL,   0,    MT32, IOCT|IOCTP|IOCT2 },
1576
{"mttdsp",    "t",    0x41808021, 0xffe0ffff, RD_1|TRAP,    AL,   0,    MT32, 0 },
1577
{"mttgpr",    "t,d",    0x41800020, 0xffe007ff, RD_1|WR_2|TRAP,   AL,   0,    MT32, 0 },
1578
{"mtthc1",    "t,S",    0x41800032, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_D, AL,   0,    MT32, 0 },
1579
{"mtthc1",    "t,G",    0x41800032, 0xffe007ff, RD_1|WR_2|TRAP|CM|FP_D, AL,   0,    MT32, 0 },
1580
{"mtthc2",    "t,G",    0x41800034, 0xffe007ff, RD_1|WR_C2|WR_CC|TRAP|CM, AL,   0,    MT32, IOCT|IOCTP|IOCT2 },
1581
{"mtthi",   "t",    0x41800821, 0xffe0ffff, RD_1|WR_a|TRAP,   AL,   0,    MT32, 0 },
1582
{"mtthi",   "t,&",    0x41800821, 0xffe09fff, RD_1|WR_a|TRAP,   AL,   0,    MT32, 0 },
1583
{"mttlo",   "t",    0x41800021, 0xffe0ffff, RD_1|WR_a|TRAP,   AL,   0,    MT32, 0 },
1584
{"mttlo",   "t,&",    0x41800021, 0xffe09fff, RD_1|WR_a|TRAP,   AL,   0,    MT32, 0 },
1585
{"mttr",    "t,G,!,H,$",  0x41800000, 0xffe007c8, RD_1|TRAP,    0,    0,    MT32, 0 },
1586
{"mul.d",   "D,V,T",  0x46200002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I1,   0,  SF },
1587
{"mul.s",   "D,V,T",  0x46000002, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I1,   0,  0 },
1588
{"mul.ob",    "X,Y,Q",  0x78000030, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1589
{"mul.ob",    "D,S,Q",  0x48000030, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1590
{"mul.ps",    "D,V,T",  0x46c00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I5_33|IL2F, 0,  I37 },
1591
{"mul.ps",    "D,V,T",  0x45600002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1592
{"mul.qh",    "X,Y,Q",  0x78200030, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1593
{"muh",     "d,v,t",  0x000000d8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I37,    0,  0},
1594
{"muhu",    "d,v,t",  0x000000d9, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I37,    0,  0},
1595
{"mul",     "d,v,t",  0x00000098, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I37,    0,  0},
1596
{"mul",     "d,v,t",  0x70000002, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    I32|P3|N55, 0,  I37},
1597
{"mul",     "d,s,t",  0x00000058, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N54,    0,  0 },
1598
{"mul",     "d,v,t",  0,    (int) M_MUL,  INSN_MACRO,   0,    I1,   0,  I37 },
1599
{"mul",     "d,v,I",  0,    (int) M_MUL_I,  INSN_MACRO,   0,    I1,   0,  I37 },
1600
{"mula.ob",   "Y,Q",    0x78000033, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  SB1,    MX, 0 },
1601
{"mula.ob",   "S,Q",    0x48000033, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  N54,    0,  0 },
1602
{"mula.qh",   "Y,Q",    0x78200033, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  0,    MX, 0 },
1603
{"mula.s",    "S,T",    0x4600001a, 0xffe007ff, RD_1|RD_2|FP_S,   0,    EE,   0,  0 },
1604
{"mulhi",   "d,s,t",  0x00000258, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1605
{"mulhiu",    "d,s,t",  0x00000259, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1606
{"mull.ob",   "Y,Q",    0x78000433, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  SB1,    MX, 0 },
1607
{"mull.ob",   "S,Q",    0x48000433, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  N54,    0,  0 },
1608
{"mull.qh",   "Y,Q",    0x78200433, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  0,    MX, 0 },
1609
{"mulo",    "d,v,t",  0,    (int) M_MULO, INSN_MACRO,   0,    I1,   0,  I37 },
1610
{"mulo",    "d,v,I",  0,    (int) M_MULO_I, INSN_MACRO,   0,    I1,   0,  I37 },
1611
{"mulou",   "d,v,t",  0,    (int) M_MULOU,  INSN_MACRO,   0,    I1,   0,  I37 },
1612
{"mulou",   "d,v,I",  0,    (int) M_MULOU_I,  INSN_MACRO,   0,    I1,   0,  I37 },
1613
{"mulr.ps",   "D,S,T",  0x46c0001a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    M3D,  0 },
1614
{"muls",    "d,s,t",  0x000000d8, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1615
{"mulsu",   "d,s,t",  0x000000d9, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1616
{"mulshi",    "d,s,t",  0x000002d8, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1617
{"mulshiu",   "d,s,t",  0x000002d9, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1618
{"muls.ob",   "Y,Q",    0x78000032, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  SB1,    MX, 0 },
1619
{"muls.ob",   "S,Q",    0x48000032, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  N54,    0,  0 },
1620
{"muls.qh",   "Y,Q",    0x78200032, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  0,    MX, 0 },
1621
{"mulsl.ob",    "Y,Q",    0x78000432, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  SB1,    MX, 0 },
1622
{"mulsl.ob",    "S,Q",    0x48000432, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  N54,    0,  0 },
1623
{"mulsl.qh",    "Y,Q",    0x78200432, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  0,    MX, 0 },
1624
{"mult",    "s,t",    0x00000018, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M, 0,    I1,   0,  I37 },
1625
{"mult",    "7,s,t",  0x00000018, 0xfc00e7ff, RD_2|RD_3|WR_a,         0,              0,    D32,  0 },
1626
{"mult",    "d,s,t",  0x00000018, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO|IS_M, 0,   G1,   0,  0 },
1627
{"mult1",   "s,t",    0x70000018, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M, 0,    EE,   0,  0 },
1628
{"mult1",   "d,s,t",  0x70000018, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO|IS_M, 0,   EE,   0,  0 },
1629
{"multp",   "s,t",    0x00000459, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    0,    SMT,  0 },
1630
{"multu",   "s,t",    0x00000019, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M, 0,    I1,   0,  I37 },
1631
{"multu",   "7,s,t",  0x00000019, 0xfc00e7ff, RD_2|RD_3|WR_a,         0,              0,    D32,  0 },
1632
{"multu",   "d,s,t",  0x00000019, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO|IS_M, 0,   G1,   0,  0 },
1633
{"multu1",    "s,t",    0x70000019, 0xfc00ffff, RD_1|RD_2|WR_HILO|IS_M, 0,    EE,   0,  0 },
1634
{"multu1",    "d,s,t",  0x70000019, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO|IS_M, 0,   EE,   0,  0 },
1635
{"mulu",    "d,v,t",  0x00000099, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I37,    0,  0},
1636
{"mulu",    "d,s,t",  0x00000059, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    N5,   0,  0 },
1637
{"neg",     "d,w",    0x00000022, 0xffe007ff, WR_1|RD_2,    0,    I1,   0,  0 }, /* sub 0 */
1638
{"negu",    "d,w",    0x00000023, 0xffe007ff, WR_1|RD_2,    0,    I1,   0,  0 }, /* subu 0 */
1639
{"neg.d",   "D,V",    0x46200007, 0xffff003f, WR_1|RD_2|FP_D,   0,    I1,   0,  SF },
1640
{"neg.s",   "D,V",    0x46000007, 0xffff003f, WR_1|RD_2|FP_S,   0,    I1,   0,  0 },
1641
{"neg.ps",    "D,V",    0x46c00007, 0xffff003f, WR_1|RD_2|FP_D,   0,    I5_33|IL2F, 0,  I37 },
1642
{"neg.ps",    "D,V",    0x45600007, 0xffff003f, WR_1|RD_2|FP_D,   0,    IL2E,   0,  0 },
1643
{"nmadd.d",   "D,R,S,T",  0x4c000031, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0,    I4_33,    0,  I37 },
1644
{"nmadd.d",   "D,S,T",  0x4620001a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1645
{"nmadd.d",   "D,S,T",  0x7220001a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2F,   0,  0 },
1646
{"nmadd.s",   "D,R,S,T",  0x4c000030, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_S, 0,    I4_33,    0,  I37 },
1647
{"nmadd.s",   "D,S,T",  0x4600001a, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    IL2E,   0,  0 },
1648
{"nmadd.s",   "D,S,T",  0x7200001a, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    IL2F,   0,  0 },
1649
{"nmadd.ps",    "D,R,S,T",  0x4c000036, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0,    I5_33,    0,  I37 },
1650
{"nmadd.ps",    "D,S,T",  0x4560001a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1651
{"nmadd.ps",    "D,S,T",  0x72c0001a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2F,   0,  0 },
1652
{"nmsub.d",   "D,R,S,T",  0x4c000039, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0,    I4_33,    0,  I37 },
1653
{"nmsub.d",   "D,S,T",  0x4620001b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1654
{"nmsub.d",   "D,S,T",  0x7220001b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2F,   0,  0 },
1655
{"nmsub.s",   "D,R,S,T",  0x4c000038, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_S, 0,    I4_33,    0,  I37 },
1656
{"nmsub.s",   "D,S,T",  0x4600001b, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    IL2E,   0,  0 },
1657
{"nmsub.s",   "D,S,T",  0x7200001b, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    IL2F,   0,  0 },
1658
{"nmsub.ps",    "D,R,S,T",  0x4c00003e, 0xfc00003f, WR_1|RD_2|RD_3|RD_4|FP_D, 0,    I5_33,    0,  I37 },
1659
{"nmsub.ps",    "D,S,T",  0x4560001b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1660
{"nmsub.ps",    "D,S,T",  0x72c0001b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2F,   0,  0 },
1661
/* nop is at the start of the table.  */
1662
{"nor",     "d,v,t",  0x00000027, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
1663
{"nor",     "t,r,I",  0,    (int) M_NOR_I,  INSN_MACRO,   0,    I1,   0,  0 },
1664
{"nor",     "D,S,T",  0x47a00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1665
{"nor",     "D,S,T",  0x4ba00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
1666
{"nor.ob",    "X,Y,Q",  0x7800000f, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1667
{"nor.ob",    "D,S,Q",  0x4800000f, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1668
{"nor.qh",    "X,Y,Q",  0x7820000f, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1669
{"not",     "d,v",    0x00000027, 0xfc1f07ff, WR_1|RD_2,    0,    I1,   0,  0 },/*nor d,s,0*/
1670
{"or",      "d,v,t",  0x00000025, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
1671
{"or",      "t,r,I",  0,    (int) M_OR_I, INSN_MACRO,   0,    I1,   0,  0 },
1672
{"or",      "D,S,T",  0x45a00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1673
{"or",      "D,S,T",  0x4b20000c, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
1674
{"or.ob",   "X,Y,Q",  0x7800000e, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1675
{"or.ob",   "D,S,Q",  0x4800000e, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1676
{"or.qh",   "X,Y,Q",  0x7820000e, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1677
{"ori",     "t,r,i",  0x34000000, 0xfc000000, WR_1|RD_2,    0,    I1,   0,  0 },
1678
{"pabsdiff.ob",   "X,Y,Q",  0x78000009, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    0,  0 },
1679
{"pabsdiffc.ob",  "Y,Q",    0x78000035, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  SB1,    0,  0 },
1680
{"pause",   "",   0x00000140, 0xffffffff, TRAP,     AL,   I33,    0,  0 },
1681
{"pavg.ob",   "X,Y,Q",  0x78000008, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    0,  0 },
1682
{"pabsh",   "d,t",    0x70000168, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1683
{"pabsw",   "d,t",    0x70000068, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1684
{"paddsw",    "d,s,t",  0x70000408, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1685
{"paddub",    "d,s,t",  0x70000628, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1686
{"padduh",    "d,s,t",  0x70000528, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1687
{"padduw",    "d,s,t",  0x70000428, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1688
{"padsbh",    "d,s,t",  0x70000128, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1689
{"pand",    "d,s,t",  0x70000489, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1690
{"pceqb",   "d,s,t",  0x700002a8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1691
{"pceqh",   "d,s,t",  0x700001a8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1692
{"pceqw",   "d,s,t",  0x700000a8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1693
{"pcgtb",   "d,s,t",  0x70000288, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1694
{"pcgth",   "d,s,t",  0x70000188, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1695
{"pcgtw",   "d,s,t",  0x70000088, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1696
{"pcpyh",   "d,t",    0x700006e9, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1697
{"pcpyld",    "d,s,t",  0x70000389, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1698
{"pcpyud",    "d,s,t",  0x700003a9, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1699
{"pdivbw",    "s,t",    0x70000749, 0xfc00ffff, RD_1|RD_2|WR_HILO,  0,    MMI,    0,  0 },
1700
{"pdivuw",    "s,t",    0x70000369, 0xfc00ffff, RD_1|RD_2|WR_HILO,  0,    MMI,    0,  0 },
1701
{"pdivw",   "s,t",    0x70000349, 0xfc00ffff, RD_1|RD_2|WR_HILO,  0,    MMI,    0,  0 },
1702
{"pexch",   "d,t",    0x700006a9, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1703
{"pexcw",   "d,t",    0x700007a9, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1704
{"pexeh",   "d,t",    0x70000689, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1705
{"pexew",   "d,t",    0x70000789, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1706
{"pext5",   "d,t",    0x70000788, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1707
{"pextlb",    "d,s,t",  0x70000688, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1708
{"pextlh",    "d,s,t",  0x70000588, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1709
{"pextlw",    "d,s,t",  0x70000488, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1710
{"pextub",    "d,s,t",  0x700006a8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1711
{"pextuh",    "d,s,t",  0x700005a8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1712
{"pextuw",    "d,s,t",  0x700004a8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1713
{"phmadh",    "d,s,t",  0x70000449, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    MMI,    0,  0 },
1714
{"phmsbh",    "d,s,t",  0x70000549, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    MMI,    0,  0 },
1715
{"pickf.ob",    "X,Y,Q",  0x78000002, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1716
{"pickf.ob",    "D,S,Q",  0x48000002, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1717
{"pickf.qh",    "X,Y,Q",  0x78200002, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1718
{"pickt.ob",    "X,Y,Q",  0x78000003, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1719
{"pickt.ob",    "D,S,Q",  0x48000003, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1720
{"pickt.qh",    "X,Y,Q",  0x78200003, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1721
{"pinteh",    "d,s,t",  0x700002a9, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1722
{"pinth",   "d,s,t",  0x70000289, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1723
{"pll.ps",    "D,V,T",  0x46c0002c, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I5_33,    0,  I37 },
1724
{"plu.ps",    "D,V,T",  0x46c0002d, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I5_33,    0,  I37 },
1725
{"plzcw",   "d,s",    0x70000004, 0xfc1f07ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1726
{"pmaddh",    "d,s,t",  0x70000409, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    MMI,    0,  0 },
1727
{"pmadduw",   "d,s,t",  0x70000029, 0xfc0007ff, WR_1|RD_2|RD_3|MOD_HILO, 0,   MMI,    0,  0 },
1728
{"pmaddw",    "d,s,t",  0x70000009, 0xfc0007ff, WR_1|RD_2|RD_3|MOD_HILO, 0,   MMI,    0,  0 },
1729
{"pmaxh",   "d,s,t",  0x700001c8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1730
{"pmaxw",   "d,s,t",  0x700000c8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1731
{"pmfhi",   "d",    0x70000209, 0xffff07ff, WR_1|RD_HI,   0,    MMI,    0,  0 },
1732
{"pmfhl.lh",    "d",    0x700000f0, 0xffff07ff, WR_1|RD_HILO,   0,    MMI,    0,  0 },
1733
{"pmfhl.lw",    "d",    0x70000030, 0xffff07ff, WR_1|RD_HILO,   0,    MMI,    0,  0 },
1734
{"pmfhl.sh",    "d",    0x70000130, 0xffff07ff, WR_1|RD_HILO,   0,    MMI,    0,  0 },
1735
{"pmfhl.slw",   "d",    0x700000b0, 0xffff07ff, WR_1|RD_HILO,   0,    MMI,    0,  0 },
1736
{"pmfhl.uw",    "d",    0x70000070, 0xffff07ff, WR_1|RD_HILO,   0,    MMI,    0,  0 },
1737
{"pmflo",   "d",    0x70000249, 0xffff07ff, WR_1|RD_LO,   0,    MMI,    0,  0 },
1738
{"pminh",   "d,s,t",  0x700001e8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1739
{"pminw",   "d,s,t",  0x700000e8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1740
{"pmsubh",    "d,s,t",  0x70000509, 0xfc0007ff, WR_1|RD_2|RD_3|MOD_HILO, 0,   MMI,    0,  0 },
1741
{"pmsubw",    "d,s,t",  0x70000109, 0xfc0007ff, WR_1|RD_2|RD_3|MOD_HILO, 0,   MMI,    0,  0 },
1742
{"pmthi",   "s",    0x70000229, 0xfc1fffff, RD_1|WR_HI,   0,    MMI,    0,  0 },
1743
{"pmthl.lw",    "s",    0x70000031, 0xfc1fffff, RD_1|MOD_HILO,    0,    MMI,    0,  0 },
1744
{"pmtlo",   "s",    0x70000269, 0xfc1fffff, RD_1|WR_LO,   0,    MMI,    0,  0 },
1745
{"pmulth",    "d,s,t",  0x70000709, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    MMI,    0,  0 },
1746
{"pmultuw",   "d,s,t",  0x70000329, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    MMI,    0,  0 },
1747
{"pmultw",    "d,s,t",  0x70000309, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    MMI,    0,  0 },
1748
{"pnor",    "d,s,t",  0x700004e9, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1749
{"pop",     "d,v",    0x7000002c, 0xfc1f07ff, WR_1|RD_2,    0,    IOCT,   0,  0 },
1750
{"por",     "d,s,t",  0x700004a9, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1751
{"ppac5",   "d,t",    0x700007c8, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1752
{"ppacb",   "d,s,t",  0x700006c8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1753
{"ppach",   "d,s,t",  0x700005c8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1754
{"ppacw",   "d,s,t",  0x700004c8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1755
{"prevh",   "d,t",    0x700006c9, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1756
{"prot3w",    "d,t",    0x700007c9, 0xffe007ff, WR_1|RD_2,    0,    MMI,    0,  0 },
1757
{"psllvw",    "d,t,s",  0x70000089, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1758
{"psravw",    "d,t,s",  0x700000e9, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1759
{"psrlvw",    "d,t,s",  0x700000c9, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1760
{"psubsw",    "d,s,t",  0x70000448, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1761
{"psubub",    "d,s,t",  0x70000668, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1762
{"psubuh",    "d,s,t",  0x70000568, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1763
{"psubuw",    "d,s,t",  0x70000468, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1764
{"pxor",    "d,s,t",  0x700004c9, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1765
  /* pref and prefx are at the start of the table.  */
1766
{"pul.ps",    "D,V,T",  0x46c0002e, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I5_33,    0,  I37 },
1767
{"puu.ps",    "D,V,T",  0x46c0002f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I5_33,    0,  I37 },
1768
{"pperm",   "s,t",    0x70000481, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    0,    SMT,  0 },
1769
{"qfsrv",   "d,s,t",  0x700006e8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
1770
{"qmac.00",   "s,t",    0x70000412, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    IOCT2,    0,  0 },
1771
{"qmac.01",   "s,t",    0x70000452, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    IOCT2,    0,  0 },
1772
{"qmac.02",   "s,t",    0x70000492, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    IOCT2,    0,  0 },
1773
{"qmac.03",   "s,t",    0x700004d2, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    IOCT2,    0,  0 },
1774
{"qmacs.00",    "s,t",    0x70000012, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    IOCT2,    0,  0 },
1775
{"qmacs.01",    "s,t",    0x70000052, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    IOCT2,    0,  0 },
1776
{"qmacs.02",    "s,t",    0x70000092, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    IOCT2,    0,  0 },
1777
{"qmacs.03",    "s,t",    0x700000d2, 0xfc00ffff, RD_1|RD_2|MOD_HILO, 0,    IOCT2,    0,  0 },
1778
{"rach.ob",   "X",    0x7a00003f, 0xfffff83f, WR_1|FP_D,    RD_MACC,  SB1,    MX, 0 },
1779
{"rach.ob",   "D",    0x4a00003f, 0xfffff83f, WR_1|FP_D,    RD_MACC,  N54,    0,  0 },
1780
{"rach.qh",   "X",    0x7a20003f, 0xfffff83f, WR_1|FP_D,    RD_MACC,  0,    MX, 0 },
1781
{"racl.ob",   "X",    0x7800003f, 0xfffff83f, WR_1|FP_D,    RD_MACC,  SB1,    MX, 0 },
1782
{"racl.ob",   "D",    0x4800003f, 0xfffff83f, WR_1|FP_D,    RD_MACC,  N54,    0,  0 },
1783
{"racl.qh",   "X",    0x7820003f, 0xfffff83f, WR_1|FP_D,    RD_MACC,  0,    MX, 0 },
1784
{"racm.ob",   "X",    0x7900003f, 0xfffff83f, WR_1|FP_D,    RD_MACC,  SB1,    MX, 0 },
1785
{"racm.ob",   "D",    0x4900003f, 0xfffff83f, WR_1|FP_D,    RD_MACC,  N54,    0,  0 },
1786
{"racm.qh",   "X",    0x7920003f, 0xfffff83f, WR_1|FP_D,    RD_MACC,  0,    MX, 0 },
1787
{"recip.d",   "D,S",    0x46200015, 0xffff003f, WR_1|RD_2|FP_D,   0,    I4_33,    0,  0 },
1788
{"recip.ps",    "D,S",    0x46c00015, 0xffff003f, WR_1|RD_2|FP_D,   0,    SB1,    0,  0 },
1789
{"recip.s",   "D,S",    0x46000015, 0xffff003f, WR_1|RD_2|FP_S,   0,    I4_33,    0,  0 },
1790
{"recip1.d",    "D,S",    0x4620001d, 0xffff003f, WR_1|RD_2|FP_D,   0,    0,    M3D,  0 },
1791
{"recip1.ps",   "D,S",    0x46c0001d, 0xffff003f, WR_1|RD_2|FP_S,   0,    0,    M3D,  0 },
1792
{"recip1.s",    "D,S",    0x4600001d, 0xffff003f, WR_1|RD_2|FP_S,   0,    0,    M3D,  0 },
1793
{"recip2.d",    "D,S,T",  0x4620001c, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    M3D,  0 },
1794
{"recip2.ps",   "D,S,T",  0x46c0001c, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    0,    M3D,  0 },
1795
{"recip2.s",    "D,S,T",  0x4600001c, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    0,    M3D,  0 },
1796
{"rem",     "z,s,t",  0x0000001a, 0xfc00ffff, RD_2|RD_3|WR_HILO,      AL,   I1,   0,  I37 },
1797
{"rem",     "d,v,t",  0,    (int) M_REM_3,  INSN_MACRO,   0,    I1,   0,  I37 },
1798
{"rem",     "d,v,I",  0,    (int) M_REM_3I, INSN_MACRO,   0,    I1,   0,  I37 },
1799
{"remu",    "z,s,t",  0x0000001b, 0xfc00ffff, RD_2|RD_3|WR_HILO,      AL,   I1,   0,  I37 },
1800
{"remu",    "d,v,t",  0,    (int) M_REMU_3, INSN_MACRO,   0,    I1,   0,  I37 },
1801
{"remu",    "d,v,I",  0,    (int) M_REMU_3I,  INSN_MACRO,   0,    I1,   0,  I37 },
1802
{"rdhwr",   "t,K",    0x7c00003b, 0xffe007ff, WR_1,     0,    I33,    0,  0 },
1803
{"rdhwr",   "t,K,+O", 0x7c00003b, 0xffe0063f, WR_1,     0,    I37,    0,  0 },
1804
{"rdpgpr",    "d,w",    0x41400000, 0xffe007ff, WR_1,     0,    I33,    0,  0 },
1805
/* rfe is moved below as it now conflicts with tlbgp */
1806
{"rnas.qh",   "X,Q",    0x78200025, 0xfc20f83f, WR_1|RD_2|FP_D,   RD_MACC,  0,    MX, 0 },
1807
{"rnau.ob",   "X,Q",    0x78000021, 0xfc20f83f, WR_1|RD_2|FP_D,   RD_MACC,  SB1,    MX, 0 },
1808
{"rnau.qh",   "X,Q",    0x78200021, 0xfc20f83f, WR_1|RD_2|FP_D,   RD_MACC,  0,    MX, 0 },
1809
{"rnes.qh",   "X,Q",    0x78200026, 0xfc20f83f, WR_1|RD_2|FP_D,   RD_MACC,  0,    MX, 0 },
1810
{"rneu.ob",   "X,Q",    0x78000022, 0xfc20f83f, WR_1|RD_2|FP_D,   RD_MACC,  SB1,    MX, 0 },
1811
{"rneu.qh",   "X,Q",    0x78200022, 0xfc20f83f, WR_1|RD_2|FP_D,   RD_MACC,  0,    MX, 0 },
1812
{"rol",     "d,v,t",  0,    (int) M_ROL,  INSN_MACRO,   0,    I1,   0,  0 },
1813
{"rol",     "d,v,I",  0,    (int) M_ROL_I,  INSN_MACRO,   0,    I1,   0,  0 },
1814
{"ror",     "d,v,t",  0,    (int) M_ROR,  INSN_MACRO,   0,    I1,   0,  0 },
1815
{"ror",     "d,v,I",  0,    (int) M_ROR_I,  INSN_MACRO,   0,    I1,   0,  0 },
1816
{"ror",     "d,w,<",  0x00200002, 0xffe0003f, WR_1|RD_2,    0,    N5|I33|ALX, SMT,  0 },
1817
{"rorv",    "d,t,s",  0x00000046, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    N5|I33|ALX, SMT,  0 },
1818
{"rotl",    "d,v,t",  0,    (int) M_ROL,  INSN_MACRO,   0,    I33|ALX,  SMT,  0 },
1819
{"rotl",    "d,v,I",  0,    (int) M_ROL_I,  INSN_MACRO,   0,    I33|ALX,  SMT,  0 },
1820
{"rotr",    "d,v,t",  0,    (int) M_ROR,  INSN_MACRO,   0,    I33|ALX,  SMT,  0 },
1821
{"rotr",    "d,v,I",  0,    (int) M_ROR_I,  INSN_MACRO,   0,    I33|ALX,  SMT,  0 },
1822
{"rotrv",   "d,t,s",  0x00000046, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I33|ALX,  SMT,  0 },
1823
{"round.l.d",   "D,S",    0x46200008, 0xffff003f, WR_1|RD_2|FP_D,   0,    I3_33,    0,  0 },
1824
{"round.l.s",   "D,S",    0x46000008, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I3_33,    0,  0 },
1825
{"round.w.d",   "D,S",    0x4620000c, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I2,   0,  SF },
1826
{"round.w.s",   "D,S",    0x4600000c, 0xffff003f, WR_1|RD_2|FP_S,   0,    I2,   0,  0 },
1827
{"rsqrt.d",   "D,S",    0x46200016, 0xffff003f, WR_1|RD_2|FP_D,   0,    I4_33,    0,  0 },
1828
{"rsqrt.ps",    "D,S",    0x46c00016, 0xffff003f, WR_1|RD_2|FP_D,   0,    SB1,    0,  0 },
1829
{"rsqrt.s",   "D,S",    0x46000016, 0xffff003f, WR_1|RD_2|FP_S,   0,    I4_33,    0,  0 },
1830
{"rsqrt.s",   "D,S,T",  0x46000016, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    EE,   0,  0 },
1831
{"rsqrt1.d",    "D,S",    0x4620001e, 0xffff003f, WR_1|RD_2|FP_D,   0,    0,    M3D,  0 },
1832
{"rsqrt1.ps",   "D,S",    0x46c0001e, 0xffff003f, WR_1|RD_2|FP_S,   0,    0,    M3D,  0 },
1833
{"rsqrt1.s",    "D,S",    0x4600001e, 0xffff003f, WR_1|RD_2|FP_S,   0,    0,    M3D,  0 },
1834
{"rsqrt2.d",    "D,S,T",  0x4620001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    M3D,  0 },
1835
{"rsqrt2.ps",   "D,S,T",  0x46c0001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    0,    M3D,  0 },
1836
{"rsqrt2.s",    "D,S,T",  0x4600001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    0,    M3D,  0 },
1837
{"rzs.qh",    "X,Q",    0x78200024, 0xfc20f83f, WR_1|RD_2|FP_D,   RD_MACC,  0,    MX, 0 },
1838
{"rzu.ob",    "X,Q",    0x78000020, 0xfc20f83f, WR_1|RD_2|FP_D,   RD_MACC,  SB1,    MX, 0 },
1839
{"rzu.ob",    "D,Q",    0x48000020, 0xfc20f83f, WR_1|RD_2|FP_D,   RD_MACC,  N54,    0,  0 },
1840
{"rzu.qh",    "X,Q",    0x78200020, 0xfc20f83f, WR_1|RD_2|FP_D,   RD_MACC,  0,    MX, 0 },
1841
{"saa",     "t,A(b)", 0,    (int) M_SAA_AB, INSN_MACRO,   0,    IOCTP,    0,  0 },
1842
{"saa",     "t,(b)",  0x70000018, 0xfc00ffff, RD_1|RD_2|SM,   0,    IOCTP,    0,  0 },
1843
{"saad",    "t,A(b)", 0,    (int) M_SAAD_AB,  INSN_MACRO,   0,    IOCTP,    0,  0 },
1844
{"saad",    "t,(b)",  0x70000019, 0xfc00ffff, RD_1|RD_2|SM,   0,    IOCTP,    0,  0 },
1845
{"sb",      "t,o(b)", 0xa0000000, 0xfc000000, RD_1|RD_3|SM,   0,    I1,   0,  0 },
1846
{"sb",      "t,A(b)", 0,    (int) M_SB_AB,  INSN_MACRO,   0,    I1,   0,  0 },
1847
{"sc",      "t,+j(b)",  0x7c000026, 0xfc00007f, MOD_1|RD_3|SM,    0,    I37,    0,  0 },
1848
{"sc",      "t,o(b)", 0xe0000000, 0xfc000000, MOD_1|RD_3|SM,    0,    I2,   0,  EE|I37 },
1849
{"sc",      "t,A(b)", 0,    (int) M_SC_AB,  INSN_MACRO,   0,    I2,   0,  EE },
1850
{"scd",     "t,+j(b)",  0x7c000027, 0xfc00007f, MOD_1|RD_3|SM,    0,    I69,    0,  0 },
1851
{"scd",     "t,o(b)", 0xf0000000, 0xfc000000, MOD_1|RD_3|SM,    0,    I3,   0,  EE|I69 },
1852
{"scd",     "t,A(b)", 0,    (int) M_SCD_AB, INSN_MACRO,   0,    I3,   0,  EE },
1853
{"scdp",    "t,d,s",  0x7c000067, 0xfc0007ff, MOD_1|RD_2|RD_3|SM, 0,    I69,    0,  0 },
1854
{"scdp",    "t,d,A(b)", 0,    (int) M_SCDP_AB,  INSN_MACRO,   0,    I69,    0,  0 },
1855
{"scwp",    "t,d,s",  0x7c000066, 0xfc0007ff, MOD_1|RD_2|RD_3|SM, 0,    I37,    0,  0 },
1856
{"scwp",    "t,d,A(b)", 0,    (int) M_SCWP_AB,  INSN_MACRO,   0,    I37,    0,  0 },
1857
/* The macro has to be first to handle o32 correctly.  */
1858
{"sd",      "t,A(b)", 0,    (int) M_SD_AB,  INSN_MACRO,   0,    I1,   0,  0 },
1859
{"sd",      "t,o(b)", 0xfc000000, 0xfc000000, RD_1|RD_3|SM,   0,    I3,   0,  0 },
1860
{"sdbbp",   "",   0x0000000e, 0xffffffff, TRAP,             0,    G2,   0,  0 },
1861
{"sdbbp",   "c",    0x0000000e, 0xfc00ffff, TRAP,     0,    G2,   0,  0 },
1862
{"sdbbp",   "c,q",    0x0000000e, 0xfc00003f, TRAP,     0,    G2,   0,  0 },
1863
{"sdbbp",   "",   0x0000000e, 0xffffffff, TRAP,             0,    I37,    0,  0 },
1864
{"sdbbp",   "",   0x7000003f, 0xffffffff, TRAP,             0,    I32,    0,  I37 },
1865
{"sdbbp",   "B",    0x0000000e, 0xfc00003f, TRAP,             0,    I37,    0,  0 },
1866
{"sdbbp",   "B",    0x7000003f, 0xfc00003f, TRAP,             0,    I32,    0,  I37 },
1867
{"sdc1",    "T,o(b)", 0xf4000000, 0xfc000000, RD_1|RD_3|SM|FP_D,  0,    I2,   0,  SF },
1868
{"sdc1",    "E,o(b)", 0xf4000000, 0xfc000000, RD_1|RD_3|SM|FP_D,  0,    I2,   0,  SF },
1869
{"sdc1",    "T,A(b)", 0,    (int) M_SDC1_AB,  INSN_MACRO,   INSN2_M_FP_D, I2,   0,  SF },
1870
{"sdc1",    "E,A(b)", 0,    (int) M_SDC1_AB,  INSN_MACRO,   INSN2_M_FP_D, I2,   0,  SF },
1871
{"sdc2",    "E,+:(d)",  0x49e00000, 0xffe00000, RD_3|RD_C2|SM,    0,    I37,    0,  0 },
1872
{"sdc2",    "E,o(b)", 0xf8000000, 0xfc000000, RD_3|RD_C2|SM,    0,    I2,   0,  N54|IOCT|IOCTP|IOCT2|EE|ALX|I37 },
1873
{"sdc2",    "E,A(b)", 0,    (int) M_SDC2_AB,  INSN_MACRO,   0,    I2,   0,  N54|IOCT|IOCTP|IOCT2|EE|ALX },
1874
{"sdc3",    "E,o(b)", 0xfc000000, 0xfc000000, RD_3|RD_C3|SM,    0,    I2,   0,  I3_32|EE|ALX },
1875
{"sdc3",    "E,A(b)", 0,    (int) M_SDC3_AB,  INSN_MACRO,   0,    I2,   0,  I3_32|EE|ALX },
1876
{"s.d",     "T,o(b)", 0xf4000000, 0xfc000000, RD_1|RD_3|SM|FP_D,  0,    I2,   0,  SF },
1877
{"s.d",     "T,A(b)", 0,    (int) M_S_DAB,  INSN_MACRO,   INSN2_M_FP_D, I1,   0,  0 },
1878
{"sdl",     "t,o(b)", 0xb0000000, 0xfc000000, RD_1|RD_3|SM,   0,    I3,   0,  I69 },
1879
{"sdl",     "t,A(b)", 0,    (int) M_SDL_AB, INSN_MACRO,   0,    I3,   0,  I69 },
1880
{"sdr",     "t,o(b)", 0xb4000000, 0xfc000000, RD_1|RD_3|SM,   0,    I3,   0,  I69 },
1881
{"sdr",     "t,A(b)", 0,    (int) M_SDR_AB, INSN_MACRO,   0,    I3,   0,  I69 },
1882
{"sdxc1",   "S,t(b)", 0x4c000009, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_D, 0,    I4_33,    0,  I37 },
1883
{"seb",     "d,w",    0x7c000420, 0xffe007ff, WR_1|RD_2,    0,    I33|ALX,  0,  0 },
1884
{"seh",     "d,w",    0x7c000620, 0xffe007ff, WR_1|RD_2,    0,    I33|ALX,  0,  0 },
1885
{"selsl",   "d,v,t",  0x00000005, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    L1,   0,  0 },
1886
{"selsr",   "d,v,t",  0x00000001, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    L1,   0,  0 },
1887
{"seq",     "d,v,t",  0x7000002a, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IOCT,   0,  0 },
1888
{"seq",     "d,v,t",  0,    (int) M_SEQ,  INSN_MACRO,   0,    I1,   0,  0 },
1889
{"seq",     "d,v,I",  0,    (int) M_SEQ_I,  INSN_MACRO,   0,    I1,   0,  0 },
1890
{"seq",     "S,T",    0x46a00032, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
1891
{"seq",     "S,T",    0x4ba0000c, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    0,    LMMI, 0 },
1892
{"seqi",    "t,r,+Q", 0x7000002e, 0xfc00003f, WR_1|RD_2,    0,    IOCT,   0,  0 },
1893
{"sge",     "d,v,t",  0,    (int) M_SGE,  INSN_MACRO,   0,    I1,   0,  0 },
1894
{"sge",     "d,v,I",  0,    (int) M_SGE_I,  INSN_MACRO,   0,    I1,   0,  0 },
1895
{"sgeu",    "d,v,t",  0,    (int) M_SGEU, INSN_MACRO,   0,    I1,   0,  0 },
1896
{"sgeu",    "d,v,I",  0,    (int) M_SGEU_I, INSN_MACRO,   0,    I1,   0,  0 },
1897
{"sgt",     "d,v,t",  0,    (int) M_SGT,  INSN_MACRO,   0,    I1,   0,  0 },
1898
{"sgt",     "d,v,I",  0,    (int) M_SGT_I,  INSN_MACRO,   0,    I1,   0,  0 },
1899
{"sgtu",    "d,v,t",  0,    (int) M_SGTU, INSN_MACRO,   0,    I1,   0,  0 },
1900
{"sgtu",    "d,v,I",  0,    (int) M_SGTU_I, INSN_MACRO,   0,    I1,   0,  0 },
1901
{"sh",      "t,o(b)", 0xa4000000, 0xfc000000, RD_1|RD_3|SM,   0,    I1,   0,  0 },
1902
{"sh",      "t,A(b)", 0,    (int) M_SH_AB,  INSN_MACRO,   0,    I1,   0,  0 },
1903
{"shfl.bfla.qh",  "X,Y,Z",  0x7a20001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1904
{"shfl.mixh.ob",  "X,Y,Z",  0x7980001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1905
{"shfl.mixh.ob",  "D,S,T",  0x4980001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1906
{"shfl.mixh.qh",  "X,Y,Z",  0x7820001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1907
{"shfl.mixl.ob",  "X,Y,Z",  0x79c0001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1908
{"shfl.mixl.ob",  "D,S,T",  0x49c0001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1909
{"shfl.mixl.qh",  "X,Y,Z",  0x78a0001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1910
{"shfl.pach.ob",  "X,Y,Z",  0x7900001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1911
{"shfl.pach.ob",  "D,S,T",  0x4900001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1912
{"shfl.pach.qh",  "X,Y,Z",  0x7920001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1913
{"shfl.pacl.ob",  "D,S,T",  0x4940001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1914
{"shfl.repa.qh",  "X,Y,Z",  0x7b20001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1915
{"shfl.repb.qh",  "X,Y,Z",  0x7ba0001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1916
{"shfl.upsl.ob",  "X,Y,Z",  0x78c0001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1917
{"sigrie",    "u",    0x04170000, 0xffff0000, TRAP,     0,    I37,    0,  0 },
1918
{"sle",     "d,v,t",  0,    (int) M_SLE,  INSN_MACRO,   0,    I1,   0,  0 },
1919
{"sle",     "d,v,I",  0,    (int) M_SLE_I,  INSN_MACRO,   0,    I1,   0,  0 },
1920
{"sle",     "S,T",    0x46a0003e, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
1921
{"sle",     "S,T",    0x4ba0000e, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    0,    LMMI, 0 },
1922
{"sleu",    "d,v,t",  0,    (int) M_SLEU, INSN_MACRO,   0,    I1,   0,  0 },
1923
{"sleu",    "d,v,I",  0,    (int) M_SLEU_I, INSN_MACRO,   0,    I1,   0,  0 },
1924
{"sleu",    "S,T",    0x4680003e, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
1925
{"sleu",    "S,T",    0x4b80000e, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    0,    LMMI, 0 },
1926
{"sllv",    "d,t,s",  0x00000004, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
1927
{"sll",     "d,w,s",  0x00000004, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 }, /* sllv */
1928
{"sll",     "d,w,<",  0x00000000, 0xffe0003f, WR_1|RD_2,    0,    I1,   0,  0 },
1929
{"sll",     "D,S,T",  0x45800002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1930
{"sll",     "D,S,T",  0x4b00000e, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
1931
{"sll.ob",    "X,Y,Q",  0x78000010, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1932
{"sll.ob",    "D,S,Q",  0x48000010, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1933
{"sll.qh",    "X,Y,Q",  0x78200010, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1934
{"slt",     "d,v,t",  0x0000002a, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
1935
{"slt",     "d,v,I",  0,    (int) M_SLT_I,  INSN_MACRO,   0,    I1,   0,  0 },
1936
{"slt",     "S,T",    0x46a0003c, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
1937
{"slt",     "S,T",    0x4ba0000d, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    0,    LMMI, 0 },
1938
{"slti",    "t,r,j",  0x28000000, 0xfc000000, WR_1|RD_2,    0,    I1,   0,  0 },
1939
{"sltiu",   "t,r,j",  0x2c000000, 0xfc000000, WR_1|RD_2,    0,    I1,   0,  0 },
1940
{"sltu",    "d,v,t",  0x0000002b, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
1941
{"sltu",    "d,v,I",  0,    (int) M_SLTU_I, INSN_MACRO,   0,    I1,   0,  0 },
1942
{"sltu",    "S,T",    0x4680003c, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
1943
{"sltu",    "S,T",    0x4b80000d, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    0,    LMMI, 0 },
1944
{"sne",     "d,v,t",  0x7000002b, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IOCT,   0,  0 },
1945
{"sne",     "d,v,t",  0,    (int) M_SNE,  INSN_MACRO,   0,    I1,   0,  0 },
1946
{"sne",     "d,v,I",  0,    (int) M_SNE_I,  INSN_MACRO,   0,    I1,   0,  0 },
1947
{"snei",    "t,r,+Q", 0x7000002f, 0xfc00003f, WR_1|RD_2,    0,    IOCT,   0,  0 },
1948
{"sq",      "t,o(b)", 0x7c000000, 0xfc000000, RD_1|RD_3|SM,   0,    MMI,    0,  0 },
1949
{"sq",      "t,A(b)", 0,    (int) M_SQ_AB,  INSN_MACRO,   0,    MMI,    0,  0 },
1950
{"sqc2",    "+7,o(b)",  0xf8000000, 0xfc000000, RD_3|RD_C2|SM,    0,    EE,   0,  0 },
1951
{"sqc2",    "+7,A(b)",  0,    (int) M_SQC2_AB,  INSN_MACRO,   0,    EE,   0,  0 },
1952
{"sqrt.d",    "D,S",    0x46200004, 0xffff003f, WR_1|RD_2|FP_D,   0,    I2,   0,  SF },
1953
{"sqrt.s",    "D,S",    0x46000004, 0xffff003f, WR_1|RD_2|FP_S,   0,    I2,   0,  0 },
1954
{"sqrt.ps",   "D,S",    0x46c00004, 0xffff003f, WR_1|RD_2|FP_D,   0,    SB1,    0,  0 },
1955
{"srav",    "d,t,s",  0x00000007, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
1956
{"sra",     "d,w,s",  0x00000007, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 }, /* srav */
1957
{"sra",     "d,w,<",  0x00000003, 0xffe0003f, WR_1|RD_2,    0,    I1,   0,  0 },
1958
{"sra",     "D,S,T",  0x45c00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1959
{"sra",     "D,S,T",  0x4b40000f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
1960
{"sra.qh",    "X,Y,Q",  0x78200013, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1961
{"srlv",    "d,t,s",  0x00000006, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
1962
{"srl",     "d,w,s",  0x00000006, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 }, /* srlv */
1963
{"srl",     "d,w,<",  0x00000002, 0xffe0003f, WR_1|RD_2,    0,    I1,   0,  0 },
1964
{"srl",     "D,S,T",  0x45800003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1965
{"srl",     "D,S,T",  0x4b00000f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
1966
{"srl.ob",    "X,Y,Q",  0x78000012, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1967
{"srl.ob",    "D,S,Q",  0x48000012, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1968
{"srl.qh",    "X,Y,Q",  0x78200012, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1969
/* ssnop is at the start of the table.  */
1970
{"standby",   "",   0x42000021, 0xffffffff, 0,      0,    V1,   0,  0 },
1971
{"sub",     "d,v,t",  0x00000022, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
1972
{"sub",     "d,v,I",  0,    (int) M_SUB_I,  INSN_MACRO,   0,    I1,   0,  0 },
1973
{"sub",     "D,S,T",  0x45c00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    IL2E,   0,  0 },
1974
{"sub",     "D,S,T",  0x4b40000d, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    0,    LMMI, 0 },
1975
{"sub.d",   "D,V,T",  0x46200001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I1,   0,  SF },
1976
{"sub.s",   "D,V,T",  0x46000001, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I1,   0,  0 },
1977
{"sub.ob",    "X,Y,Q",  0x7800000a, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
1978
{"sub.ob",    "D,S,Q",  0x4800000a, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
1979
{"sub.ps",    "D,V,T",  0x46c00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I5_33|IL2F, 0,  I37 },
1980
{"sub.ps",    "D,V,T",  0x45600001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
1981
{"sub.qh",    "X,Y,Q",  0x7820000a, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
1982
{"suba.ob",   "Y,Q",    0x78000036, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  SB1,    MX, 0 },
1983
{"suba.qh",   "Y,Q",    0x78200036, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  0,    MX, 0 },
1984
{"subl.ob",   "Y,Q",    0x78000436, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  SB1,    MX, 0 },
1985
{"subl.qh",   "Y,Q",    0x78200436, 0xfc2007ff, RD_1|RD_2|FP_D,   WR_MACC,  0,    MX, 0 },
1986
{"suba.s",    "S,T",    0x46000019, 0xffe007ff, RD_1|RD_2|FP_S,   0,    EE,   0,  0 },
1987
{"subu",    "d,v,t",  0x00000023, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
1988
{"subu",    "d,v,I",  0,    (int) M_SUBU_I, INSN_MACRO,   0,    I1,   0,  0 },
1989
{"subu",    "D,S,T",  0x45800001, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    IL2E,   0,  0 },
1990
{"subu",    "D,S,T",  0x4b00000d, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    0,    LMMI, 0 },
1991
{"suspend",   "",   0x42000022, 0xffffffff, 0,      0,    V1,   0,  0 },
1992
{"suxc1",   "S,t(b)", 0x4c00000d, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_D, 0,    I5_33|N55,  0,  I37},
1993
{"sw",      "t,o(b)", 0xac000000, 0xfc000000, RD_1|RD_3|SM,   0,    I1,   0,  0 },
1994
{"sw",      "t,A(b)", 0,    (int) M_SW_AB,  INSN_MACRO,   0,    I1,   0,  0 },
1995
{"swapw",   "t,b",    0x70000014, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0,    XLR,    0,  0 },
1996
{"swapwu",    "t,b",    0x70000015, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0,    XLR,    0,  0 },
1997
{"swapd",   "t,b",    0x70000016, 0xfc00ffff, MOD_1|RD_2|LM|SM, 0,    XLR,    0,  0 },
1998
{"swc0",    "E,o(b)", 0xe0000000, 0xfc000000, RD_3|RD_C0|SM,    0,    I1,   0,  I2 },
1999
{"swc0",    "E,A(b)", 0,    (int) M_SWC0_AB,  INSN_MACRO,   0,    I1,   0,  I2 },
2000
{"swc1",    "T,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S,  0,    I1,   0,  0 },
2001
{"swc1",    "E,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S,  0,    I1,   0,  0 },
2002
{"swc1",    "T,A(b)", 0,    (int) M_SWC1_AB,  INSN_MACRO,   INSN2_M_FP_S, I1,   0,  0 },
2003
{"swc1",    "E,A(b)", 0,    (int) M_SWC1_AB,  INSN_MACRO,   INSN2_M_FP_S, I1,   0,  0 },
2004
{"s.s",     "T,o(b)", 0xe4000000, 0xfc000000, RD_1|RD_3|SM|FP_S,  0,    I1,   0,  0 }, /* swc1 */
2005
{"s.s",     "T,A(b)", 0,    (int) M_SWC1_AB,  INSN_MACRO,   INSN2_M_FP_S, I1,   0,  0 },
2006
{"swc2",    "E,+:(d)",  0x49600000, 0xffe00000, RD_3|RD_C2|SM,    0,    I37,    0,  0 },
2007
{"swc2",    "E,o(b)", 0xe8000000, 0xfc000000, RD_3|RD_C2|SM,    0,    I1,   0,  N54|IOCT|IOCTP|IOCT2|EE|I37 },
2008
{"swc2",    "E,A(b)", 0,    (int) M_SWC2_AB,  INSN_MACRO,   0,    I1,   0,  N54|IOCT|IOCTP|IOCT2|EE },
2009
{"swc3",    "E,o(b)", 0xec000000, 0xfc000000, RD_3|RD_C3|SM,    0,    I1,   0,  I3_32|EE|ALX },
2010
{"swc3",    "E,A(b)", 0,    (int) M_SWC3_AB,  INSN_MACRO,   0,    I1,   0,  I3_32|EE|ALX },
2011
{"swl",     "t,o(b)", 0xa8000000, 0xfc000000, RD_1|RD_3|SM,   0,    I1,   0,  I37 },
2012
{"swl",     "t,A(b)", 0,    (int) M_SWL_AB, INSN_MACRO,   0,    I1,   0,  I37 },
2013
{"scache",    "t,o(b)", 0xa8000000, 0xfc000000, RD_1|RD_3,    0,    I2,   0,  I37 }, /* same */
2014
{"scache",    "t,A(b)", 0,    (int) M_SWL_AB, INSN_MACRO,   0,    I2,   0,  I37 }, /* as swl */
2015
{"swr",     "t,o(b)", 0xb8000000, 0xfc000000, RD_1|RD_3|SM,   0,    I1,   0,  I37 },
2016
{"swr",     "t,A(b)", 0,    (int) M_SWR_AB, INSN_MACRO,   0,    I1,   0,  I37 },
2017
{"invalidate",    "t,o(b)", 0xb8000000, 0xfc000000, RD_1|RD_3,    0,    I2,   0,  I37 }, /* same */
2018
{"invalidate",    "t,A(b)", 0,    (int) M_SWR_AB, INSN_MACRO,   0,    I2,   0,  I37 }, /* as swr */
2019
{"swxc1",   "S,t(b)", 0x4c000008, 0xfc0007ff, RD_1|RD_2|RD_3|SM|FP_S, 0,    I4_33,    0,  I37 },
2020
{"synciobdma",    "",   0x0000008f, 0xffffffff, NODS,     AL,   IOCT,   0,  0 },
2021
{"syncs",   "",   0x0000018f, 0xffffffff, NODS,     AL,   IOCT,   0,  0 },
2022
{"syncw",   "",   0x0000010f, 0xffffffff, NODS,     AL,   IOCT,   0,  0 },
2023
{"syncws",    "",   0x0000014f, 0xffffffff, NODS,     AL,   IOCT,   0,  0 },
2024
{"sync_acquire",  "",   0x0000044f, 0xffffffff, NODS,     AL,   I33,    0,  0 },
2025
{"sync_mb",   "",   0x0000040f, 0xffffffff, NODS,     AL,   I33,    0,  0 },
2026
{"sync_release",  "",   0x0000048f, 0xffffffff, NODS,     AL,   I33,    0,  0 },
2027
{"sync_rmb",    "",   0x000004cf, 0xffffffff, NODS,     AL,   I33,    0,  0 },
2028
{"sync_wmb",    "",   0x0000010f, 0xffffffff, NODS,     AL,   I33,    0,  0 },
2029
{"sync",    "",   0x0000000f, 0xffffffff, NODS,     0,    I2|G1,    0,  0 },
2030
{"sync",    "1",    0x0000000f, 0xfffff83f, NODS,     0,    I32,    0,  0 },
2031
{"sync.p",    "",   0x0000040f, 0xffffffff, NODS,     0,    I2,   0,  0 },
2032
{"sync.l",    "",   0x0000000f, 0xffffffff, NODS,     0,    I2,   0,  0 },
2033
{"synci",   "o(b)",   0x041f0000, 0xfc1f0000, RD_2|SM,    0,    I33,    0,  0 },
2034
{"syscall",   "",   0x0000000c, 0xffffffff, TRAP,     0,    I1,   0,  0 },
2035
{"syscall",   "B",    0x0000000c, 0xfc00003f, TRAP,     0,    I1,   0,  0 },
2036
{"teqi",    "s,j",    0x040c0000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX },
2037
{"teq",     "s,t",    0x00000034, 0xfc00ffff, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2038
{"teq",     "s,t,q",  0x00000034, 0xfc00003f, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2039
{"teq",     "s,j",    0x040c0000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX }, /* teqi */
2040
{"teq",     "s,I",    0,    (int) M_TEQ_I,  INSN_MACRO,   0,    I2,   0,  ALX },
2041
{"tgei",    "s,j",    0x04080000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX },
2042
{"tge",     "s,t",    0x00000030, 0xfc00ffff, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2043
{"tge",     "s,t,q",  0x00000030, 0xfc00003f, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2044
{"tge",     "s,j",    0x04080000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX }, /* tgei */
2045
{"tge",     "s,I",    0,    (int) M_TGE_I,    INSN_MACRO,   0,    I2,   0,  ALX },
2046
{"tgeiu",   "s,j",    0x04090000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX },
2047
{"tgeu",    "s,t",    0x00000031, 0xfc00ffff, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2048
{"tgeu",    "s,t,q",  0x00000031, 0xfc00003f, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2049
{"tgeu",    "s,j",    0x04090000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX }, /* tgeiu */
2050
{"tgeu",    "s,I",    0,    (int) M_TGEU_I, INSN_MACRO,   0,    I2,   0,  ALX },
2051
{"tlbinv",    "",   0x42000003, 0xffffffff, INSN_TLB,         0,    I37,    TLBINV, 0 },
2052
{"tlbinvf",   "",   0x42000004, 0xffffffff, INSN_TLB,         0,    I37,    TLBINV, 0 },
2053
{"tlbp",    "",   0x42000008, 0xffffffff, INSN_TLB,         0,    I1,   0,  0 },
2054
{"tlbr",    "",   0x42000001, 0xffffffff, INSN_TLB,         0,    I1,   0,  0 },
2055
{"tlbwi",   "",   0x42000002, 0xffffffff, INSN_TLB,         0,    I1,   0,  0 },
2056
{"tlbwr",   "",   0x42000006, 0xffffffff, INSN_TLB,         0,    I1,   0,  0 },
2057
{"tlbgr",   "",   0x42000009, 0xffffffff, INSN_TLB,         0,    0,    IVIRT,  0 },
2058
{"tlbgwi",    "",   0x4200000a, 0xffffffff, INSN_TLB,         0,    0,    IVIRT,  0 },
2059
{"tlbginv",   "",   0x4200000b, 0xffffffff, INSN_TLB,         0,    0,    IVIRT,  0 },
2060
{"tlbginvf",    "",   0x4200000c, 0xffffffff, INSN_TLB,         0,    0,    IVIRT,  0 },
2061
{"tlbgwr",    "",   0x4200000e, 0xffffffff, INSN_TLB,         0,    0,    IVIRT,  0 },
2062
{"tlbgp",   "",   0x42000010, 0xffffffff, INSN_TLB,         0,    0,    IVIRT,  0 },
2063
{"tlti",    "s,j",    0x040a0000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX },
2064
{"tlt",     "s,t",    0x00000032, 0xfc00ffff, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2065
{"tlt",     "s,t,q",  0x00000032, 0xfc00003f, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2066
{"tlt",     "s,j",    0x040a0000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX }, /* tlti */
2067
{"tlt",     "s,I",    0,    (int) M_TLT_I,  INSN_MACRO,   0,    I2,   0,  ALX },
2068
{"tltiu",   "s,j",    0x040b0000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX },
2069
{"tltu",    "s,t",    0x00000033, 0xfc00ffff, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2070
{"tltu",    "s,t,q",  0x00000033, 0xfc00003f, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2071
{"tltu",    "s,j",    0x040b0000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX }, /* tltiu */
2072
{"tltu",    "s,I",    0,    (int) M_TLTU_I, INSN_MACRO,   0,    I2,   0,  ALX },
2073
{"tnei",    "s,j",    0x040e0000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX },
2074
{"tne",     "s,t",    0x00000036, 0xfc00ffff, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2075
{"tne",     "s,t,q",  0x00000036, 0xfc00003f, RD_1|RD_2|TRAP,   0,    I2,   0,  ALX },
2076
{"tne",     "s,j",    0x040e0000, 0xfc1f0000, RD_1|TRAP,    0,    I2,   0,  I37|ALX }, /* tnei */
2077
{"tne",     "s,I",    0,    (int) M_TNE_I,  INSN_MACRO,   0,    I2,   0,  ALX },
2078
{"trunc.l.d",   "D,S",    0x46200009, 0xffff003f, WR_1|RD_2|FP_D,   0,    I3_33,    0,  0 },
2079
{"trunc.l.s",   "D,S",    0x46000009, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I3_33,    0,  0 },
2080
{"trunc.w.d",   "D,S",    0x4620000d, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I2,   0,  SF },
2081
{"trunc.w.d",   "D,S,x",  0x4620000d, 0xffff003f, WR_1|RD_2|FP_S|FP_D,  0,    I2,   0,  SF },
2082
{"trunc.w.d",   "D,S,t",  0,    (int) M_TRUNCWD,  INSN_MACRO,   INSN2_M_FP_S|INSN2_M_FP_D, I1,  0,  SF },
2083
{"trunc.w.s",   "D,S",    0x46000024, 0xffff003f, WR_1|RD_2|FP_S,   0,    EE,   0,  0 },
2084
{"trunc.w.s",   "D,S",    0x4600000d, 0xffff003f, WR_1|RD_2|FP_S,   0,    I2,   0,  EE },
2085
{"trunc.w.s",   "D,S,x",  0x4600000d, 0xffff003f, WR_1|RD_2|FP_S,   0,    I2,   0,  EE },
2086
{"trunc.w.s",   "D,S,t",  0,    (int) M_TRUNCWS,  INSN_MACRO,   INSN2_M_FP_S, I1,   0,  EE },
2087
{"uld",     "t,A(b)", 0,    (int) M_ULD_AB, INSN_MACRO,   0,    I3,   0,  I69 },
2088
{"ulh",     "t,A(b)", 0,    (int) M_ULH_AB, INSN_MACRO,   0,    I1,   0,  I37 },
2089
{"ulhu",    "t,A(b)", 0,    (int) M_ULHU_AB,  INSN_MACRO,   0,    I1,   0,  I37 },
2090
{"ulw",     "t,A(b)", 0,    (int) M_ULW_AB, INSN_MACRO,   0,    I1,   0,  I37 },
2091
{"usd",     "t,A(b)", 0,    (int) M_USD_AB, INSN_MACRO,   0,    I3,   0,  I69 },
2092
{"ush",     "t,A(b)", 0,    (int) M_USH_AB, INSN_MACRO,   0,    I1,   0,  I37 },
2093
{"usw",     "t,A(b)", 0,    (int) M_USW_AB, INSN_MACRO,   0,    I1,   0,  I37 },
2094
{"v3mulu",    "d,v,t",  0x70000011, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IOCT,   0,  0 },
2095
{"vmm0",    "d,v,t",  0x70000010, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IOCT,   0,  0 },
2096
{"vmulu",   "d,v,t",  0x7000000f, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IOCT,   0,  0 },
2097
{"wach.ob",   "Y",    0x7a00003e, 0xffff07ff, RD_1|FP_D,    WR_MACC,  SB1,    MX, 0 },
2098
{"wach.ob",   "S",    0x4a00003e, 0xffff07ff, RD_1|FP_D,    WR_MACC,  N54,    0,  0 },
2099
{"wach.qh",   "Y",    0x7a20003e, 0xffff07ff, RD_1|FP_D,    WR_MACC,  0,    MX, 0 },
2100
{"wacl.ob",   "Y,Z",    0x7800003e, 0xffe007ff, RD_1|RD_2|FP_D,   WR_MACC,  SB1,    MX, 0 },
2101
{"wacl.ob",   "S,T",    0x4800003e, 0xffe007ff, RD_1|RD_2|FP_D,   WR_MACC,  N54,    0,  0 },
2102
{"wacl.qh",   "Y,Z",    0x7820003e, 0xffe007ff, RD_1|RD_2|FP_D,   WR_MACC,  0,    MX, 0 },
2103
{"wait",    "",   0x42000020, 0xffffffff, NODS,       0,    I3_32,    0,  0 },
2104
{"wait",    "J",    0x42000020, 0xfe00003f, NODS,       0,    I32|N55,  0,  0 },
2105
{"waiti",   "",   0x42000020, 0xffffffff, NODS,     0,    L1,   0,  0 },
2106
{"wrpgpr",    "d,w",    0x41c00000, 0xffe007ff, RD_2,     0,    I33,    0,  0 },
2107
{"wsbh",    "d,w",    0x7c0000a0, 0xffe007ff, WR_1|RD_2,    0,    I33|ALX,  0,  0 },
2108
{"wsbw",    "d,w",    0x7c0000e0, 0xffe007ff, WR_1|RD_2,    0,    ALX,    0,  0 },
2109
{"xor",     "d,v,t",  0x00000026, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I1,   0,  0 },
2110
{"xor",     "t,r,I",  0,    (int) M_XOR_I,  INSN_MACRO,   0,    I1,   0,  0 },
2111
{"xor",     "D,S,T",  0x47800002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2112
{"xor",     "D,S,T",  0x4b800002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2113
{"xor.ob",    "X,Y,Q",  0x7800000d, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    SB1,    MX, 0 },
2114
{"xor.ob",    "D,S,Q",  0x4800000d, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    N54,    0,  0 },
2115
{"xor.qh",    "X,Y,Q",  0x7820000d, 0xfc20003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    MX, 0 },
2116
{"xori",    "t,r,i",  0x38000000, 0xfc000000, WR_1|RD_2,    0,    I1,   0,  0 },
2117
{"yield",   "s",    0x7c000009, 0xfc1fffff, RD_1|NODS,    0,    0,    MT32, 0 },
2118
{"yield",   "d,s",    0x7c000009, 0xfc1f07ff, WR_1|RD_2|NODS,   0,    0,    MT32, 0 },
2119
{"zcb",     "(b)",    0x7000071f, 0xfc1fffff, RD_1|SM,    0,    IOCT2,    0,  0 },
2120
{"zcbt",    "(b)",    0x7000075f, 0xfc1fffff, RD_1|SM,    0,    IOCT2,    0,  0 },
2121
2122
  /* Conflicts with the 4650's "mul" instruction.  Nobody's using the
2123
     4010 any more, so move this insn out of the way.  If the object
2124
     format gave us more info, we could do this right.  */
2125
{"addciu",    "t,r,j",  0x70000000, 0xfc000000, WR_1|RD_2,    0,    L1,   0,  0 },
2126
/* MIPS DSP ASE */
2127
{"absq_s.ph",   "d,t",    0x7c000252, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2128
{"absq_s.pw",   "d,t",    0x7c000456, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2129
{"absq_s.qh",   "d,t",    0x7c000256, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2130
{"absq_s.w",    "d,t",    0x7c000452, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2131
{"addq.ph",   "d,s,t",  0x7c000290, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2132
{"addq.pw",   "d,s,t",  0x7c000494, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2133
{"addq.qh",   "d,s,t",  0x7c000294, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2134
{"addq_s.ph",   "d,s,t",  0x7c000390, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2135
{"addq_s.pw",   "d,s,t",  0x7c000594, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2136
{"addq_s.qh",   "d,s,t",  0x7c000394, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2137
{"addq_s.w",    "d,s,t",  0x7c000590, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2138
{"addsc",   "d,s,t",  0x7c000410, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2139
{"addu.ob",   "d,s,t",  0x7c000014, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2140
{"addu.qb",   "d,s,t",  0x7c000010, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2141
{"addu_s.ob",   "d,s,t",  0x7c000114, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2142
{"addu_s.qb",   "d,s,t",  0x7c000110, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2143
{"addwc",   "d,s,t",  0x7c000450, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2144
{"bitrev",    "d,w",    0x7c000520, 0xffe007ff, WR_1|RD_2,    0,    ALX,    0,  0 },
2145
{"bitrev",    "d,t",    0x7c0006d2, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2146
{"bposge32",    "p",    0x041c0000, 0xffff0000, CBD,      0,    0,    D32,  0 },
2147
{"bposge32c",   "p",    0x04180000, 0xffff0000, NODS,     FS,   0,    D34,  0 },
2148
{"bposge64",    "p",    0x041d0000, 0xffff0000, CBD,      0,    0,    D64,  0 },
2149
{"cmp.eq.ph",   "s,t",    0x7c000211, 0xfc00ffff, RD_1|RD_2,    0,    0,    D32,  0 },
2150
{"cmp.eq.pw",   "s,t",    0x7c000415, 0xfc00ffff, RD_1|RD_2,    0,    0,    D64,  0 },
2151
{"cmp.eq.qh",   "s,t",    0x7c000215, 0xfc00ffff, RD_1|RD_2,    0,    0,    D64,  0 },
2152
{"cmpgu.eq.ob",   "d,s,t",  0x7c000115, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2153
{"cmpgu.eq.qb",   "d,s,t",  0x7c000111, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2154
{"cmpgu.le.ob",   "d,s,t",  0x7c000195, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2155
{"cmpgu.le.qb",   "d,s,t",  0x7c000191, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2156
{"cmpgu.lt.ob",   "d,s,t",  0x7c000155, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2157
{"cmpgu.lt.qb",   "d,s,t",  0x7c000151, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2158
{"cmp.le.ph",   "s,t",    0x7c000291, 0xfc00ffff, RD_1|RD_2,    0,    0,    D32,  0 },
2159
{"cmp.le.pw",   "s,t",    0x7c000495, 0xfc00ffff, RD_1|RD_2,    0,    0,    D64,  0 },
2160
{"cmp.le.qh",   "s,t",    0x7c000295, 0xfc00ffff, RD_1|RD_2,    0,    0,    D64,  0 },
2161
{"cmp.lt.ph",   "s,t",    0x7c000251, 0xfc00ffff, RD_1|RD_2,    0,    0,    D32,  0 },
2162
{"cmp.lt.pw",   "s,t",    0x7c000455, 0xfc00ffff, RD_1|RD_2,    0,    0,    D64,  0 },
2163
{"cmp.lt.qh",   "s,t",    0x7c000255, 0xfc00ffff, RD_1|RD_2,    0,    0,    D64,  0 },
2164
{"cmpu.eq.ob",    "s,t",    0x7c000015, 0xfc00ffff, RD_1|RD_2,    0,    0,    D64,  0 },
2165
{"cmpu.eq.qb",    "s,t",    0x7c000011, 0xfc00ffff, RD_1|RD_2,    0,    0,    D32,  0 },
2166
{"cmpu.le.ob",    "s,t",    0x7c000095, 0xfc00ffff, RD_1|RD_2,    0,    0,    D64,  0 },
2167
{"cmpu.le.qb",    "s,t",    0x7c000091, 0xfc00ffff, RD_1|RD_2,    0,    0,    D32,  0 },
2168
{"cmpu.lt.ob",    "s,t",    0x7c000055, 0xfc00ffff, RD_1|RD_2,    0,    0,    D64,  0 },
2169
{"cmpu.lt.qb",    "s,t",    0x7c000051, 0xfc00ffff, RD_1|RD_2,    0,    0,    D32,  0 },
2170
{"dextpdp",   "t,7,6",  0x7c0002bc, 0xfc00e7ff, WR_1|RD_a|DSP_VOLA, 0,    0,    D64,  0 },
2171
{"dextpdpv",    "t,7,s",  0x7c0002fc, 0xfc00e7ff, WR_1|RD_3|RD_a|DSP_VOLA, 0,   0,    D64,  0 },
2172
{"dextp",   "t,7,6",  0x7c0000bc, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D64,  0 },
2173
{"dextpv",    "t,7,s",  0x7c0000fc, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D64,  0 },
2174
{"dextr.l",   "t,7,6",  0x7c00043c, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D64,  0 },
2175
{"dextr_r.l",   "t,7,6",  0x7c00053c, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D64,  0 },
2176
{"dextr_rs.l",    "t,7,6",  0x7c0005bc, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D64,  0 },
2177
{"dextr_rs.w",    "t,7,6",  0x7c0001bc, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D64,  0 },
2178
{"dextr_r.w",   "t,7,6",  0x7c00013c, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D64,  0 },
2179
{"dextr_s.h",   "t,7,6",  0x7c0003bc, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D64,  0 },
2180
{"dextrv.l",    "t,7,s",  0x7c00047c, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D64,  0 },
2181
{"dextrv_r.l",    "t,7,s",  0x7c00057c, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D64,  0 },
2182
{"dextrv_rs.l",   "t,7,s",  0x7c0005fc, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D64,  0 },
2183
{"dextrv_rs.w",   "t,7,s",  0x7c0001fc, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D64,  0 },
2184
{"dextrv_r.w",    "t,7,s",  0x7c00017c, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D64,  0 },
2185
{"dextrv_s.h",    "t,7,s",  0x7c0003fc, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D64,  0 },
2186
{"dextrv.w",    "t,7,s",  0x7c00007c, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D64,  0 },
2187
{"dextr.w",   "t,7,6",  0x7c00003c, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D64,  0 },
2188
{"dinsv",   "t,s",    0x7c00000d, 0xfc00ffff, WR_1|RD_2,    0,    0,    D64,  0 },
2189
{"dmadd",   "7,s,t",  0x7c000674, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2190
{"dmaddu",    "7,s,t",  0x7c000774, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2191
{"dmsub",   "7,s,t",  0x7c0006f4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2192
{"dmsubu",    "7,s,t",  0x7c0007f4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2193
{"dmthlip",   "s,7",    0x7c0007fc, 0xfc1fe7ff, RD_1|MOD_a|DSP_VOLA,  0,    0,    D64,  0 },
2194
{"dpaq_sa.l.pw",  "7,s,t",  0x7c000334, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2195
{"dpaq_sa.l.w",   "7,s,t",  0x7c000330, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2196
{"dpaq_s.w.ph",   "7,s,t",  0x7c000130, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2197
{"dpaq_s.w.qh",   "7,s,t",  0x7c000134, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2198
{"dpau.h.obl",    "7,s,t",  0x7c0000f4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2199
{"dpau.h.obr",    "7,s,t",  0x7c0001f4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2200
{"dpau.h.qbl",    "7,s,t",  0x7c0000f0, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2201
{"dpau.h.qbr",    "7,s,t",  0x7c0001f0, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2202
{"dpsq_sa.l.pw",  "7,s,t",  0x7c000374, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2203
{"dpsq_sa.l.w",   "7,s,t",  0x7c000370, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2204
{"dpsq_s.w.ph",   "7,s,t",  0x7c000170, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2205
{"dpsq_s.w.qh",   "7,s,t",  0x7c000174, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2206
{"dpsu.h.obl",    "7,s,t",  0x7c0002f4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2207
{"dpsu.h.obr",    "7,s,t",  0x7c0003f4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2208
{"dpsu.h.qbl",    "7,s,t",  0x7c0002f0, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2209
{"dpsu.h.qbr",    "7,s,t",  0x7c0003f0, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2210
{"dshilo",    "7,:",    0x7c0006bc, 0xfc07e7ff, MOD_a,      0,    0,    D64,  0 },
2211
{"dshilov",   "7,s",    0x7c0006fc, 0xfc1fe7ff, RD_2|MOD_a,   0,    0,    D64,  0 },
2212
{"extpdp",    "t,7,6",  0x7c0002b8, 0xfc00e7ff, WR_1|RD_a|DSP_VOLA, 0,    0,    D32,  0 },
2213
{"extpdpv",   "t,7,s",  0x7c0002f8, 0xfc00e7ff, WR_1|RD_3|RD_a|DSP_VOLA, 0,   0,    D32,  0 },
2214
{"extp",    "t,7,6",  0x7c0000b8, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D32,  0 },
2215
{"extpv",   "t,7,s",  0x7c0000f8, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D32,  0 },
2216
{"extr_rs.w",   "t,7,6",  0x7c0001b8, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D32,  0 },
2217
{"extr_r.w",    "t,7,6",  0x7c000138, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D32,  0 },
2218
{"extr_s.h",    "t,7,6",  0x7c0003b8, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D32,  0 },
2219
{"extrv_rs.w",    "t,7,s",  0x7c0001f8, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D32,  0 },
2220
{"extrv_r.w",   "t,7,s",  0x7c000178, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D32,  0 },
2221
{"extrv_s.h",   "t,7,s",  0x7c0003f8, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D32,  0 },
2222
{"extrv.w",   "t,7,s",  0x7c000078, 0xfc00e7ff, WR_1|RD_3|RD_a,   0,    0,    D32,  0 },
2223
{"extr.w",    "t,7,6",  0x7c000038, 0xfc00e7ff, WR_1|RD_a,    0,    0,    D32,  0 },
2224
{"insv",    "t,s",    0x7c00000c, 0xfc00ffff, WR_1|RD_2,    0,    0,    D32,  0 },
2225
/* lbux, ldx, lhx and lwx are the basic instruction section.  */
2226
{"maq_sa.w.phl",  "7,s,t",  0x7c000430, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2227
{"maq_sa.w.phr",  "7,s,t",  0x7c0004b0, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2228
{"maq_sa.w.qhll", "7,s,t",  0x7c000434, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2229
{"maq_sa.w.qhlr", "7,s,t",  0x7c000474, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2230
{"maq_sa.w.qhrl", "7,s,t",  0x7c0004b4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2231
{"maq_sa.w.qhrr", "7,s,t",  0x7c0004f4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2232
{"maq_s.l.pwl",   "7,s,t",  0x7c000734, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2233
{"maq_s.l.pwr",   "7,s,t",  0x7c0007b4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2234
{"maq_s.w.phl",   "7,s,t",  0x7c000530, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2235
{"maq_s.w.phr",   "7,s,t",  0x7c0005b0, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2236
{"maq_s.w.qhll",  "7,s,t",  0x7c000534, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2237
{"maq_s.w.qhlr",  "7,s,t",  0x7c000574, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2238
{"maq_s.w.qhrl",  "7,s,t",  0x7c0005b4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2239
{"maq_s.w.qhrr",  "7,s,t",  0x7c0005f4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2240
{"modsub",    "d,s,t",  0x7c000490, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2241
{"mthlip",    "s,7",    0x7c0007f8, 0xfc1fe7ff, RD_1|MOD_a|DSP_VOLA,  0,    0,    D32,  0 },
2242
{"muleq_s.pw.qhl",  "d,s,t",  0x7c000714, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    0,    D64,  0 },
2243
{"muleq_s.pw.qhr",  "d,s,t",  0x7c000754, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    0,    D64,  0 },
2244
{"muleq_s.w.phl", "d,s,t",  0x7c000710, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    0,    D32,  0 },
2245
{"muleq_s.w.phr", "d,s,t",  0x7c000750, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    0,    D32,  0 },
2246
{"muleu_s.ph.qbl",  "d,s,t",  0x7c000190, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    0,    D32,  0 },
2247
{"muleu_s.ph.qbr",  "d,s,t",  0x7c0001d0, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    0,    D32,  0 },
2248
{"muleu_s.qh.obl",  "d,s,t",  0x7c000194, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    0,    D64,  0 },
2249
{"muleu_s.qh.obr",  "d,s,t",  0x7c0001d4, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    0,    D64,  0 },
2250
{"mulq_rs.ph",    "d,s,t",  0x7c0007d0, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    0,    D32,  0 },
2251
{"mulq_rs.qh",    "d,s,t",  0x7c0007d4, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,    0,    D64,  0 },
2252
{"mulsaq_s.l.pw", "7,s,t",  0x7c0003b4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2253
{"mulsaq_s.w.ph", "7,s,t",  0x7c0001b0, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D32,  0 },
2254
{"mulsaq_s.w.qh", "7,s,t",  0x7c0001b4, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,    0,    D64,  0 },
2255
{"packrl.ph",   "d,s,t",  0x7c000391, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2256
{"packrl.pw",   "d,s,t",  0x7c000395, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2257
{"pick.ob",   "d,s,t",  0x7c0000d5, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2258
{"pick.ph",   "d,s,t",  0x7c0002d1, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2259
{"pick.pw",   "d,s,t",  0x7c0004d5, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2260
{"pick.qb",   "d,s,t",  0x7c0000d1, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2261
{"pick.qh",   "d,s,t",  0x7c0002d5, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2262
{"preceq.pw.qhla",  "d,t",    0x7c000396, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2263
{"preceq.pw.qhl", "d,t",    0x7c000316, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2264
{"preceq.pw.qhra",  "d,t",    0x7c0003d6, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2265
{"preceq.pw.qhr", "d,t",    0x7c000356, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2266
{"preceq.s.l.pwl",  "d,t",    0x7c000516, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2267
{"preceq.s.l.pwr",  "d,t",    0x7c000556, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2268
{"precequ.ph.qbla", "d,t",    0x7c000192, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2269
{"precequ.ph.qbl",  "d,t",    0x7c000112, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2270
{"precequ.ph.qbra", "d,t",    0x7c0001d2, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2271
{"precequ.ph.qbr",  "d,t",    0x7c000152, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2272
{"precequ.pw.qhla", "d,t",    0x7c000196, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2273
{"precequ.pw.qhl",  "d,t",    0x7c000116, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2274
{"precequ.pw.qhra", "d,t",    0x7c0001d6, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2275
{"precequ.pw.qhr",  "d,t",    0x7c000156, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2276
{"preceq.w.phl",  "d,t",    0x7c000312, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2277
{"preceq.w.phr",  "d,t",    0x7c000352, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2278
{"preceu.ph.qbla",  "d,t",    0x7c000792, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2279
{"preceu.ph.qbl", "d,t",    0x7c000712, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2280
{"preceu.ph.qbra",  "d,t",    0x7c0007d2, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2281
{"preceu.ph.qbr", "d,t",    0x7c000752, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2282
{"preceu.qh.obla",  "d,t",    0x7c000796, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2283
{"preceu.qh.obl", "d,t",    0x7c000716, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2284
{"preceu.qh.obra",  "d,t",    0x7c0007d6, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2285
{"preceu.qh.obr", "d,t",    0x7c000756, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2286
{"precrq.ob.qh",  "d,s,t",  0x7c000315, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2287
{"precrq.ph.w",   "d,s,t",  0x7c000511, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2288
{"precrq.pw.l",   "d,s,t",  0x7c000715, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2289
{"precrq.qb.ph",  "d,s,t",  0x7c000311, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2290
{"precrq.qh.pw",  "d,s,t",  0x7c000515, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2291
{"precrq_rs.ph.w",  "d,s,t",  0x7c000551, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2292
{"precrq_rs.qh.pw", "d,s,t",  0x7c000555, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2293
{"precrqu_s.ob.qh", "d,s,t",  0x7c0003d5, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2294
{"precrqu_s.qb.ph", "d,s,t",  0x7c0003d1, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2295
{"raddu.l.ob",    "d,s",    0x7c000514, 0xfc1f07ff, WR_1|RD_2,    0,    0,    D64,  0 },
2296
{"raddu.w.qb",    "d,s",    0x7c000510, 0xfc1f07ff, WR_1|RD_2,    0,    0,    D32,  0 },
2297
{"rddsp",   "d",    0x7fff04b8, 0xffff07ff, WR_1,     0,    0,    D32,  0 },
2298
{"rddsp",   "d,'",    0x7c0004b8, 0xffc007ff, WR_1,     0,    0,    D32,  0 },
2299
{"repl.ob",   "d,5",    0x7c000096, 0xff0007ff, WR_1,     0,    0,    D64,  0 },
2300
{"repl.ph",   "d,@",    0x7c000292, 0xfc0007ff, WR_1,     0,    0,    D32,  0 },
2301
{"repl.pw",   "d,@",    0x7c000496, 0xfc0007ff, WR_1,     0,    0,    D64,  0 },
2302
{"repl.qb",   "d,5",    0x7c000092, 0xff0007ff, WR_1,     0,    0,    D32,  0 },
2303
{"repl.qh",   "d,@",    0x7c000296, 0xfc0007ff, WR_1,     0,    0,    D64,  0 },
2304
{"replv.ob",    "d,t",    0x7c0000d6, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2305
{"replv.ph",    "d,t",    0x7c0002d2, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2306
{"replv.pw",    "d,t",    0x7c0004d6, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2307
{"replv.qb",    "d,t",    0x7c0000d2, 0xffe007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2308
{"replv.qh",    "d,t",    0x7c0002d6, 0xffe007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2309
{"shilo",   "7,0",    0x7c0006b8, 0xfc0fe7ff, MOD_a,      0,    0,    D32,  0 },
2310
{"shilov",    "7,s",    0x7c0006f8, 0xfc1fe7ff, RD_2|MOD_a,   0,    0,    D32,  0 },
2311
{"shll.ob",   "d,t,3",  0x7c000017, 0xff0007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2312
{"shll.ph",   "d,t,4",  0x7c000213, 0xfe0007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2313
{"shll.pw",   "d,t,6",  0x7c000417, 0xfc0007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2314
{"shll.qb",   "d,t,3",  0x7c000013, 0xff0007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2315
{"shll.qh",   "d,t,4",  0x7c000217, 0xfe0007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2316
{"shll_s.ph",   "d,t,4",  0x7c000313, 0xfe0007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2317
{"shll_s.pw",   "d,t,6",  0x7c000517, 0xfc0007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2318
{"shll_s.qh",   "d,t,4",  0x7c000317, 0xfe0007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2319
{"shll_s.w",    "d,t,6",  0x7c000513, 0xfc0007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2320
{"shllv.ob",    "d,t,s",  0x7c000097, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2321
{"shllv.ph",    "d,t,s",  0x7c000293, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2322
{"shllv.pw",    "d,t,s",  0x7c000497, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2323
{"shllv.qb",    "d,t,s",  0x7c000093, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2324
{"shllv.qh",    "d,t,s",  0x7c000297, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2325
{"shllv_s.ph",    "d,t,s",  0x7c000393, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2326
{"shllv_s.pw",    "d,t,s",  0x7c000597, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2327
{"shllv_s.qh",    "d,t,s",  0x7c000397, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2328
{"shllv_s.w",   "d,t,s",  0x7c000593, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2329
{"shra.ph",   "d,t,4",  0x7c000253, 0xfe0007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2330
{"shra.pw",   "d,t,6",  0x7c000457, 0xfc0007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2331
{"shra.qh",   "d,t,4",  0x7c000257, 0xfe0007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2332
{"shra_r.ph",   "d,t,4",  0x7c000353, 0xfe0007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2333
{"shra_r.pw",   "d,t,6",  0x7c000557, 0xfc0007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2334
{"shra_r.qh",   "d,t,4",  0x7c000357, 0xfe0007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2335
{"shra_r.w",    "d,t,6",  0x7c000553, 0xfc0007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2336
{"shrav.ph",    "d,t,s",  0x7c0002d3, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2337
{"shrav.pw",    "d,t,s",  0x7c0004d7, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2338
{"shrav.qh",    "d,t,s",  0x7c0002d7, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2339
{"shrav_r.ph",    "d,t,s",  0x7c0003d3, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2340
{"shrav_r.pw",    "d,t,s",  0x7c0005d7, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2341
{"shrav_r.qh",    "d,t,s",  0x7c0003d7, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2342
{"shrav_r.w",   "d,t,s",  0x7c0005d3, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2343
{"shrl.ob",   "d,t,3",  0x7c000057, 0xff0007ff, WR_1|RD_2,    0,    0,    D64,  0 },
2344
{"shrl.qb",   "d,t,3",  0x7c000053, 0xff0007ff, WR_1|RD_2,    0,    0,    D32,  0 },
2345
{"shrlv.ob",    "d,t,s",  0x7c0000d7, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2346
{"shrlv.qb",    "d,t,s",  0x7c0000d3, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2347
{"subq.ph",   "d,s,t",  0x7c0002d0, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2348
{"subq.pw",   "d,s,t",  0x7c0004d4, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2349
{"subq.qh",   "d,s,t",  0x7c0002d4, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2350
{"subq_s.ph",   "d,s,t",  0x7c0003d0, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2351
{"subq_s.pw",   "d,s,t",  0x7c0005d4, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2352
{"subq_s.qh",   "d,s,t",  0x7c0003d4, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2353
{"subq_s.w",    "d,s,t",  0x7c0005d0, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2354
{"subu.ob",   "d,s,t",  0x7c000054, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2355
{"subu.qb",   "d,s,t",  0x7c000050, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2356
{"subu_s.ob",   "d,s,t",  0x7c000154, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D64,  0 },
2357
{"subu_s.qb",   "d,s,t",  0x7c000150, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    D32,  0 },
2358
{"wrdsp",   "s",    0x7c1ffcf8, 0xfc1fffff, RD_1|DSP_VOLA,    0,    0,    D32,  0 },
2359
{"wrdsp",   "s,8",    0x7c0004f8, 0xfc1e07ff, RD_1|DSP_VOLA,    0,    0,    D32,  0 },
2360
/* MIPS DSP ASE Rev2 */
2361
{"absq_s.qb",   "d,t",    0x7c000052, 0xffe007ff, WR_1|RD_2,              0,              0,    D33,  0 },
2362
{"addu.ph",   "d,s,t",  0x7c000210, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2363
{"addu_s.ph",   "d,s,t",  0x7c000310, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2364
{"adduh.qb",    "d,s,t",  0x7c000018, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2365
{"adduh_r.qb",    "d,s,t",  0x7c000098, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2366
{"append",    "t,s,h",  0x7c000031, 0xfc0007ff, MOD_1|RD_2,         0,              0,    D33,  0 },
2367
{"balign",    "t,s,I",  0,    (int) M_BALIGN, INSN_MACRO,             0,              0,    D33,  0 },
2368
{"balign",    "t,s,2",  0x7c000431, 0xfc00e7ff, MOD_1|RD_2,         0,              0,    D33,  0 },
2369
{"cmpgdu.eq.qb",  "d,s,t",  0x7c000611, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2370
{"cmpgdu.lt.qb",  "d,s,t",  0x7c000651, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2371
{"cmpgdu.le.qb",  "d,s,t",  0x7c000691, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2372
{"dpa.w.ph",    "7,s,t",  0x7c000030, 0xfc00e7ff, RD_2|RD_3|MOD_a,        0,              0,    D33,  0 },
2373
{"dps.w.ph",    "7,s,t",  0x7c000070, 0xfc00e7ff, RD_2|RD_3|MOD_a,        0,              0,    D33,  0 },
2374
{"mul.ph",    "d,s,t",  0x7c000318, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,              0,    D33,  0 },
2375
{"mul_s.ph",    "d,s,t",  0x7c000398, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,              0,    D33,  0 },
2376
{"mulq_rs.w",   "d,s,t",  0x7c0005d8, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,              0,    D33,  0 },
2377
{"mulq_s.ph",   "d,s,t",  0x7c000790, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,              0,    D33,  0 },
2378
{"mulq_s.w",    "d,s,t",  0x7c000598, 0xfc0007ff, WR_1|RD_2|RD_3|WR_HILO, 0,              0,    D33,  0 },
2379
{"mulsa.w.ph",    "7,s,t",  0x7c0000b0, 0xfc00e7ff, RD_2|RD_3|MOD_a,        0,              0,    D33,  0 },
2380
{"precr.qb.ph",   "d,s,t",  0x7c000351, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2381
{"precr_sra.ph.w",  "t,s,h",  0x7c000791, 0xfc0007ff, MOD_1|RD_2,   0,              0,    D33,  0 },
2382
{"precr_sra_r.ph.w",  "t,s,h",  0x7c0007d1, 0xfc0007ff, MOD_1|RD_2,   0,              0,    D33,  0 },
2383
{"prepend",   "t,s,h",  0x7c000071, 0xfc0007ff, MOD_1|RD_2,         0,              0,    D33,  0 },
2384
{"shra.qb",   "d,t,3",  0x7c000113, 0xff0007ff, WR_1|RD_2,              0,              0,    D33,  0 },
2385
{"shra_r.qb",   "d,t,3",  0x7c000153, 0xff0007ff, WR_1|RD_2,              0,              0,    D33,  0 },
2386
{"shrav.qb",    "d,t,s",  0x7c000193, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2387
{"shrav_r.qb",    "d,t,s",  0x7c0001d3, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2388
{"shrl.ph",   "d,t,4",  0x7c000653, 0xfe0007ff, WR_1|RD_2,              0,              0,    D33,  0 },
2389
{"shrlv.ph",    "d,t,s",  0x7c0006d3, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2390
{"subu.ph",   "d,s,t",  0x7c000250, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2391
{"subu_s.ph",   "d,s,t",  0x7c000350, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2392
{"subuh.qb",    "d,s,t",  0x7c000058, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2393
{"subuh_r.qb",    "d,s,t",  0x7c0000d8, 0xfc0007ff, WR_1|RD_2|RD_3,         0,              0,    D33,  0 },
2394
{"addqh.ph",    "d,s,t",  0x7c000218, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2395
{"addqh_r.ph",    "d,s,t",  0x7c000298, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2396
{"addqh.w",   "d,s,t",  0x7c000418, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2397
{"addqh_r.w",   "d,s,t",  0x7c000498, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2398
{"subqh.ph",    "d,s,t",  0x7c000258, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2399
{"subqh_r.ph",    "d,s,t",  0x7c0002d8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2400
{"subqh.w",   "d,s,t",  0x7c000458, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2401
{"subqh_r.w",   "d,s,t",  0x7c0004d8, 0xfc0007ff, WR_1|RD_2|RD_3,   0,              0,    D33,  0 },
2402
{"dpax.w.ph",   "7,s,t",  0x7c000230, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,              0,    D33,  0 },
2403
{"dpsx.w.ph",   "7,s,t",  0x7c000270, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,              0,    D33,  0 },
2404
{"dpaqx_s.w.ph",  "7,s,t",  0x7c000630, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,              0,    D33,  0 },
2405
{"dpaqx_sa.w.ph", "7,s,t",  0x7c0006b0, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,              0,    D33,  0 },
2406
{"dpsqx_s.w.ph",  "7,s,t",  0x7c000670, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,              0,    D33,  0 },
2407
{"dpsqx_sa.w.ph", "7,s,t",  0x7c0006f0, 0xfc00e7ff, RD_2|RD_3|MOD_a,  0,              0,    D33,  0 },
2408
/* ST Microelectronics Loongson-2E and -2F.  */
2409
{"mult.g",    "d,s,t",  0x7c000018, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2410
{"mult.g",    "d,s,t",  0x70000010, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2411
{"gsmult",    "d,s,t",  0x70000010, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2412
{"multu.g",   "d,s,t",  0x7c000019, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2413
{"multu.g",   "d,s,t",  0x70000012, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2414
{"gsmultu",   "d,s,t",  0x70000012, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2415
{"dmult.g",   "d,s,t",  0x7c00001c, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2416
{"dmult.g",   "d,s,t",  0x70000011, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2417
{"gsdmult",   "d,s,t",  0x70000011, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2418
{"dmultu.g",    "d,s,t",  0x7c00001d, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2419
{"dmultu.g",    "d,s,t",  0x70000013, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2420
{"gsdmultu",    "d,s,t",  0x70000013, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2421
{"div.g",   "d,s,t",  0x7c00001a, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2422
{"div.g",   "d,s,t",  0x70000014, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2423
{"gsdiv",   "d,s,t",  0x70000014, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2424
{"divu.g",    "d,s,t",  0x7c00001b, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2425
{"divu.g",    "d,s,t",  0x70000016, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2426
{"gsdivu",    "d,s,t",  0x70000016, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2427
{"ddiv.g",    "d,s,t",  0x7c00001e, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2428
{"ddiv.g",    "d,s,t",  0x70000015, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2429
{"gsddiv",    "d,s,t",  0x70000015, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2430
{"ddivu.g",   "d,s,t",  0x7c00001f, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2431
{"ddivu.g",   "d,s,t",  0x70000017, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2432
{"gsddivu",   "d,s,t",  0x70000017, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2433
{"mod.g",   "d,s,t",  0x7c000022, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2434
{"mod.g",   "d,s,t",  0x7000001c, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2435
{"gsmod",   "d,s,t",  0x7000001c, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2436
{"modu.g",    "d,s,t",  0x7c000023, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2437
{"modu.g",    "d,s,t",  0x7000001e, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2438
{"gsmodu",    "d,s,t",  0x7000001e, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2439
{"dmod.g",    "d,s,t",  0x7c000026, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2440
{"dmod.g",    "d,s,t",  0x7000001d, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2441
{"gsdmod",    "d,s,t",  0x7000001d, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2442
{"dmodu.g",   "d,s,t",  0x7c000027, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2E,   0,  0 },
2443
{"dmodu.g",   "d,s,t",  0x7000001f, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    IL2F,   0,  0 },
2444
{"gsdmodu",   "d,s,t",  0x7000001f, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    0,    LEXT, 0 },
2445
{"packsshb",    "D,S,T",  0x47400002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2446
{"packsshb",    "D,S,T",  0x4b400002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2447
{"packsswh",    "D,S,T",  0x47200002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2448
{"packsswh",    "D,S,T",  0x4b200002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2449
{"packushb",    "D,S,T",  0x47600002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2450
{"packushb",    "D,S,T",  0x4b600002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2451
{"paddb",   "D,S,T",  0x47c00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2452
{"paddb",   "D,S,T",  0x4bc00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2453
{"paddb",   "d,s,t",  0x70000208, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
2454
{"paddh",   "D,S,T",  0x47400000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2455
{"paddh",   "d,s,t",  0x70000108, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
2456
{"paddh",   "D,S,T",  0x4b400000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2457
{"paddw",   "D,S,T",  0x47600000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2458
{"paddw",   "D,S,T",  0x4b600000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2459
{"paddw",   "d,s,t",  0x70000008, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
2460
{"paddd",   "D,S,T",  0x47e00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2461
{"paddd",   "D,S,T",  0x4be00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2462
{"paddsb",    "D,S,T",  0x47800000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2463
{"paddsb",    "D,S,T",  0x4b800000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2464
{"paddsb",    "d,s,t",  0x70000608, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
2465
{"paddsh",    "D,S,T",  0x47000000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2466
{"paddsh",    "D,S,T",  0x4b000000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2467
{"paddsh",    "d,s,t",  0x70000508, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
2468
{"paddusb",   "D,S,T",  0x47a00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2469
{"paddusb",   "D,S,T",  0x4ba00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2470
{"paddush",   "D,S,T",  0x47200000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2471
{"paddush",   "D,S,T",  0x4b200000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2472
{"pandn",   "D,S,T",  0x47e00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2473
{"pandn",   "D,S,T",  0x4be00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2474
{"pavgb",   "D,S,T",  0x46600000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2475
{"pavgb",   "D,S,T",  0x4b200008, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2476
{"pavgh",   "D,S,T",  0x46400000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2477
{"pavgh",   "D,S,T",  0x4b000008, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2478
{"pcmpeqb",   "D,S,T",  0x46c00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2479
{"pcmpeqb",   "D,S,T",  0x4b800009, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2480
{"pcmpeqh",   "D,S,T",  0x46800001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2481
{"pcmpeqh",   "D,S,T",  0x4b400009, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2482
{"pcmpeqw",   "D,S,T",  0x46400001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2483
{"pcmpeqw",   "D,S,T",  0x4b000009, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2484
{"pcmpgtb",   "D,S,T",  0x46e00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2485
{"pcmpgtb",   "D,S,T",  0x4ba00009, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2486
{"pcmpgth",   "D,S,T",  0x46a00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2487
{"pcmpgth",   "D,S,T",  0x4b600009, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2488
{"pcmpgtw",   "D,S,T",  0x46600001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2489
{"pcmpgtw",   "D,S,T",  0x4b200009, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2490
{"pextrh",    "D,S,T",  0x45c00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2491
{"pextrh",    "D,S,T",  0x4b40000e, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2492
{"pinsrh_0",    "D,S,T",  0x47800003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2493
{"pinsrh_0",    "D,S,T",  0x4b800003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2494
{"pinsrh_1",    "D,S,T",  0x47a00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2495
{"pinsrh_1",    "D,S,T",  0x4ba00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2496
{"pinsrh_2",    "D,S,T",  0x47c00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2497
{"pinsrh_2",    "D,S,T",  0x4bc00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2498
{"pinsrh_3",    "D,S,T",  0x47e00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2499
{"pinsrh_3",    "D,S,T",  0x4be00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2500
{"pmaddhw",   "D,S,T",  0x45e00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2501
{"pmaddhw",   "D,S,T",  0x4b60000e, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2502
{"pmaxsh",    "D,S,T",  0x46800000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2503
{"pmaxsh",    "D,S,T",  0x4b400008, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2504
{"pmaxub",    "D,S,T",  0x46c00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2505
{"pmaxub",    "D,S,T",  0x4b800008, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2506
{"pminsh",    "D,S,T",  0x46a00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2507
{"pminsh",    "D,S,T",  0x4b600008, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2508
{"pminub",    "D,S,T",  0x46e00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2509
{"pminub",    "D,S,T",  0x4ba00008, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2510
{"pmovmskb",    "D,S",    0x46a00005, 0xffff003f, WR_1|RD_2|FP_D,   0,    IL2E,   0,  0 },
2511
{"pmovmskb",    "D,S",    0x4ba0000f, 0xffff003f, WR_1|RD_2|FP_D,   0,    0,    LMMI, 0 },
2512
{"pmulhuh",   "D,S,T",  0x46e00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2513
{"pmulhuh",   "D,S,T",  0x4ba0000a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2514
{"pmulhh",    "D,S,T",  0x46a00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2515
{"pmulhh",    "D,S,T",  0x4b60000a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2516
{"pmullh",    "D,S,T",  0x46800002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2517
{"pmullh",    "D,S,T",  0x4b40000a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2518
{"pmuluw",    "D,S,T",  0x46c00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2519
{"pmuluw",    "D,S,T",  0x4b80000a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2520
{"pasubub",   "D,S,T",  0x45a00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2521
{"pasubub",   "D,S,T",  0x4b20000d, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2522
{"biadd",   "D,S",    0x46800005, 0xffff003f, WR_1|RD_2|FP_D,   0,    IL2E,   0,  0 },
2523
{"biadd",   "D,S",    0x4b80000f, 0xffff003f, WR_1|RD_2|FP_D,   0,    0,    LMMI, 0 },
2524
{"pshufh",    "D,S,T",  0x47000002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2525
{"pshufh",    "D,S,T",  0x4b000002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2526
{"psllh",   "D,S,T",  0x46600002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2527
{"psllh",   "D,S,T",  0x4b20000a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2528
{"psllh",   "d,t,<",  0x70000034, 0xffe0003f, WR_1|RD_2,    0,    MMI,    0,  0 },
2529
{"psllw",   "D,S,T",  0x46400002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2530
{"psllw",   "D,S,T",  0x4b00000a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2531
{"psllw",   "d,t,<",  0x7000003c, 0xffe0003f, WR_1|RD_2,    0,    MMI,    0,  0 },
2532
{"psrah",   "D,S,T",  0x46a00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2533
{"psrah",   "D,S,T",  0x4b60000b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2534
{"psrah",   "d,t,<",  0x70000037, 0xffe0003f, WR_1|RD_2,    0,    MMI,    0,  0 },
2535
{"psraw",   "D,S,T",  0x46800003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2536
{"psraw",   "D,S,T",  0x4b40000b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2537
{"psraw",   "d,t,<",  0x7000003f, 0xffe0003f, WR_1|RD_2,    0,    MMI,    0,  0 },
2538
{"psrlh",   "D,S,T",  0x46600003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2539
{"psrlh",   "D,S,T",  0x4b20000b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2540
{"psrlh",   "d,t,<",  0x70000036, 0xffe0003f, WR_1|RD_2,    0,    MMI,    0,  0 },
2541
{"psrlw",   "D,S,T",  0x46400003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2542
{"psrlw",   "D,S,T",  0x4b00000b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2543
{"psrlw",   "d,t,<",  0x7000003e, 0xffe0003f, WR_1|RD_2,    0,    MMI,    0,  0 },
2544
{"psubb",   "D,S,T",  0x47c00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2545
{"psubb",   "D,S,T",  0x4bc00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2546
{"psubb",   "d,s,t",  0x70000248, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
2547
{"psubh",   "D,S,T",  0x47400001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2548
{"psubh",   "D,S,T",  0x4b400001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2549
{"psubh",   "d,s,t",  0x70000148, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
2550
{"psubw",   "D,S,T",  0x47600001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2551
{"psubw",   "D,S,T",  0x4b600001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2552
{"psubw",   "d,s,t",  0x70000048, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
2553
{"psubd",   "D,S,T",  0x47e00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2554
{"psubd",   "D,S,T",  0x4be00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2555
{"psubsb",    "D,S,T",  0x47800001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2556
{"psubsb",    "D,S,T",  0x4b800001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2557
{"psubsb",    "d,s,t",  0x70000648, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
2558
{"psubsh",    "D,S,T",  0x47000001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2559
{"psubsh",    "D,S,T",  0x4b000001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2560
{"psubsh",    "d,s,t",  0x70000548, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    MMI,    0,  0 },
2561
{"psubusb",   "D,S,T",  0x47a00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2562
{"psubusb",   "D,S,T",  0x4ba00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2563
{"psubush",   "D,S,T",  0x47200001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2564
{"psubush",   "D,S,T",  0x4b200001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2565
{"punpckhbh",   "D,S,T",  0x47600003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2566
{"punpckhbh",   "D,S,T",  0x4b600003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2567
{"punpckhhw",   "D,S,T",  0x47200003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2568
{"punpckhhw",   "D,S,T",  0x4b200003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2569
{"punpckhwd",   "D,S,T",  0x46e00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2570
{"punpckhwd",   "D,S,T",  0x4ba0000b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2571
{"punpcklbh",   "D,S,T",  0x47400003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2572
{"punpcklbh",   "D,S,T",  0x4b400003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2573
{"punpcklhw",   "D,S,T",  0x47000003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2574
{"punpcklhw",   "D,S,T",  0x4b000003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2575
{"punpcklwd",   "D,S,T",  0x46c00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    IL2E,   0,  0 },
2576
{"punpcklwd",   "D,S,T",  0x4b80000b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    0,    LMMI, 0 },
2577
{"sequ",    "S,T",    0x46800032, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    IL2E,   0,  0 },
2578
{"sequ",    "S,T",    0x4b80000c, 0xffe007ff, RD_1|RD_2|WR_CC|FP_D, 0,    0,    LMMI, 0 },
2579
/* MIPS Enhanced VA Scheme */
2580
{"lbue",    "t,+j(b)",  0x7c000028, 0xfc00007f, WR_1|RD_3|LM,   0,    0,    EVA,  0 },
2581
{"lbue",    "t,A(b)", 0,    (int) M_LBUE_AB,  INSN_MACRO,   0,    0,    EVA,  0 },
2582
{"lhue",    "t,+j(b)",  0x7c000029, 0xfc00007f, WR_1|RD_3|LM,   0,    0,    EVA,  0 },
2583
{"lhue",    "t,A(b)", 0,    (int) M_LHUE_AB,  INSN_MACRO,   0,    0,    EVA,  0 },
2584
{"lbe",     "t,+j(b)",  0x7c00002c, 0xfc00007f, WR_1|RD_3|LM,   0,    0,    EVA,  0 },
2585
{"lbe",     "t,A(b)", 0,    (int) M_LBE_AB, INSN_MACRO,   0,    0,    EVA,  0 },
2586
{"lhe",     "t,+j(b)",  0x7c00002d, 0xfc00007f, WR_1|RD_3|LM,   0,    0,    EVA,  0 },
2587
{"lhe",     "t,A(b)", 0,    (int) M_LHE_AB, INSN_MACRO,   0,    0,    EVA,  0 },
2588
{"lle",     "t,+j(b)",  0x7c00002e, 0xfc00007f, WR_1|RD_3|LM,   0,    0,    EVA,  0 },
2589
{"lle",     "t,A(b)", 0,    (int) M_LLE_AB, INSN_MACRO,   0,    0,    EVA,  0 },
2590
{"llwpe",   "t,d,s",  0x7c00006e, 0xfc0007ff, WR_1|WR_2|RD_3|LM,  0,    0,    EVAR6,  0 },
2591
{"llwpe",   "t,d,A(b)", 0,    (int) M_LLWPE_AB, INSN_MACRO,   0,    0,    EVAR6,  0 },
2592
{"lwe",     "t,+j(b)",  0x7c00002f, 0xfc00007f, WR_1|RD_3|LM,   0,    0,    EVA,  0 },
2593
{"lwe",     "t,A(b)", 0,    (int) M_LWE_AB, INSN_MACRO,   0,    0,    EVA,  0 },
2594
{"lwle",    "t,+j(b)",  0x7c000019, 0xfc00007f, WR_1|RD_3|LM,   0,    0,    EVA,  I37 },
2595
{"lwle",    "t,A(b)", 0,    (int) M_LWLE_AB,  INSN_MACRO,   0,    0,    EVA,  I37 },
2596
{"lwre",    "t,+j(b)",  0x7c00001a, 0xfc00007f, WR_1|RD_3|LM,   0,    0,    EVA,  I37 },
2597
{"lwre",    "t,A(b)", 0,    (int) M_LWRE_AB,  INSN_MACRO,   0,    0,    EVA,  I37 },
2598
{"sbe",     "t,+j(b)",  0x7c00001c, 0xfc00007f, RD_1|RD_3|SM,   0,    0,    EVA,  0 },
2599
{"sbe",     "t,A(b)", 0,    (int) M_SBE_AB, INSN_MACRO,   0,    0,    EVA,  0 },
2600
{"sce",     "t,+j(b)",  0x7c00001e, 0xfc00007f, MOD_1|RD_3|SM,    0,    0,    EVA,  0 },
2601
{"sce",     "t,A(b)", 0,    (int) M_SCE_AB, INSN_MACRO,   0,    0,    EVA,  0 },
2602
{"scwpe",   "t,d,s",  0x7c00005e, 0xfc0007ff, MOD_1|RD_2|RD_3|SM, 0,    0,    EVAR6,  0 },
2603
{"scwpe",   "t,d,A(b)", 0,    (int) M_SCWPE_AB, INSN_MACRO,   0,    0,    EVAR6,  0 },
2604
{"she",     "t,+j(b)",  0x7c00001d, 0xfc00007f, RD_1|RD_3|SM,   0,    0,    EVA,  0 },
2605
{"she",     "t,A(b)", 0,    (int) M_SHE_AB, INSN_MACRO,   0,    0,    EVA,  0 },
2606
{"swe",     "t,+j(b)",  0x7c00001f, 0xfc00007f, RD_1|RD_3|SM,   0,    0,    EVA,  0 },
2607
{"swe",     "t,A(b)", 0,    (int) M_SWE_AB, INSN_MACRO,   0,    0,    EVA,  0 },
2608
{"swle",    "t,+j(b)",  0x7c000021, 0xfc00007f, RD_1|RD_3|SM,   0,    0,    EVA,  I37 },
2609
{"swle",    "t,A(b)", 0,    (int) M_SWLE_AB,  INSN_MACRO,   0,    0,    EVA,  I37 },
2610
{"swre",    "t,+j(b)",  0x7c000022, 0xfc00007f, RD_1|RD_3|SM,   0,    0,    EVA,  I37 },
2611
{"swre",    "t,A(b)", 0,    (int) M_SWRE_AB,  INSN_MACRO,   0,    0,    EVA,  I37 },
2612
{"cachee",    "k,+j(b)",  0x7c00001b, 0xfc00007f, RD_3,     0,    0,    EVA,  0 },
2613
{"cachee",    "k,A(b)", 0,    (int) M_CACHEE_AB,INSN_MACRO,   0,    0,    EVA,  0 },
2614
{"prefe",   "k,+j(b)",  0x7c000023, 0xfc00007f, RD_3|LM,    0,    0,    EVA,  0 },
2615
{"prefe",   "k,A(b)", 0,    (int) M_PREFE_AB, INSN_MACRO,   0,    0,    EVA,  0 },
2616
/* MSA Extension.  */
2617
{"sll.b",   "+d,+e,+h", 0x7800000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2618
{"sll.h",   "+d,+e,+h", 0x7820000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2619
{"sll.w",   "+d,+e,+h", 0x7840000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2620
{"sll.d",   "+d,+e,+h", 0x7860000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2621
{"slli.b",    "+d,+e,+!", 0x78700009, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2622
{"slli.h",    "+d,+e,+@", 0x78600009, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2623
{"slli.w",    "+d,+e,+x", 0x78400009, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2624
{"slli.d",    "+d,+e,+#", 0x78000009, 0xffc0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2625
{"sra.b",   "+d,+e,+h", 0x7880000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2626
{"sra.h",   "+d,+e,+h", 0x78a0000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2627
{"sra.w",   "+d,+e,+h", 0x78c0000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2628
{"sra.d",   "+d,+e,+h", 0x78e0000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2629
{"srai.b",    "+d,+e,+!", 0x78f00009, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2630
{"srai.h",    "+d,+e,+@", 0x78e00009, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2631
{"srai.w",    "+d,+e,+x", 0x78c00009, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2632
{"srai.d",    "+d,+e,+#", 0x78800009, 0xffc0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2633
{"srl.b",   "+d,+e,+h", 0x7900000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2634
{"srl.h",   "+d,+e,+h", 0x7920000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2635
{"srl.w",   "+d,+e,+h", 0x7940000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2636
{"srl.d",   "+d,+e,+h", 0x7960000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2637
{"srli.b",    "+d,+e,+!", 0x79700009, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2638
{"srli.h",    "+d,+e,+@", 0x79600009, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2639
{"srli.w",    "+d,+e,+x", 0x79400009, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2640
{"srli.d",    "+d,+e,+#", 0x79000009, 0xffc0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2641
{"bclr.b",    "+d,+e,+h", 0x7980000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2642
{"bclr.h",    "+d,+e,+h", 0x79a0000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2643
{"bclr.w",    "+d,+e,+h", 0x79c0000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2644
{"bclr.d",    "+d,+e,+h", 0x79e0000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2645
{"bclri.b",   "+d,+e,+!", 0x79f00009, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2646
{"bclri.h",   "+d,+e,+@", 0x79e00009, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2647
{"bclri.w",   "+d,+e,+x", 0x79c00009, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2648
{"bclri.d",   "+d,+e,+#", 0x79800009, 0xffc0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2649
{"bset.b",    "+d,+e,+h", 0x7a00000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2650
{"bset.h",    "+d,+e,+h", 0x7a20000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2651
{"bset.w",    "+d,+e,+h", 0x7a40000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2652
{"bset.d",    "+d,+e,+h", 0x7a60000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2653
{"bseti.b",   "+d,+e,+!", 0x7a700009, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2654
{"bseti.h",   "+d,+e,+@", 0x7a600009, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2655
{"bseti.w",   "+d,+e,+x", 0x7a400009, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2656
{"bseti.d",   "+d,+e,+#", 0x7a000009, 0xffc0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2657
{"bneg.b",    "+d,+e,+h", 0x7a80000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2658
{"bneg.h",    "+d,+e,+h", 0x7aa0000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2659
{"bneg.w",    "+d,+e,+h", 0x7ac0000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2660
{"bneg.d",    "+d,+e,+h", 0x7ae0000d, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2661
{"bnegi.b",   "+d,+e,+!", 0x7af00009, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2662
{"bnegi.h",   "+d,+e,+@", 0x7ae00009, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2663
{"bnegi.w",   "+d,+e,+x", 0x7ac00009, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2664
{"bnegi.d",   "+d,+e,+#", 0x7a800009, 0xffc0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2665
{"binsl.b",   "+d,+e,+h", 0x7b00000d, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2666
{"binsl.h",   "+d,+e,+h", 0x7b20000d, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2667
{"binsl.w",   "+d,+e,+h", 0x7b40000d, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2668
{"binsl.d",   "+d,+e,+h", 0x7b60000d, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2669
{"binsli.b",    "+d,+e,+!", 0x7b700009, 0xfff8003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2670
{"binsli.h",    "+d,+e,+@", 0x7b600009, 0xfff0003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2671
{"binsli.w",    "+d,+e,+x", 0x7b400009, 0xffe0003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2672
{"binsli.d",    "+d,+e,+#", 0x7b000009, 0xffc0003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2673
{"binsr.b",   "+d,+e,+h", 0x7b80000d, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2674
{"binsr.h",   "+d,+e,+h", 0x7ba0000d, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2675
{"binsr.w",   "+d,+e,+h", 0x7bc0000d, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2676
{"binsr.d",   "+d,+e,+h", 0x7be0000d, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2677
{"binsri.b",    "+d,+e,+!", 0x7bf00009, 0xfff8003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2678
{"binsri.h",    "+d,+e,+@", 0x7be00009, 0xfff0003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2679
{"binsri.w",    "+d,+e,+x", 0x7bc00009, 0xffe0003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2680
{"binsri.d",    "+d,+e,+#", 0x7b800009, 0xffc0003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2681
{"addv.b",    "+d,+e,+h", 0x7800000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2682
{"addv.h",    "+d,+e,+h", 0x7820000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2683
{"addv.w",    "+d,+e,+h", 0x7840000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2684
{"addv.d",    "+d,+e,+h", 0x7860000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2685
{"addvi.b",   "+d,+e,+$", 0x78000006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2686
{"addvi.h",   "+d,+e,+$", 0x78200006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2687
{"addvi.w",   "+d,+e,+$", 0x78400006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2688
{"addvi.d",   "+d,+e,+$", 0x78600006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2689
{"subv.b",    "+d,+e,+h", 0x7880000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2690
{"subv.h",    "+d,+e,+h", 0x78a0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2691
{"subv.w",    "+d,+e,+h", 0x78c0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2692
{"subv.d",    "+d,+e,+h", 0x78e0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2693
{"subvi.b",   "+d,+e,+$", 0x78800006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2694
{"subvi.h",   "+d,+e,+$", 0x78a00006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2695
{"subvi.w",   "+d,+e,+$", 0x78c00006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2696
{"subvi.d",   "+d,+e,+$", 0x78e00006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2697
{"max_s.b",   "+d,+e,+h", 0x7900000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2698
{"max_s.h",   "+d,+e,+h", 0x7920000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2699
{"max_s.w",   "+d,+e,+h", 0x7940000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2700
{"max_s.d",   "+d,+e,+h", 0x7960000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2701
{"maxi_s.b",    "+d,+e,+%", 0x79000006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2702
{"maxi_s.h",    "+d,+e,+%", 0x79200006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2703
{"maxi_s.w",    "+d,+e,+%", 0x79400006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2704
{"maxi_s.d",    "+d,+e,+%", 0x79600006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2705
{"max_u.b",   "+d,+e,+h", 0x7980000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2706
{"max_u.h",   "+d,+e,+h", 0x79a0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2707
{"max_u.w",   "+d,+e,+h", 0x79c0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2708
{"max_u.d",   "+d,+e,+h", 0x79e0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2709
{"maxi_u.b",    "+d,+e,+$", 0x79800006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2710
{"maxi_u.h",    "+d,+e,+$", 0x79a00006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2711
{"maxi_u.w",    "+d,+e,+$", 0x79c00006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2712
{"maxi_u.d",    "+d,+e,+$", 0x79e00006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2713
{"min_s.b",   "+d,+e,+h", 0x7a00000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2714
{"min_s.h",   "+d,+e,+h", 0x7a20000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2715
{"min_s.w",   "+d,+e,+h", 0x7a40000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2716
{"min_s.d",   "+d,+e,+h", 0x7a60000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2717
{"mini_s.b",    "+d,+e,+%", 0x7a000006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2718
{"mini_s.h",    "+d,+e,+%", 0x7a200006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2719
{"mini_s.w",    "+d,+e,+%", 0x7a400006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2720
{"mini_s.d",    "+d,+e,+%", 0x7a600006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2721
{"min_u.b",   "+d,+e,+h", 0x7a80000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2722
{"min_u.h",   "+d,+e,+h", 0x7aa0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2723
{"min_u.w",   "+d,+e,+h", 0x7ac0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2724
{"min_u.d",   "+d,+e,+h", 0x7ae0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2725
{"mini_u.b",    "+d,+e,+$", 0x7a800006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2726
{"mini_u.h",    "+d,+e,+$", 0x7aa00006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2727
{"mini_u.w",    "+d,+e,+$", 0x7ac00006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2728
{"mini_u.d",    "+d,+e,+$", 0x7ae00006, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2729
{"max_a.b",   "+d,+e,+h", 0x7b00000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2730
{"max_a.h",   "+d,+e,+h", 0x7b20000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2731
{"max_a.w",   "+d,+e,+h", 0x7b40000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2732
{"max_a.d",   "+d,+e,+h", 0x7b60000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2733
{"min_a.b",   "+d,+e,+h", 0x7b80000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2734
{"min_a.h",   "+d,+e,+h", 0x7ba0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2735
{"min_a.w",   "+d,+e,+h", 0x7bc0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2736
{"min_a.d",   "+d,+e,+h", 0x7be0000e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2737
{"ceq.b",   "+d,+e,+h", 0x7800000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2738
{"ceq.h",   "+d,+e,+h", 0x7820000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2739
{"ceq.w",   "+d,+e,+h", 0x7840000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2740
{"ceq.d",   "+d,+e,+h", 0x7860000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2741
{"ceqi.b",    "+d,+e,+%", 0x78000007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2742
{"ceqi.h",    "+d,+e,+%", 0x78200007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2743
{"ceqi.w",    "+d,+e,+%", 0x78400007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2744
{"ceqi.d",    "+d,+e,+%", 0x78600007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2745
{"clt_s.b",   "+d,+e,+h", 0x7900000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2746
{"clt_s.h",   "+d,+e,+h", 0x7920000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2747
{"clt_s.w",   "+d,+e,+h", 0x7940000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2748
{"clt_s.d",   "+d,+e,+h", 0x7960000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2749
{"clti_s.b",    "+d,+e,+%", 0x79000007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2750
{"clti_s.h",    "+d,+e,+%", 0x79200007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2751
{"clti_s.w",    "+d,+e,+%", 0x79400007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2752
{"clti_s.d",    "+d,+e,+%", 0x79600007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2753
{"clt_u.b",   "+d,+e,+h", 0x7980000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2754
{"clt_u.h",   "+d,+e,+h", 0x79a0000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2755
{"clt_u.w",   "+d,+e,+h", 0x79c0000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2756
{"clt_u.d",   "+d,+e,+h", 0x79e0000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2757
{"clti_u.b",    "+d,+e,+$", 0x79800007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2758
{"clti_u.h",    "+d,+e,+$", 0x79a00007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2759
{"clti_u.w",    "+d,+e,+$", 0x79c00007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2760
{"clti_u.d",    "+d,+e,+$", 0x79e00007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2761
{"cle_s.b",   "+d,+e,+h", 0x7a00000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2762
{"cle_s.h",   "+d,+e,+h", 0x7a20000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2763
{"cle_s.w",   "+d,+e,+h", 0x7a40000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2764
{"cle_s.d",   "+d,+e,+h", 0x7a60000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2765
{"clei_s.b",    "+d,+e,+%", 0x7a000007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2766
{"clei_s.h",    "+d,+e,+%", 0x7a200007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2767
{"clei_s.w",    "+d,+e,+%", 0x7a400007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2768
{"clei_s.d",    "+d,+e,+%", 0x7a600007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2769
{"cle_u.b",   "+d,+e,+h", 0x7a80000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2770
{"cle_u.h",   "+d,+e,+h", 0x7aa0000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2771
{"cle_u.w",   "+d,+e,+h", 0x7ac0000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2772
{"cle_u.d",   "+d,+e,+h", 0x7ae0000f, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2773
{"clei_u.b",    "+d,+e,+$", 0x7a800007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2774
{"clei_u.h",    "+d,+e,+$", 0x7aa00007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2775
{"clei_u.w",    "+d,+e,+$", 0x7ac00007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2776
{"clei_u.d",    "+d,+e,+$", 0x7ae00007, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2777
{"ld.b",    "+d,+T(d)", 0x78000020, 0xfc00003f, WR_1|RD_3|LM,   0,    0,    MSA,  0 },
2778
{"ld.h",    "+d,+U(d)", 0x78000021, 0xfc00003f, WR_1|RD_3|LM,   0,    0,    MSA,  0 },
2779
{"ld.w",    "+d,+V(d)", 0x78000022, 0xfc00003f, WR_1|RD_3|LM,   0,    0,    MSA,  0 },
2780
{"ld.d",    "+d,+W(d)", 0x78000023, 0xfc00003f, WR_1|RD_3|LM,   0,    0,    MSA,  0 },
2781
{"st.b",    "+d,+T(d)", 0x78000024, 0xfc00003f, RD_1|RD_3|SM,   0,    0,    MSA,  0 },
2782
{"st.h",    "+d,+U(d)", 0x78000025, 0xfc00003f, RD_1|RD_3|SM,   0,    0,    MSA,  0 },
2783
{"st.w",    "+d,+V(d)", 0x78000026, 0xfc00003f, RD_1|RD_3|SM,   0,    0,    MSA,  0 },
2784
{"st.d",    "+d,+W(d)", 0x78000027, 0xfc00003f, RD_1|RD_3|SM,   0,    0,    MSA,  0 },
2785
{"sat_s.b",   "+d,+e,+!", 0x7870000a, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2786
{"sat_s.h",   "+d,+e,+@", 0x7860000a, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2787
{"sat_s.w",   "+d,+e,+x", 0x7840000a, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2788
{"sat_s.d",   "+d,+e,+#", 0x7800000a, 0xffc0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2789
{"sat_u.b",   "+d,+e,+!", 0x78f0000a, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2790
{"sat_u.h",   "+d,+e,+@", 0x78e0000a, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2791
{"sat_u.w",   "+d,+e,+x", 0x78c0000a, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2792
{"sat_u.d",   "+d,+e,+#", 0x7880000a, 0xffc0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2793
{"add_a.b",   "+d,+e,+h", 0x78000010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2794
{"add_a.h",   "+d,+e,+h", 0x78200010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2795
{"add_a.w",   "+d,+e,+h", 0x78400010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2796
{"add_a.d",   "+d,+e,+h", 0x78600010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2797
{"adds_a.b",    "+d,+e,+h", 0x78800010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2798
{"adds_a.h",    "+d,+e,+h", 0x78a00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2799
{"adds_a.w",    "+d,+e,+h", 0x78c00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2800
{"adds_a.d",    "+d,+e,+h", 0x78e00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2801
{"adds_s.b",    "+d,+e,+h", 0x79000010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2802
{"adds_s.h",    "+d,+e,+h", 0x79200010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2803
{"adds_s.w",    "+d,+e,+h", 0x79400010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2804
{"adds_s.d",    "+d,+e,+h", 0x79600010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2805
{"adds_u.b",    "+d,+e,+h", 0x79800010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2806
{"adds_u.h",    "+d,+e,+h", 0x79a00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2807
{"adds_u.w",    "+d,+e,+h", 0x79c00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2808
{"adds_u.d",    "+d,+e,+h", 0x79e00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2809
{"ave_s.b",   "+d,+e,+h", 0x7a000010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2810
{"ave_s.h",   "+d,+e,+h", 0x7a200010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2811
{"ave_s.w",   "+d,+e,+h", 0x7a400010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2812
{"ave_s.d",   "+d,+e,+h", 0x7a600010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2813
{"ave_u.b",   "+d,+e,+h", 0x7a800010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2814
{"ave_u.h",   "+d,+e,+h", 0x7aa00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2815
{"ave_u.w",   "+d,+e,+h", 0x7ac00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2816
{"ave_u.d",   "+d,+e,+h", 0x7ae00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2817
{"aver_s.b",    "+d,+e,+h", 0x7b000010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2818
{"aver_s.h",    "+d,+e,+h", 0x7b200010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2819
{"aver_s.w",    "+d,+e,+h", 0x7b400010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2820
{"aver_s.d",    "+d,+e,+h", 0x7b600010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2821
{"aver_u.b",    "+d,+e,+h", 0x7b800010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2822
{"aver_u.h",    "+d,+e,+h", 0x7ba00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2823
{"aver_u.w",    "+d,+e,+h", 0x7bc00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2824
{"aver_u.d",    "+d,+e,+h", 0x7be00010, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2825
{"subs_s.b",    "+d,+e,+h", 0x78000011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2826
{"subs_s.h",    "+d,+e,+h", 0x78200011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2827
{"subs_s.w",    "+d,+e,+h", 0x78400011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2828
{"subs_s.d",    "+d,+e,+h", 0x78600011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2829
{"subs_u.b",    "+d,+e,+h", 0x78800011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2830
{"subs_u.h",    "+d,+e,+h", 0x78a00011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2831
{"subs_u.w",    "+d,+e,+h", 0x78c00011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2832
{"subs_u.d",    "+d,+e,+h", 0x78e00011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2833
{"subsus_u.b",    "+d,+e,+h", 0x79000011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2834
{"subsus_u.h",    "+d,+e,+h", 0x79200011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2835
{"subsus_u.w",    "+d,+e,+h", 0x79400011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2836
{"subsus_u.d",    "+d,+e,+h", 0x79600011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2837
{"subsuu_s.b",    "+d,+e,+h", 0x79800011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2838
{"subsuu_s.h",    "+d,+e,+h", 0x79a00011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2839
{"subsuu_s.w",    "+d,+e,+h", 0x79c00011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2840
{"subsuu_s.d",    "+d,+e,+h", 0x79e00011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2841
{"asub_s.b",    "+d,+e,+h", 0x7a000011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2842
{"asub_s.h",    "+d,+e,+h", 0x7a200011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2843
{"asub_s.w",    "+d,+e,+h", 0x7a400011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2844
{"asub_s.d",    "+d,+e,+h", 0x7a600011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2845
{"asub_u.b",    "+d,+e,+h", 0x7a800011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2846
{"asub_u.h",    "+d,+e,+h", 0x7aa00011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2847
{"asub_u.w",    "+d,+e,+h", 0x7ac00011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2848
{"asub_u.d",    "+d,+e,+h", 0x7ae00011, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2849
{"mulv.b",    "+d,+e,+h", 0x78000012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2850
{"mulv.h",    "+d,+e,+h", 0x78200012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2851
{"mulv.w",    "+d,+e,+h", 0x78400012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2852
{"mulv.d",    "+d,+e,+h", 0x78600012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2853
{"maddv.b",   "+d,+e,+h", 0x78800012, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2854
{"maddv.h",   "+d,+e,+h", 0x78a00012, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2855
{"maddv.w",   "+d,+e,+h", 0x78c00012, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2856
{"maddv.d",   "+d,+e,+h", 0x78e00012, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2857
{"msubv.b",   "+d,+e,+h", 0x79000012, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2858
{"msubv.h",   "+d,+e,+h", 0x79200012, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2859
{"msubv.w",   "+d,+e,+h", 0x79400012, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2860
{"msubv.d",   "+d,+e,+h", 0x79600012, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2861
{"div_s.b",   "+d,+e,+h", 0x7a000012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2862
{"div_s.h",   "+d,+e,+h", 0x7a200012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2863
{"div_s.w",   "+d,+e,+h", 0x7a400012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2864
{"div_s.d",   "+d,+e,+h", 0x7a600012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2865
{"div_u.b",   "+d,+e,+h", 0x7a800012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2866
{"div_u.h",   "+d,+e,+h", 0x7aa00012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2867
{"div_u.w",   "+d,+e,+h", 0x7ac00012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2868
{"div_u.d",   "+d,+e,+h", 0x7ae00012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2869
{"mod_s.b",   "+d,+e,+h", 0x7b000012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2870
{"mod_s.h",   "+d,+e,+h", 0x7b200012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2871
{"mod_s.w",   "+d,+e,+h", 0x7b400012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2872
{"mod_s.d",   "+d,+e,+h", 0x7b600012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2873
{"mod_u.b",   "+d,+e,+h", 0x7b800012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2874
{"mod_u.h",   "+d,+e,+h", 0x7ba00012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2875
{"mod_u.w",   "+d,+e,+h", 0x7bc00012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2876
{"mod_u.d",   "+d,+e,+h", 0x7be00012, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2877
{"dotp_s.h",    "+d,+e,+h", 0x78200013, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2878
{"dotp_s.w",    "+d,+e,+h", 0x78400013, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2879
{"dotp_s.d",    "+d,+e,+h", 0x78600013, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2880
{"dotp_u.h",    "+d,+e,+h", 0x78a00013, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2881
{"dotp_u.w",    "+d,+e,+h", 0x78c00013, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2882
{"dotp_u.d",    "+d,+e,+h", 0x78e00013, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2883
{"dpadd_s.h",   "+d,+e,+h", 0x79200013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2884
{"dpadd_s.w",   "+d,+e,+h", 0x79400013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2885
{"dpadd_s.d",   "+d,+e,+h", 0x79600013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2886
{"dpadd_u.h",   "+d,+e,+h", 0x79a00013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2887
{"dpadd_u.w",   "+d,+e,+h", 0x79c00013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2888
{"dpadd_u.d",   "+d,+e,+h", 0x79e00013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2889
{"dpsub_s.h",   "+d,+e,+h", 0x7a200013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2890
{"dpsub_s.w",   "+d,+e,+h", 0x7a400013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2891
{"dpsub_s.d",   "+d,+e,+h", 0x7a600013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2892
{"dpsub_u.h",   "+d,+e,+h", 0x7aa00013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2893
{"dpsub_u.w",   "+d,+e,+h", 0x7ac00013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2894
{"dpsub_u.d",   "+d,+e,+h", 0x7ae00013, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2895
{"sld.b",   "+d,+e+*",  0x78000014, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2896
{"sld.h",   "+d,+e+*",  0x78200014, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2897
{"sld.w",   "+d,+e+*",  0x78400014, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2898
{"sld.d",   "+d,+e+*",  0x78600014, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2899
{"sldi.b",    "+d,+e+o",  0x78000019, 0xfff0003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2900
{"sldi.h",    "+d,+e+u",  0x78200019, 0xfff8003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2901
{"sldi.w",    "+d,+e+v",  0x78300019, 0xfffc003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2902
{"sldi.d",    "+d,+e+w",  0x78380019, 0xfffe003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2903
{"splat.b",   "+d,+e+*",  0x78800014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2904
{"splat.h",   "+d,+e+*",  0x78a00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2905
{"splat.w",   "+d,+e+*",  0x78c00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2906
{"splat.d",   "+d,+e+*",  0x78e00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2907
{"splati.b",    "+d,+e+o",  0x78400019, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2908
{"splati.h",    "+d,+e+u",  0x78600019, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2909
{"splati.w",    "+d,+e+v",  0x78700019, 0xfffc003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2910
{"splati.d",    "+d,+e+w",  0x78780019, 0xfffe003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2911
{"pckev.b",   "+d,+e,+h", 0x79000014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2912
{"pckev.h",   "+d,+e,+h", 0x79200014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2913
{"pckev.w",   "+d,+e,+h", 0x79400014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2914
{"pckev.d",   "+d,+e,+h", 0x79600014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2915
{"pckod.b",   "+d,+e,+h", 0x79800014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2916
{"pckod.h",   "+d,+e,+h", 0x79a00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2917
{"pckod.w",   "+d,+e,+h", 0x79c00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2918
{"pckod.d",   "+d,+e,+h", 0x79e00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2919
{"ilvl.b",    "+d,+e,+h", 0x7a000014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2920
{"ilvl.h",    "+d,+e,+h", 0x7a200014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2921
{"ilvl.w",    "+d,+e,+h", 0x7a400014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2922
{"ilvl.d",    "+d,+e,+h", 0x7a600014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2923
{"ilvr.b",    "+d,+e,+h", 0x7a800014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2924
{"ilvr.h",    "+d,+e,+h", 0x7aa00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2925
{"ilvr.w",    "+d,+e,+h", 0x7ac00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2926
{"ilvr.d",    "+d,+e,+h", 0x7ae00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2927
{"ilvev.b",   "+d,+e,+h", 0x7b000014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2928
{"ilvev.h",   "+d,+e,+h", 0x7b200014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2929
{"ilvev.w",   "+d,+e,+h", 0x7b400014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2930
{"ilvev.d",   "+d,+e,+h", 0x7b600014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2931
{"ilvod.b",   "+d,+e,+h", 0x7b800014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2932
{"ilvod.h",   "+d,+e,+h", 0x7ba00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2933
{"ilvod.w",   "+d,+e,+h", 0x7bc00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2934
{"ilvod.d",   "+d,+e,+h", 0x7be00014, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2935
{"vshf.b",    "+d,+e,+h", 0x78000015, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2936
{"vshf.h",    "+d,+e,+h", 0x78200015, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2937
{"vshf.w",    "+d,+e,+h", 0x78400015, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2938
{"vshf.d",    "+d,+e,+h", 0x78600015, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2939
{"srar.b",    "+d,+e,+h", 0x78800015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2940
{"srar.h",    "+d,+e,+h", 0x78a00015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2941
{"srar.w",    "+d,+e,+h", 0x78c00015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2942
{"srar.d",    "+d,+e,+h", 0x78e00015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2943
{"srari.b",   "+d,+e,+!", 0x7970000a, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2944
{"srari.h",   "+d,+e,+@", 0x7960000a, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2945
{"srari.w",   "+d,+e,+x", 0x7940000a, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2946
{"srari.d",   "+d,+e,+#", 0x7900000a, 0xffc0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2947
{"srlr.b",    "+d,+e,+h", 0x79000015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2948
{"srlr.h",    "+d,+e,+h", 0x79200015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2949
{"srlr.w",    "+d,+e,+h", 0x79400015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2950
{"srlr.d",    "+d,+e,+h", 0x79600015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2951
{"srlri.b",   "+d,+e,+!", 0x79f0000a, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2952
{"srlri.h",   "+d,+e,+@", 0x79e0000a, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2953
{"srlri.w",   "+d,+e,+x", 0x79c0000a, 0xffe0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2954
{"srlri.d",   "+d,+e,+#", 0x7980000a, 0xffc0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2955
{"hadd_s.h",    "+d,+e,+h", 0x7a200015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2956
{"hadd_s.w",    "+d,+e,+h", 0x7a400015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2957
{"hadd_s.d",    "+d,+e,+h", 0x7a600015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2958
{"hadd_u.h",    "+d,+e,+h", 0x7aa00015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2959
{"hadd_u.w",    "+d,+e,+h", 0x7ac00015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2960
{"hadd_u.d",    "+d,+e,+h", 0x7ae00015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2961
{"hsub_s.h",    "+d,+e,+h", 0x7b200015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2962
{"hsub_s.w",    "+d,+e,+h", 0x7b400015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2963
{"hsub_s.d",    "+d,+e,+h", 0x7b600015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2964
{"hsub_u.h",    "+d,+e,+h", 0x7ba00015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2965
{"hsub_u.w",    "+d,+e,+h", 0x7bc00015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2966
{"hsub_u.d",    "+d,+e,+h", 0x7be00015, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2967
{"and.v",   "+d,+e,+h", 0x7800001e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2968
{"andi.b",    "+d,+e,+|", 0x78000000, 0xff00003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2969
{"or.v",    "+d,+e,+h", 0x7820001e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2970
{"ori.b",   "+d,+e,+|", 0x79000000, 0xff00003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2971
{"nor.v",   "+d,+e,+h", 0x7840001e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2972
{"nori.b",    "+d,+e,+|", 0x7a000000, 0xff00003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2973
{"xor.v",   "+d,+e,+h", 0x7860001e, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
2974
{"xori.b",    "+d,+e,+|", 0x7b000000, 0xff00003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2975
{"bmnz.v",    "+d,+e,+h", 0x7880001e, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2976
{"bmnzi.b",   "+d,+e,+|", 0x78000001, 0xff00003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2977
{"bmz.v",   "+d,+e,+h", 0x78a0001e, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2978
{"bmzi.b",    "+d,+e,+|", 0x79000001, 0xff00003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2979
{"bsel.v",    "+d,+e,+h", 0x78c0001e, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
2980
{"bseli.b",   "+d,+e,+|", 0x7a000001, 0xff00003f, MOD_1|RD_2,   0,    0,    MSA,  0 },
2981
{"shf.b",   "+d,+e,+|", 0x78000002, 0xff00003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2982
{"shf.h",   "+d,+e,+|", 0x79000002, 0xff00003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2983
{"shf.w",   "+d,+e,+|", 0x7a000002, 0xff00003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2984
{"bnz.v",   "+h,p",   0x45e00000, 0xffe00000, RD_1|CBD,   0,    0,    MSA,  0 },
2985
{"bz.v",    "+h,p",   0x45600000, 0xffe00000, RD_1|CBD,   0,    0,    MSA,  0 },
2986
{"fill.b",    "+d,d",   0x7b00001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2987
{"fill.h",    "+d,d",   0x7b01001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2988
{"fill.w",    "+d,d",   0x7b02001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2989
{"fill.d",    "+d,d",   0x7b03001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA64,  0 },
2990
{"pcnt.b",    "+d,+e",  0x7b04001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2991
{"pcnt.h",    "+d,+e",  0x7b05001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2992
{"pcnt.w",    "+d,+e",  0x7b06001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2993
{"pcnt.d",    "+d,+e",  0x7b07001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2994
{"nloc.b",    "+d,+e",  0x7b08001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2995
{"nloc.h",    "+d,+e",  0x7b09001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2996
{"nloc.w",    "+d,+e",  0x7b0a001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2997
{"nloc.d",    "+d,+e",  0x7b0b001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2998
{"nlzc.b",    "+d,+e",  0x7b0c001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
2999
{"nlzc.h",    "+d,+e",  0x7b0d001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3000
{"nlzc.w",    "+d,+e",  0x7b0e001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3001
{"nlzc.d",    "+d,+e",  0x7b0f001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3002
{"copy_s.b",    "+k,+e+o",  0x78800019, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3003
{"copy_s.h",    "+k,+e+u",  0x78a00019, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3004
{"copy_s.w",    "+k,+e+v",  0x78b00019, 0xfffc003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3005
{"copy_s.d",    "+k,+e+w",  0x78b80019, 0xfffe003f, WR_1|RD_2,    0,    0,    MSA64,  0 },
3006
{"copy_u.b",    "+k,+e+o",  0x78c00019, 0xfff0003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3007
{"copy_u.h",    "+k,+e+u",  0x78e00019, 0xfff8003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3008
{"copy_u.w",    "+k,+e+v",  0x78f00019, 0xfffc003f, WR_1|RD_2,    0,    0,    MSA64,  0 },
3009
{"insert.b",    "+d+o,d", 0x79000019, 0xfff0003f, MOD_1|RD_3,   0,    0,    MSA,  0 },
3010
{"insert.h",    "+d+u,d", 0x79200019, 0xfff8003f, MOD_1|RD_3,   0,    0,    MSA,  0 },
3011
{"insert.w",    "+d+v,d", 0x79300019, 0xfffc003f, MOD_1|RD_3,   0,    0,    MSA,  0 },
3012
{"insert.d",    "+d+w,d", 0x79380019, 0xfffe003f, MOD_1|RD_3,   0,    0,    MSA64,  0 },
3013
{"insve.b",   "+d+o,+e+&",  0x79400019, 0xfff0003f, MOD_1|RD_3,   0,    0,    MSA,  0 },
3014
{"insve.h",   "+d+u,+e+&",  0x79600019, 0xfff8003f, MOD_1|RD_3,   0,    0,    MSA,  0 },
3015
{"insve.w",   "+d+v,+e+&",  0x79700019, 0xfffc003f, MOD_1|RD_3,   0,    0,    MSA,  0 },
3016
{"insve.d",   "+d+w,+e+&",  0x79780019, 0xfffe003f, MOD_1|RD_3,   0,    0,    MSA,  0 },
3017
{"bnz.b",   "+h,p",   0x47800000, 0xffe00000, RD_1|CBD,   0,    0,    MSA,  0 },
3018
{"bnz.h",   "+h,p",   0x47a00000, 0xffe00000, RD_1|CBD,   0,    0,    MSA,  0 },
3019
{"bnz.w",   "+h,p",   0x47c00000, 0xffe00000, RD_1|CBD,   0,    0,    MSA,  0 },
3020
{"bnz.d",   "+h,p",   0x47e00000, 0xffe00000, RD_1|CBD,   0,    0,    MSA,  0 },
3021
{"bz.b",    "+h,p",   0x47000000, 0xffe00000, RD_1|CBD,   0,    0,    MSA,  0 },
3022
{"bz.h",    "+h,p",   0x47200000, 0xffe00000, RD_1|CBD,   0,    0,    MSA,  0 },
3023
{"bz.w",    "+h,p",   0x47400000, 0xffe00000, RD_1|CBD,   0,    0,    MSA,  0 },
3024
{"bz.d",    "+h,p",   0x47600000, 0xffe00000, RD_1|CBD,   0,    0,    MSA,  0 },
3025
{"ldi.b",   "+d,+^",  0x7b000007, 0xffe0003f, WR_1,     0,    0,    MSA,  0 },
3026
{"ldi.h",   "+d,+^",  0x7b200007, 0xffe0003f, WR_1,     0,    0,    MSA,  0 },
3027
{"ldi.w",   "+d,+^",  0x7b400007, 0xffe0003f, WR_1,     0,    0,    MSA,  0 },
3028
{"ldi.d",   "+d,+^",  0x7b600007, 0xffe0003f, WR_1,     0,    0,    MSA,  0 },
3029
{"fcaf.w",    "+d,+e,+h", 0x7800001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3030
{"fcaf.d",    "+d,+e,+h", 0x7820001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3031
{"fcun.w",    "+d,+e,+h", 0x7840001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3032
{"fcun.d",    "+d,+e,+h", 0x7860001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3033
{"fceq.w",    "+d,+e,+h", 0x7880001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3034
{"fceq.d",    "+d,+e,+h", 0x78a0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3035
{"fcueq.w",   "+d,+e,+h", 0x78c0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3036
{"fcueq.d",   "+d,+e,+h", 0x78e0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3037
{"fclt.w",    "+d,+e,+h", 0x7900001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3038
{"fclt.d",    "+d,+e,+h", 0x7920001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3039
{"fcult.w",   "+d,+e,+h", 0x7940001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3040
{"fcult.d",   "+d,+e,+h", 0x7960001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3041
{"fcle.w",    "+d,+e,+h", 0x7980001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3042
{"fcle.d",    "+d,+e,+h", 0x79a0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3043
{"fcule.w",   "+d,+e,+h", 0x79c0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3044
{"fcule.d",   "+d,+e,+h", 0x79e0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3045
{"fsaf.w",    "+d,+e,+h", 0x7a00001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3046
{"fsaf.d",    "+d,+e,+h", 0x7a20001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3047
{"fsun.w",    "+d,+e,+h", 0x7a40001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3048
{"fsun.d",    "+d,+e,+h", 0x7a60001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3049
{"fseq.w",    "+d,+e,+h", 0x7a80001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3050
{"fseq.d",    "+d,+e,+h", 0x7aa0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3051
{"fsueq.w",   "+d,+e,+h", 0x7ac0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3052
{"fsueq.d",   "+d,+e,+h", 0x7ae0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3053
{"fslt.w",    "+d,+e,+h", 0x7b00001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3054
{"fslt.d",    "+d,+e,+h", 0x7b20001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3055
{"fsult.w",   "+d,+e,+h", 0x7b40001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3056
{"fsult.d",   "+d,+e,+h", 0x7b60001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3057
{"fsle.w",    "+d,+e,+h", 0x7b80001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3058
{"fsle.d",    "+d,+e,+h", 0x7ba0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3059
{"fsule.w",   "+d,+e,+h", 0x7bc0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3060
{"fsule.d",   "+d,+e,+h", 0x7be0001a, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3061
{"fadd.w",    "+d,+e,+h", 0x7800001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3062
{"fadd.d",    "+d,+e,+h", 0x7820001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3063
{"fsub.w",    "+d,+e,+h", 0x7840001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3064
{"fsub.d",    "+d,+e,+h", 0x7860001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3065
{"fmul.w",    "+d,+e,+h", 0x7880001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3066
{"fmul.d",    "+d,+e,+h", 0x78a0001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3067
{"fdiv.w",    "+d,+e,+h", 0x78c0001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3068
{"fdiv.d",    "+d,+e,+h", 0x78e0001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3069
{"fmadd.w",   "+d,+e,+h", 0x7900001b, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3070
{"fmadd.d",   "+d,+e,+h", 0x7920001b, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3071
{"fmsub.w",   "+d,+e,+h", 0x7940001b, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3072
{"fmsub.d",   "+d,+e,+h", 0x7960001b, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3073
{"fexp2.w",   "+d,+e,+h", 0x79c0001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3074
{"fexp2.d",   "+d,+e,+h", 0x79e0001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3075
{"fexdo.h",   "+d,+e,+h", 0x7a00001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3076
{"fexdo.w",   "+d,+e,+h", 0x7a20001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3077
{"ftq.h",   "+d,+e,+h", 0x7a80001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3078
{"ftq.w",   "+d,+e,+h", 0x7aa0001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3079
{"fmin.w",    "+d,+e,+h", 0x7b00001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3080
{"fmin.d",    "+d,+e,+h", 0x7b20001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3081
{"fmin_a.w",    "+d,+e,+h", 0x7b40001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3082
{"fmin_a.d",    "+d,+e,+h", 0x7b60001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3083
{"fmax.w",    "+d,+e,+h", 0x7b80001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3084
{"fmax.d",    "+d,+e,+h", 0x7ba0001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3085
{"fmax_a.w",    "+d,+e,+h", 0x7bc0001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3086
{"fmax_a.d",    "+d,+e,+h", 0x7be0001b, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3087
{"fcor.w",    "+d,+e,+h", 0x7840001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3088
{"fcor.d",    "+d,+e,+h", 0x7860001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3089
{"fcune.w",   "+d,+e,+h", 0x7880001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3090
{"fcune.d",   "+d,+e,+h", 0x78a0001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3091
{"fcne.w",    "+d,+e,+h", 0x78c0001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3092
{"fcne.d",    "+d,+e,+h", 0x78e0001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3093
{"mul_q.h",   "+d,+e,+h", 0x7900001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3094
{"mul_q.w",   "+d,+e,+h", 0x7920001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3095
{"madd_q.h",    "+d,+e,+h", 0x7940001c, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3096
{"madd_q.w",    "+d,+e,+h", 0x7960001c, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3097
{"msub_q.h",    "+d,+e,+h", 0x7980001c, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3098
{"msub_q.w",    "+d,+e,+h", 0x79a0001c, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3099
{"fsor.w",    "+d,+e,+h", 0x7a40001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3100
{"fsor.d",    "+d,+e,+h", 0x7a60001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3101
{"fsune.w",   "+d,+e,+h", 0x7a80001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3102
{"fsune.d",   "+d,+e,+h", 0x7aa0001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3103
{"fsne.w",    "+d,+e,+h", 0x7ac0001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3104
{"fsne.d",    "+d,+e,+h", 0x7ae0001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3105
{"mulr_q.h",    "+d,+e,+h", 0x7b00001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3106
{"mulr_q.w",    "+d,+e,+h", 0x7b20001c, 0xffe0003f, WR_1|RD_2|RD_3,   0,    0,    MSA,  0 },
3107
{"maddr_q.h",   "+d,+e,+h", 0x7b40001c, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3108
{"maddr_q.w",   "+d,+e,+h", 0x7b60001c, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3109
{"msubr_q.h",   "+d,+e,+h", 0x7b80001c, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3110
{"msubr_q.w",   "+d,+e,+h", 0x7ba0001c, 0xffe0003f, MOD_1|RD_2|RD_3,  0,    0,    MSA,  0 },
3111
{"fclass.w",    "+d,+e",  0x7b20001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3112
{"fclass.d",    "+d,+e",  0x7b21001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3113
{"ftrunc_s.w",    "+d,+e",  0x7b22001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3114
{"ftrunc_s.d",    "+d,+e",  0x7b23001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3115
{"ftrunc_u.w",    "+d,+e",  0x7b24001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3116
{"ftrunc_u.d",    "+d,+e",  0x7b25001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3117
{"fsqrt.w",   "+d,+e",  0x7b26001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3118
{"fsqrt.d",   "+d,+e",  0x7b27001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3119
{"frsqrt.w",    "+d,+e",  0x7b28001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3120
{"frsqrt.d",    "+d,+e",  0x7b29001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3121
{"frcp.w",    "+d,+e",  0x7b2a001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3122
{"frcp.d",    "+d,+e",  0x7b2b001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3123
{"frint.w",   "+d,+e",  0x7b2c001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3124
{"frint.d",   "+d,+e",  0x7b2d001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3125
{"flog2.w",   "+d,+e",  0x7b2e001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3126
{"flog2.d",   "+d,+e",  0x7b2f001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3127
{"fexupl.w",    "+d,+e",  0x7b30001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3128
{"fexupl.d",    "+d,+e",  0x7b31001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3129
{"fexupr.w",    "+d,+e",  0x7b32001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3130
{"fexupr.d",    "+d,+e",  0x7b33001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3131
{"ffql.w",    "+d,+e",  0x7b34001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3132
{"ffql.d",    "+d,+e",  0x7b35001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3133
{"ffqr.w",    "+d,+e",  0x7b36001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3134
{"ffqr.d",    "+d,+e",  0x7b37001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3135
{"ftint_s.w",   "+d,+e",  0x7b38001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3136
{"ftint_s.d",   "+d,+e",  0x7b39001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3137
{"ftint_u.w",   "+d,+e",  0x7b3a001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3138
{"ftint_u.d",   "+d,+e",  0x7b3b001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3139
{"ffint_s.w",   "+d,+e",  0x7b3c001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3140
{"ffint_s.d",   "+d,+e",  0x7b3d001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3141
{"ffint_u.w",   "+d,+e",  0x7b3e001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3142
{"ffint_u.d",   "+d,+e",  0x7b3f001e, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3143
{"ctcmsa",    "+l,d",   0x783e0019, 0xffff003f, RD_2|CM,    0,    0,    MSA,  0 },
3144
{"cfcmsa",    "+k,+n",  0x787e0019, 0xffff003f, WR_1|CM,    0,    0,    MSA,  0 },
3145
{"move.v",    "+d,+e",  0x78be0019, 0xffff003f, WR_1|RD_2,    0,    0,    MSA,  0 },
3146
{"lsa",     "d,v,t,+~", 0x00000005, 0xfc00073f, WR_1|RD_2|RD_3,   0,    I37,    MSA,  0 },
3147
{"dlsa",    "d,v,t,+~", 0x00000015, 0xfc00073f, WR_1|RD_2|RD_3,   0,    I69,    MSA64,  0 },
3148
3149
/* interAptiv MR2 instruction extensions.  */
3150
{"restore",   "-m",   0x7000001f, 0xfc00603f, WR_31|NODS,   MOD_SP,   IAMR2,    0,  0 },
3151
{"save",    "-m",   0x7000201f, 0xfc00603f, NODS,     RD_31|MOD_SP, IAMR2,    0,  0 },
3152
3153
/* User Defined Instruction.  */
3154
{"udi0",    "s,t,d,+1", 0x70000010, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3155
{"udi0",    "s,t,+2", 0x70000010, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3156
{"udi0",    "s,+3",   0x70000010, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3157
{"udi0",    "+4",   0x70000010, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3158
{"udi1",    "s,t,d,+1", 0x70000011, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3159
{"udi1",    "s,t,+2", 0x70000011, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3160
{"udi1",    "s,+3",   0x70000011, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3161
{"udi1",    "+4",   0x70000011, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3162
{"udi2",    "s,t,d,+1", 0x70000012, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3163
{"udi2",    "s,t,+2", 0x70000012, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3164
{"udi2",    "s,+3",   0x70000012, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3165
{"udi2",    "+4",   0x70000012, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3166
{"udi3",    "s,t,d,+1", 0x70000013, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3167
{"udi3",    "s,t,+2", 0x70000013, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3168
{"udi3",    "s,+3",   0x70000013, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3169
{"udi3",    "+4",   0x70000013, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3170
{"udi4",    "s,t,d,+1", 0x70000014, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3171
{"udi4",    "s,t,+2", 0x70000014, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3172
{"udi4",    "s,+3",   0x70000014, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3173
{"udi4",    "+4",   0x70000014, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3174
{"udi5",    "s,t,d,+1", 0x70000015, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3175
{"udi5",    "s,t,+2", 0x70000015, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3176
{"udi5",    "s,+3",   0x70000015, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3177
{"udi5",    "+4",   0x70000015, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3178
{"udi6",    "s,t,d,+1", 0x70000016, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3179
{"udi6",    "s,t,+2", 0x70000016, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3180
{"udi6",    "s,+3",   0x70000016, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3181
{"udi6",    "+4",   0x70000016, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3182
{"udi7",    "s,t,d,+1", 0x70000017, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3183
{"udi7",    "s,t,+2", 0x70000017, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3184
{"udi7",    "s,+3",   0x70000017, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3185
{"udi7",    "+4",   0x70000017, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3186
{"udi8",    "s,t,d,+1", 0x70000018, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3187
{"udi8",    "s,t,+2", 0x70000018, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3188
{"udi8",    "s,+3",   0x70000018, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3189
{"udi8",    "+4",   0x70000018, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3190
{"udi9",    "s,t,d,+1", 0x70000019, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3191
{"udi9",    "s,t,+2", 0x70000019, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3192
{"udi9",    "s,+3",   0x70000019, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3193
{"udi9",    "+4",   0x70000019, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3194
{"udi10",   "s,t,d,+1", 0x7000001a, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3195
{"udi10",   "s,t,+2", 0x7000001a, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3196
{"udi10",   "s,+3",   0x7000001a, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3197
{"udi10",   "+4",   0x7000001a, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3198
{"udi11",   "s,t,d,+1", 0x7000001b, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3199
{"udi11",   "s,t,+2", 0x7000001b, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3200
{"udi11",   "s,+3",   0x7000001b, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3201
{"udi11",   "+4",   0x7000001b, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3202
{"udi12",   "s,t,d,+1", 0x7000001c, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3203
{"udi12",   "s,t,+2", 0x7000001c, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3204
{"udi12",   "s,+3",   0x7000001c, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3205
{"udi12",   "+4",   0x7000001c, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3206
{"udi13",   "s,t,d,+1", 0x7000001d, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3207
{"udi13",   "s,t,+2", 0x7000001d, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3208
{"udi13",   "s,+3",   0x7000001d, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3209
{"udi13",   "+4",   0x7000001d, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3210
{"udi14",   "s,t,d,+1", 0x7000001e, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3211
{"udi14",   "s,t,+2", 0x7000001e, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3212
{"udi14",   "s,+3",   0x7000001e, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3213
{"udi14",   "+4",   0x7000001e, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3214
{"udi15",   "s,t,d,+1", 0x7000001f, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3215
{"udi15",   "s,t,+2", 0x7000001f, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3216
{"udi15",   "s,+3",   0x7000001f, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3217
{"udi15",   "+4",   0x7000001f, 0xfc00003f, UDI,      0,    I33,    0,  0 },
3218
3219
/* MIPS r6.  */
3220
{"aui",     "t,s,u",  0x3c000000, 0xfc000000, WR_1|RD_2,    0,    I37,    0,  0 },
3221
{"auipc",   "s,u",    0xec1e0000, 0xfc1f0000, WR_1,     RD_pc,    I37,    0,  0 },
3222
{"daui",    "t,-s,u", 0x74000000, 0xfc000000, WR_1|RD_2,    0,    I37,    0,  0 },
3223
{"dahi",    "s,-d,u", 0x04060000, 0xfc1f0000, MOD_1,      0,    I69,    0,  0 },
3224
{"dati",    "s,-d,u", 0x041e0000, 0xfc1f0000, MOD_1,      0,    I69,    0,  0 },
3225
3226
{"align",   "d,s,t,+I", 0x7c000220, 0xfc00073f, WR_1|RD_2|RD_3,   0,    I37,    0,  0 },
3227
{"dalign",    "d,s,t,+O", 0x7c000224, 0xfc00063f, WR_1|RD_2|RD_3,   0,    I69,    0,  0 },
3228
{"bitswap",   "d,t",    0x7c000020, 0xffe007ff, WR_1|RD_2,    0,    I37,    0,  0 },
3229
{"dbitswap",    "d,t",    0x7c000024, 0xffe007ff, WR_1|RD_2,    0,    I69,    0,  0 },
3230
3231
{"bovc",    "s,-w,p", 0x20000000, 0xfc000000, RD_1|RD_2|NODS,   FS,   I37,    0,  0 },
3232
{"bovc",    "t,-x,p", 0x20000000, 0xfc000000, RD_1|RD_2|NODS,   FS|AL,    I37,    0,  0 },
3233
{"beqzalc",   "-t,p",   0x20000000, 0xffe00000, RD_1|WR_31|NODS,  FS,   I37,    0,  0 },
3234
{"beqc",    "-s,-u,p",  0x20000000, 0xfc000000, RD_1|RD_2|NODS,   FS,   I37,    0,  0 },
3235
{"beqc",    "t,-y,p", 0x20000000, 0xfc000000, RD_1|RD_2|NODS,   FS|AL,    I37,    0,  0 },
3236
{"bnvc",    "s,-w,p", 0x60000000, 0xfc000000, RD_1|RD_2|NODS,   FS,   I37,    0,  0 },
3237
{"bnvc",    "t,-x,p", 0x60000000, 0xfc000000, RD_1|RD_2|NODS,   FS|AL,    I37,    0,  0 },
3238
{"bnezalc",   "-t,p",   0x60000000, 0xffe00000, RD_1|WR_31|NODS,  FS,   I37,    0,  0 },
3239
{"bnec",    "-s,-u,p",  0x60000000, 0xfc000000, RD_1|RD_2|NODS,   FS,   I37,    0,  0 },
3240
{"bnec",    "t,-y,p", 0x60000000, 0xfc000000, RD_1|RD_2|NODS,   FS|AL,    I37,    0,  0 },
3241
3242
{"blezc",   "-t,p",   0x58000000, 0xffe00000, RD_1|NODS,    FS,   I37,    0,  0 },
3243
{"bgezc",   "+;,p",   0x58000000, 0xfc000000, RD_1|NODS,    FS,   I37,    0,  0 },
3244
{"bgec",    "-s,-v,p",  0x58000000, 0xfc000000, RD_1|RD_2|NODS,   FS,   I37,    0,  0 },
3245
{"bgtzc",   "-t,p",   0x5c000000, 0xffe00000, RD_1|NODS,    FS,   I37,    0,  0 },
3246
{"bltzc",   "+;,p",   0x5c000000, 0xfc000000, RD_1|NODS,    FS,   I37,    0,  0 },
3247
{"bltc",    "-s,-v,p",  0x5c000000, 0xfc000000, RD_1|RD_2|NODS,   FS,   I37,    0,  0 },
3248
{"blezalc",   "-t,p",   0x18000000, 0xffe00000, RD_1|WR_31|NODS,  FS,   I37,    0,  0 },
3249
{"bgezalc",   "+;,p",   0x18000000, 0xfc000000, RD_1|WR_31|NODS,  FS,   I37,    0,  0 },
3250
{"bgeuc",   "-s,-v,p",  0x18000000, 0xfc000000, RD_1|RD_2|NODS,   FS,   I37,    0,  0 },
3251
{"bgtzalc",   "-t,p",   0x1c000000, 0xffe00000, RD_1|WR_31|NODS,  FS,   I37,    0,  0 },
3252
{"bltzalc",   "+;,p",   0x1c000000, 0xfc000000, RD_1|WR_31|NODS,  FS,   I37,    0,  0 },
3253
{"bltuc",   "-s,-v,p",  0x1c000000, 0xfc000000, RD_1|RD_2|NODS,   FS,   I37,    0,  0 },
3254
3255
{"beqzc",   "-s,+\"", 0xd8000000, 0xfc000000, RD_1|NODS,    FS,   I37,    0,  0 },
3256
{"jrc",     "t",    0xd8000000, 0xffe0ffff, RD_1|NODS,    AL,   I37,    0,  0 },
3257
{"jic",     "t,j",    0xd8000000, 0xffe00000, RD_1|NODS,    0,    I37,    0,  0 },
3258
3259
{"bnezc",   "-s,+\"", 0xf8000000, 0xfc000000, RD_1|NODS,    FS,   I37,    0,  0 },
3260
{"jalrc",   "t",    0xf8000000, 0xffe0ffff, RD_1|NODS,    0,    I37,    0,  0 },
3261
{"jialc",   "t,j",    0xf8000000, 0xffe00000, RD_1|NODS,    0,    I37,    0,  0 },
3262
3263
{"cmp.af.s",    "D,S,T",  0x46800000, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3264
{"cmp.af.d",    "D,S,T",  0x46a00000, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3265
{"cmp.eq.s",    "D,S,T",  0x46800002, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3266
{"cmp.eq.d",    "D,S,T",  0x46a00002, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3267
{"cmp.le.s",    "D,S,T",  0x46800006, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3268
{"cmp.le.d",    "D,S,T",  0x46a00006, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3269
{"cmp.lt.s",    "D,S,T",  0x46800004, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3270
{"cmp.lt.d",    "D,S,T",  0x46a00004, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3271
{"cmp.ne.s",    "D,S,T",  0x46800013, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3272
{"cmp.ne.d",    "D,S,T",  0x46a00013, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3273
{"cmp.or.s",    "D,S,T",  0x46800011, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3274
{"cmp.or.d",    "D,S,T",  0x46a00011, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3275
{"cmp.ueq.s",   "D,S,T",  0x46800003, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3276
{"cmp.ueq.d",   "D,S,T",  0x46a00003, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3277
{"cmp.ule.s",   "D,S,T",  0x46800007, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3278
{"cmp.ule.d",   "D,S,T",  0x46a00007, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3279
{"cmp.ult.s",   "D,S,T",  0x46800005, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3280
{"cmp.ult.d",   "D,S,T",  0x46a00005, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3281
{"cmp.un.s",    "D,S,T",  0x46800001, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3282
{"cmp.un.d",    "D,S,T",  0x46a00001, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3283
{"cmp.une.s",   "D,S,T",  0x46800012, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3284
{"cmp.une.d",   "D,S,T",  0x46a00012, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3285
{"cmp.saf.s",   "D,S,T",  0x46800008, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3286
{"cmp.saf.d",   "D,S,T",  0x46a00008, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3287
{"cmp.seq.s",   "D,S,T",  0x4680000a, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3288
{"cmp.seq.d",   "D,S,T",  0x46a0000a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3289
{"cmp.sle.s",   "D,S,T",  0x4680000e, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3290
{"cmp.sle.d",   "D,S,T",  0x46a0000e, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3291
{"cmp.slt.s",   "D,S,T",  0x4680000c, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3292
{"cmp.slt.d",   "D,S,T",  0x46a0000c, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3293
{"cmp.sne.s",   "D,S,T",  0x4680001b, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3294
{"cmp.sne.d",   "D,S,T",  0x46a0001b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3295
{"cmp.sor.s",   "D,S,T",  0x46800019, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3296
{"cmp.sor.d",   "D,S,T",  0x46a00019, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3297
{"cmp.sueq.s",    "D,S,T",  0x4680000b, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3298
{"cmp.sueq.d",    "D,S,T",  0x46a0000b, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3299
{"cmp.sule.s",    "D,S,T",  0x4680000f, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3300
{"cmp.sule.d",    "D,S,T",  0x46a0000f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3301
{"cmp.sult.s",    "D,S,T",  0x4680000d, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3302
{"cmp.sult.d",    "D,S,T",  0x46a0000d, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3303
{"cmp.sun.s",   "D,S,T",  0x46800009, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3304
{"cmp.sun.d",   "D,S,T",  0x46a00009, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3305
{"cmp.sune.s",    "D,S,T",  0x4680001a, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3306
{"cmp.sune.d",    "D,S,T",  0x46a0001a, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3307
3308
{"maddf.s",   "D,S,T",  0x46000018, 0xffe0003f, MOD_1|RD_2|RD_3|FP_S, 0,    I37,    0,  0 },
3309
{"msubf.s",   "D,S,T",  0x46000019, 0xffe0003f, MOD_1|RD_2|RD_3|FP_S, 0,    I37,    0,  0 },
3310
{"maddf.d",   "D,S,T",  0x46200018, 0xffe0003f, MOD_1|RD_2|RD_3|FP_D, 0,    I37,    0,  0 },
3311
{"msubf.d",   "D,S,T",  0x46200019, 0xffe0003f, MOD_1|RD_2|RD_3|FP_D, 0,    I37,    0,  0 },
3312
3313
{"rint.s",    "D,S",    0x4600001a, 0xffff003f, WR_1|RD_2|FP_S,   0,    I37,    0,  0 },
3314
{"rint.d",    "D,S",    0x4620001a, 0xffff003f, WR_1|RD_2|FP_D,   0,    I37,    0,  0 },
3315
{"class.s",   "D,S",    0x4600001b, 0xffff003f, WR_1|RD_2|FP_S,   0,    I37,    0,  0 },
3316
{"class.d",   "D,S",    0x4620001b, 0xffff003f, WR_1|RD_2|FP_D,   0,    I37,    0,  0 },
3317
{"min.d",   "D,S,T",  0x4620001c, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3318
{"max.d",   "D,S,T",  0x4620001e, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3319
{"mina.s",    "D,S,T",  0x4600001d, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3320
{"mina.d",    "D,S,T",  0x4620001d, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3321
{"maxa.s",    "D,S,T",  0x4600001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3322
{"maxa.d",    "D,S,T",  0x4620001f, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3323
3324
{"sel.s",   "D,S,T",  0x46000010, 0xffe0003f, MOD_1|RD_2|RD_3|FP_S,   0,    I37,    0,  0 },
3325
{"sel.d",   "D,S,T",  0x46200010, 0xffe0003f, MOD_1|RD_2|RD_3|FP_D,   0,    I37,    0,  0 },
3326
{"selnez",    "d,s,t",  0x00000037, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I37,    0,  0 },
3327
{"selnez.s",    "D,S,T",  0x46000017, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3328
{"selnez.d",    "D,S,T",  0x46200017, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3329
{"seleqz",    "d,s,t",  0x00000035, 0xfc0007ff, WR_1|RD_2|RD_3,   0,    I37,    0,  0 },
3330
{"seleqz.s",    "D,S,T",  0x46000014, 0xffe0003f, WR_1|RD_2|RD_3|FP_S,  0,    I37,    0,  0 },
3331
{"seleqz.d",    "D,S,T",  0x46200014, 0xffe0003f, WR_1|RD_2|RD_3|FP_D,  0,    I37,    0,  0 },
3332
3333
{"aluipc",    "s,u",    0xec1f0000, 0xfc1f0000, WR_1,     RD_pc,    I37,    0,  0 },
3334
3335
/* MIPS cyclic redundancy check (CRC) ASE.  */
3336
{"crc32b",    "t,s,-d", 0x7c00000f, 0xfc00ffff, MOD_1|RD_2,   0,    0,    CRC,  0 },
3337
{"crc32h",    "t,s,-d", 0x7c00004f, 0xfc00ffff, MOD_1|RD_2,   0,    0,    CRC,  0 },
3338
{"crc32w",    "t,s,-d", 0x7c00008f, 0xfc00ffff, MOD_1|RD_2,   0,    0,    CRC,  0 },
3339
{"crc32d",    "t,s,-d", 0x7c0000cf, 0xfc00ffff, MOD_1|RD_2,   0,    0,    CRC64,  0 },
3340
{"crc32cb",   "t,s,-d", 0x7c00010f, 0xfc00ffff, MOD_1|RD_2,   0,    0,    CRC,  0 },
3341
{"crc32ch",   "t,s,-d", 0x7c00014f, 0xfc00ffff, MOD_1|RD_2,   0,    0,    CRC,  0 },
3342
{"crc32cw",   "t,s,-d", 0x7c00018f, 0xfc00ffff, MOD_1|RD_2,   0,    0,    CRC,  0 },
3343
{"crc32cd",   "t,s,-d", 0x7c0001cf, 0xfc00ffff, MOD_1|RD_2,   0,    0,    CRC64,  0 },
3344
3345
/* MIPS Global INValidate (GINV) ASE.  */
3346
{"ginvi",   "s",    0x7c00003d, 0xfc1fffff, RD_1,     0,    0,    GINV, 0 },
3347
{"ginvt",   "s,+\\",  0x7c0000bd, 0xfc1ffcff, RD_1,     0,    0,    GINV, 0 },
3348
3349
/* Move bc0* after mftr and mttr to avoid opcode collision.  */
3350
{"bc0f",    "p",    0x41000000, 0xffff0000, RD_CC|CBD,    0,    I1,   0,  I4_32 },
3351
{"bc0fl",   "p",    0x41020000, 0xffff0000, RD_CC|CBL,    0,    I2|T3,    0,  I4_32 },
3352
{"bc0t",    "p",    0x41010000, 0xffff0000, RD_CC|CBD,    0,    I1,   0,  I4_32 },
3353
{"bc0tl",   "p",    0x41030000, 0xffff0000, RD_CC|CBL,    0,    I2|T3,    0,  I4_32 },
3354
3355
/* Coprocessor 0 move instructions cfc0 and ctc0 conflict with the
3356
   mfhc0 and mthc0 XPA instructions, so they have been placed here
3357
   to allow the XPA instructions to take precedence.  */
3358
{"cfc0",    "t,g",    0x40400000, 0xffe007ff, WR_1|RD_C0|LC,    0,    I1,   0,  I32 },
3359
{"ctc0",    "t,g",    0x40c00000, 0xffe007ff, RD_1|WR_CC|CM,    0,    I1,   0,  I32 },
3360
3361
/* RFE conflicts with the new Virt spec instruction tlbgp. */
3362
{"rfe",     "",   0x42000010, 0xffffffff, 0,      0,    I1|T3,    0,  I3_32|ALX },
3363
3364
/* Coprocessor 2 move/branch operations overlap with VR5400 .ob format
3365
   instructions so they are here for the latters to take precedence.  */
3366
{"bc2eqz",    "E,p",    0x49200000, 0xffe00000, RD_C2|CBD,    0,    I37,    0,  0 },
3367
{"bc2f",    "p",    0x49000000, 0xffff0000, RD_CC|CBD,    0,    I1,   0,  N54|IOCT|IOCTP|IOCT2|I37 },
3368
{"bc2f",    "N,p",    0x49000000, 0xffe30000, RD_CC|CBD,    0,    I32,    0,  IOCT|IOCTP|IOCT2|I37 },
3369
{"bc2fl",   "p",    0x49020000, 0xffff0000, RD_CC|CBL,    0,    I2|T3,    0,  N54|IOCT|IOCTP|IOCT2|I37 },
3370
{"bc2fl",   "N,p",    0x49020000, 0xffe30000, RD_CC|CBL,    0,    I32,    0,  IOCT|IOCTP|IOCT2|I37 },
3371
{"bc2nez",    "E,p",    0x49a00000, 0xffe00000, RD_C2|CBD,    0,    I37,    0,  0 },
3372
{"bc2t",    "p",    0x49010000, 0xffff0000, RD_CC|CBD,    0,    I1,   0,  N54|IOCT|IOCTP|IOCT2|I37 },
3373
{"bc2t",    "N,p",    0x49010000, 0xffe30000, RD_CC|CBD,    0,    I32,    0,  IOCT|IOCTP|IOCT2|I37 },
3374
{"bc2tl",   "p",    0x49030000, 0xffff0000, RD_CC|CBL,    0,    I2|T3,    0,  N54|IOCT|IOCTP|IOCT2|I37 },
3375
{"bc2tl",   "N,p",    0x49030000, 0xffe30000, RD_CC|CBL,    0,    I32,    0,  IOCT|IOCTP|IOCT2|I37 },
3376
{"cfc2",    "t,g",    0x48400000, 0xffe007ff, WR_1|RD_C2|LC,    0,    I1,   0,  N54|IOCT|IOCTP|IOCT2|EE },
3377
{"cfc2",    "t,+9",   0x48400000, 0xffe007ff, WR_1|RD_C2|LC,    0,    EE,   0,  0 },
3378
{"cfc2.i",    "t,+9",   0x48400001, 0xffe007ff, WR_1|RD_C2|LC,    0,    EE,   0,  0 },
3379
{"cfc2.ni",   "t,+9",   0x48400000, 0xffe007ff, WR_1|RD_C2|LC,    0,    EE,   0,  0 },
3380
{"ctc2",    "t,g",    0x48c00000, 0xffe007ff, RD_1|WR_CC|CM,    0,    I1,   0,  N54|IOCT|IOCTP|IOCT2|EE },
3381
{"ctc2",    "t,+9",   0x48c00000, 0xffe007ff, RD_1|WR_CC|CM,    0,    EE,   0,  0 },
3382
{"ctc2.i",    "t,+9",   0x48c00001, 0xffe007ff, RD_1|WR_CC|CM,    0,    EE,   0,  0 },
3383
{"ctc2.ni",   "t,+9",   0x48c00000, 0xffe007ff, RD_1|WR_CC|CM,    0,    EE,   0,  0 },
3384
{"dmfc2",   "t,i",    0x48200000, 0xffe00000, WR_1|RD_C2|LC,    0,    IOCT,   0,  0 },
3385
{"dmfc2",   "t,G",    0x48200000, 0xffe007ff, WR_1|RD_C2|LC,    0,    I3,   0,  N54|IOCT|IOCTP|IOCT2|EE },
3386
{"dmfc2",   "t,G,H",  0x48200000, 0xffe007f8, WR_1|RD_C2|LC,    0,    I64,    0,  IOCT|IOCTP|IOCT2 },
3387
{"dmtc2",   "t,i",    0x48a00000, 0xffe00000, RD_1|WR_C2|WR_CC|CM,  0,    IOCT,   0,  0 },
3388
{"dmtc2",   "t,G",    0x48a00000, 0xffe007ff, RD_1|WR_C2|WR_CC|CM,  0,    I3,   0,  N54|IOCT|IOCTP|IOCT2|EE },
3389
{"dmtc2",   "t,G,H",  0x48a00000, 0xffe007f8, RD_1|WR_C2|WR_CC|CM,  0,    I64,    0,  IOCT|IOCTP|IOCT2 },
3390
{"mfc2",    "t,G",    0x48000000, 0xffe007ff, WR_1|RD_C2|LC,    0,    I1,   0,  N54|IOCT|IOCTP|IOCT2|EE },
3391
{"mfc2",    "t,G,H",  0x48000000, 0xffe007f8, WR_1|RD_C2|LC,    0,    I32,    0,  IOCT|IOCTP|IOCT2 },
3392
{"mfhc2",   "t,G",    0x48600000, 0xffe007ff, WR_1|RD_C2|LC,    0,    I33,    0,  IOCT|IOCTP|IOCT2 },
3393
{"mfhc2",   "t,G,H",  0x48600000, 0xffe007f8, WR_1|RD_C2|LC,    0,    I33,    0,  IOCT|IOCTP|IOCT2 },
3394
{"mfhc2",   "t,i",    0x48600000, 0xffe00000, WR_1|RD_C2|LC,    0,    I33,    0,  IOCT|IOCTP|IOCT2 },
3395
{"mfic",    "t,G",    0x70000024, 0xffe007ff, WR_1|RD_C0|LC,    0,    ALX,    0,  0 },
3396
{"mtc2",    "t,G",    0x48800000, 0xffe007ff, RD_1|WR_C2|WR_CC|CM,  0,    I1,   0,  N54|IOCT|IOCTP|IOCT2|EE },
3397
{"mtc2",    "t,G,H",  0x48800000, 0xffe007f8, RD_1|WR_C2|WR_CC|CM,  0,    I32,    0,  IOCT|IOCTP|IOCT2 },
3398
{"mthc2",   "t,G",    0x48e00000, 0xffe007ff, RD_1|WR_C2|WR_CC|CM,  0,    I33,    0,  IOCT|IOCTP|IOCT2 },
3399
{"mthc2",   "t,G,H",  0x48e00000, 0xffe007f8, RD_1|WR_C2|WR_CC|CM,  0,    I33,    0,  IOCT|IOCTP|IOCT2 },
3400
{"mthc2",   "t,i",    0x48e00000, 0xffe00000, RD_1|WR_C2|WR_CC|CM,  0,    I33,    0,  IOCT|IOCTP|IOCT2 },
3401
{"mtic",    "t,G",    0x70000026, 0xffe007ff, RD_1|WR_C0|WR_CC|CM,  0,    ALX,    0,  0 },
3402
{"qmfc2",   "t,+6",   0x48200000, 0xffe007ff, WR_1|RD_C2,   0,    EE,   0,  0 },
3403
{"qmfc2.i",   "t,+6",   0x48200001, 0xffe007ff, WR_1|RD_C2,   0,    EE,   0,  0 },
3404
{"qmfc2.ni",    "t,+6",   0x48200000, 0xffe007ff, WR_1|RD_C2,   0,    EE,   0,  0 },
3405
{"qmtc2",   "t,+6",   0x48a00000, 0xffe007ff, RD_1|WR_C2,   0,    EE,   0,  0 },
3406
{"qmtc2.i",   "t,+6",   0x48a00001, 0xffe007ff, RD_1|WR_C2,   0,    EE,   0,  0 },
3407
{"qmtc2.ni",    "t,+6",   0x48a00000, 0xffe007ff, RD_1|WR_C2,   0,    EE,   0,  0 },
3408
3409
/* Coprocessor 3 move/branch operations overlap with MIPS IV COP1X
3410
   instructions, so they are here for the latters to take precedence.  */
3411
{"bc3f",    "p",    0x4d000000, 0xffff0000, RD_CC|CBD,    0,    I1,   0,  I3_33|EE|ALX },
3412
{"bc3fl",   "p",    0x4d020000, 0xffff0000, RD_CC|CBL,    0,    I2|T3,    0,  I3_33|EE|ALX },
3413
{"bc3t",    "p",    0x4d010000, 0xffff0000, RD_CC|CBD,    0,    I1,   0,  I3_33|EE|ALX },
3414
{"bc3tl",   "p",    0x4d030000, 0xffff0000, RD_CC|CBL,    0,    I2|T3,    0,  I3_33|EE|ALX },
3415
{"cfc3",    "t,g",    0x4c400000, 0xffe007ff, WR_1|RD_C3|LC,    0,    I1,   0,  I3_33|EE|ALX },
3416
{"ctc3",    "t,g",    0x4cc00000, 0xffe007ff, RD_1|WR_CC|CM,    0,    I1,   0,  I3_33|EE|ALX },
3417
{"mfc3",    "t,G",    0x4c000000, 0xffe007ff, WR_1|RD_C3|LC,    0,    I1,   0,  I3_33|EE|ALX },
3418
{"mfc3",    "t,G,H",  0x4c000000, 0xffe007f8, WR_1|RD_C3|LC,    0,    I32,    0,  I3_33|EE|ALX },
3419
{"mtc3",    "t,G",    0x4c800000, 0xffe007ff, RD_1|WR_C3|WR_CC|CM,  0,    I1,   0,  I3_33|EE|ALX },
3420
{"mtc3",    "t,G,H",  0x4c800000, 0xffe007f8, RD_1|WR_C3|WR_CC|CM,  0,    I32,    0,  I3_33|EE|ALX },
3421
3422
/* No hazard protection on coprocessor instructions--they shouldn't
3423
   change the state of the processor and if they do it's up to the
3424
   user to put in nops as necessary.  These are at the end so that the
3425
   disassembler recognizes more specific versions first.  */
3426
{"c0",      "C",    0x42000000, 0xfe000000, CP,     0,    I1,   0,  IOCT|IOCTP|IOCT2 },
3427
{"c1",      "C",    0x46000000, 0xfe000000, FP_S,     0,    I1,   0,  0 },
3428
{"c2",      "C",    0x4a000000, 0xfe000000, CP,     0,    I1,   0,  N54|IOCT|IOCTP|IOCT2 },
3429
{"c3",      "C",    0x4e000000, 0xfe000000, CP,     0,    I1,   0,  I3_33 },
3430
{"cop0",    "C",    0,    (int) M_COP0, INSN_MACRO,   0,    I1,   0,  IOCT|IOCTP|IOCT2 },
3431
{"cop1",    "C",    0,    (int) M_COP1, INSN_MACRO,   INSN2_M_FP_S, I1,   0,  0 },
3432
{"cop2",    "C",    0,    (int) M_COP2, INSN_MACRO,   0,    I1,   0,  N54|IOCT|IOCTP|IOCT2 },
3433
{"cop3",    "C",    0,    (int) M_COP3, INSN_MACRO,   0,    I1,   0,  I3_33 },
3434
};
3435
3436
#define MIPS_NUM_OPCODES \
3437
  ((sizeof mips_builtin_opcodes) / (sizeof (mips_builtin_opcodes[0])))
3438
const int bfd_mips_num_builtin_opcodes = MIPS_NUM_OPCODES;
3439
3440
/* const removed from the following to allow for dynamic extensions to the
3441
 * built-in instruction set. */
3442
struct mips_opcode *mips_opcodes =
3443
  (struct mips_opcode *) mips_builtin_opcodes;
3444
int bfd_mips_num_opcodes = MIPS_NUM_OPCODES;
3445
#undef MIPS_NUM_OPCODES