* mips-opc.c ("macc*","mul*"): Added the 4320 versions
[deliverable/binutils-gdb.git] / opcodes / mips-opc.c
CommitLineData
45b14705 1/* mips.h. Mips opcode list for GDB, the GNU debugger.
a21e1e96 2 Copyright 1993, 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
45b14705
ILT
3 Contributed by Ralph Campbell and OSF
4 Commented and modified by Ian Lance Taylor, Cygnus Support
5
6This file is part of GDB, GAS, and the GNU binutils.
7
8GDB, GAS, and the GNU binutils are free software; you can redistribute
9them and/or modify them under the terms of the GNU General Public
10License as published by the Free Software Foundation; either version
111, or (at your option) any later version.
12
13GDB, GAS, and the GNU binutils are distributed in the hope that they
14will be useful, but WITHOUT ANY WARRANTY; without even the implied
15warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
16the GNU General Public License for more details.
17
18You should have received a copy of the GNU General Public License
19along with this file; see the file COPYING. If not, write to the Free
8d67dc30 20Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
45b14705
ILT
21
22#include <stdio.h>
23#include "ansidecl.h"
24#include "opcode/mips.h"
25
26/* Short hand so the lines aren't too long. */
27
2bef2d3e
ILT
28#define LDD INSN_LOAD_MEMORY_DELAY
29#define LCD INSN_LOAD_COPROC_DELAY
45b14705
ILT
30#define UBD INSN_UNCOND_BRANCH_DELAY
31#define CBD INSN_COND_BRANCH_DELAY
2bef2d3e
ILT
32#define COD INSN_COPROC_MOVE_DELAY
33#define CLD INSN_COPROC_MEMORY_DELAY
34#define CBL INSN_COND_BRANCH_LIKELY
9978cd4d 35#define TRAP INSN_TRAP
942a4965 36#define SM INSN_STORE_MEMORY
45b14705
ILT
37
38#define WR_d INSN_WRITE_GPR_D
39#define WR_t INSN_WRITE_GPR_T
40#define WR_31 INSN_WRITE_GPR_31
41#define WR_D INSN_WRITE_FPR_D
42#define WR_T INSN_WRITE_FPR_T
2bef2d3e 43#define WR_S INSN_WRITE_FPR_S
45b14705
ILT
44#define RD_s INSN_READ_GPR_S
45#define RD_b INSN_READ_GPR_S
46#define RD_t INSN_READ_GPR_T
47#define RD_S INSN_READ_FPR_S
48#define RD_T INSN_READ_FPR_T
8d67dc30 49#define RD_R INSN_READ_FPR_R
45b14705
ILT
50#define WR_CC INSN_WRITE_COND_CODE
51#define RD_CC INSN_READ_COND_CODE
52#define RD_C0 INSN_COP
53#define RD_C1 INSN_COP
54#define RD_C2 INSN_COP
55#define RD_C3 INSN_COP
56#define WR_C0 INSN_COP
57#define WR_C1 INSN_COP
58#define WR_C2 INSN_COP
59#define WR_C3 INSN_COP
46bb89f0 60
45b14705 61#define WR_HI INSN_WRITE_HI
45b14705 62#define RD_HI INSN_READ_HI
46bb89f0
GRK
63#define MOD_HI WR_HI|RD_HI
64
65#define WR_LO INSN_WRITE_LO
45b14705 66#define RD_LO INSN_READ_LO
46bb89f0 67#define MOD_LO WR_LO|RD_LO
45b14705 68
a3066d9a
KR
69#define WR_HILO WR_HI|WR_LO
70#define RD_HILO RD_HI|RD_LO
71#define MOD_HILO WR_HILO|RD_HILO
46bb89f0 72
581c03af 73
4bb0ae10 74#define I1 INSN_ISA1
2bef2d3e
ILT
75#define I2 INSN_ISA2
76#define I3 INSN_ISA3
8d67dc30 77#define I4 INSN_ISA4
4bb0ae10 78#define P3 INSN_4650
8d67dc30
ILT
79#define L1 INSN_4010
80#define V1 INSN_4100
d0efa46b 81#define T3 INSN_3900
0cca41d4
GRK
82/* start-sanitize-tx49 */
83#define T4 INSN_4900
84/* end-sanitize-tx49 */
779b65bf
GRK
85/* start-sanitize-vr4320 */
86#define N4 INSN_4320
87/* end-sanitize-vr4320 */
a3066d9a
KR
88/* start-sanitize-vr5400 */
89#define N5 INSN_5400
90/* end-sanitize-vr5400 */
a2768484 91/* start-sanitize-r5900 */
4bb0ae10 92#define T5 INSN_5900
a2768484 93/* end-sanitize-r5900 */
276c2d7d 94
80ae705d 95#define G1 (T3 \
0cca41d4
GRK
96/* start-sanitize-tx49 */ \
97 | T4 \
98/* end-sanitize-tx49 */ \
80ae705d
GRK
99/* start-sanitize-r5900 */ \
100 | T5 \
101/* end-sanitize-r5900 */ \
102 )
276c2d7d 103
0cca41d4
GRK
104#define G2 (T3 \
105/* start-sanitize-tx49 */ \
106 | T4 \
107/* end-sanitize-tx49 */ \
108 )
109
fe9cb9d8
GRK
110#define G3 (I4 \
111/* start-sanitize-tx49 */ \
112 | T4 \
113/* end-sanitize-tx49 */ \
114 )
276c2d7d 115
45b14705
ILT
116/* The order of overloaded instructions matters. Label arguments and
117 register arguments look the same. Instructions that can have either
118 for arguments must apear in the correct order in this table for the
119 assembler to pick the right one. In other words, entries with
120 immediate operands must apear after the same instruction with
121 registers.
122
123 Many instructions are short hand for other instructions (i.e., The
124 jal <register> instruction is short for jalr <register>). */
125
a2768484 126const struct mips_opcode mips_builtin_opcodes[] = {
45b14705
ILT
127/* These instructions appear first so that the disassembler will find
128 them first. The assemblers uses a hash table based on the
129 instruction name anyhow. */
a2768484 130/* name, args, mask, match, pinfo */
4bb0ae10
JL
131{"nop", "", 0x00000000, 0xffffffff, 0, I1 },
132{"li", "t,j", 0x24000000, 0xffe00000, WR_t, I1 }, /* addiu */
133{"li", "t,i", 0x34000000, 0xffe00000, WR_t, I1 }, /* ori */
91866cc9 134{"li", "t,I", 0, (int) M_LI, INSN_MACRO, I1 },
d0efa46b 135{"move", "d,s", 0x0000002d, 0xfc1f07ff, WR_d|RD_s, I3 },/* daddu */
4bb0ae10
JL
136{"move", "d,s", 0x00000021, 0xfc1f07ff, WR_d|RD_s, I1 },/* addu */
137{"move", "d,s", 0x00000025, 0xfc1f07ff, WR_d|RD_s, I1 },/* or */
138{"b", "p", 0x10000000, 0xffff0000, UBD, I1 },/* beq 0,0 */
139{"b", "p", 0x04010000, 0xffff0000, UBD, I1 },/* bgez 0 */
140{"bal", "p", 0x04110000, 0xffff0000, UBD|WR_31, I1 },/* bgezal 0*/
d0efa46b 141
91866cc9 142{"abs", "d,v", 0, (int) M_ABS, INSN_MACRO, I1 },
4bb0ae10
JL
143{"abs.s", "D,V", 0x46000005, 0xffff003f, WR_D|RD_S|FP_S, I1 },
144{"abs.d", "D,V", 0x46200005, 0xffff003f, WR_D|RD_S|FP_D, I1 },
145{"add", "d,v,t", 0x00000020, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },
91866cc9 146{"add", "t,r,I", 0, (int) M_ADD_I, INSN_MACRO, I1 },
4bb0ae10
JL
147{"add.s", "D,V,T", 0x46000000, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, I1},
148{"add.d", "D,V,T", 0x46200000, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I1},
149{"addi", "t,r,j", 0x20000000, 0xfc000000, WR_t|RD_s, I1 },
150{"addiu", "t,r,j", 0x24000000, 0xfc000000, WR_t|RD_s, I1 },
151{"addu", "d,v,t", 0x00000021, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },
91866cc9 152{"addu", "t,r,I", 0, (int) M_ADDU_I, INSN_MACRO, I1 },
4bb0ae10 153{"and", "d,v,t", 0x00000024, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },
91866cc9 154{"and", "t,r,I", 0, (int) M_AND_I, INSN_MACRO, I1 },
4bb0ae10 155{"andi", "t,r,i", 0x30000000, 0xfc000000, WR_t|RD_s, I1 },
45b14705
ILT
156/* b is at the top of the table. */
157/* bal is at the top of the table. */
4bb0ae10
JL
158{"bc0f", "p", 0x41000000, 0xffff0000, CBD|RD_CC, I1 },
159{"bc0fl", "p", 0x41020000, 0xffff0000, CBL|RD_CC, I2|T3 },
160{"bc1f", "p", 0x45000000, 0xffff0000, CBD|RD_CC|FP_S, I1 },
161{"bc1f", "N,p", 0x45000000, 0xffe30000, CBD|RD_CC|FP_S, I4 },
162{"bc1fl", "p", 0x45020000, 0xffff0000, CBL|RD_CC|FP_S, I2|T3 },
163{"bc1fl", "N,p", 0x45020000, 0xffe30000, CBL|RD_CC|FP_S, I4 },
164{"bc2f", "p", 0x49000000, 0xffff0000, CBD|RD_CC, I1 },
165{"bc2fl", "p", 0x49020000, 0xffff0000, CBL|RD_CC, I2|T3 },
166{"bc3f", "p", 0x4d000000, 0xffff0000, CBD|RD_CC, I1 },
167{"bc3fl", "p", 0x4d020000, 0xffff0000, CBL|RD_CC, I2|T3 },
168{"bc0t", "p", 0x41010000, 0xffff0000, CBD|RD_CC, I1 },
169{"bc0tl", "p", 0x41030000, 0xffff0000, CBL|RD_CC, I2|T3 },
170{"bc1t", "p", 0x45010000, 0xffff0000, CBD|RD_CC|FP_S, I1 },
171{"bc1t", "N,p", 0x45010000, 0xffe30000, CBD|RD_CC|FP_S, I4 },
172{"bc1tl", "p", 0x45030000, 0xffff0000, CBL|RD_CC|FP_S, I2|T3 },
173{"bc1tl", "N,p", 0x45030000, 0xffe30000, CBL|RD_CC|FP_S, I4 },
174{"bc2t", "p", 0x49010000, 0xffff0000, CBD|RD_CC, I1 },
175{"bc2tl", "p", 0x49030000, 0xffff0000, CBL|RD_CC, I2|T3 },
176{"bc3t", "p", 0x4d010000, 0xffff0000, CBD|RD_CC, I1 },
177{"bc3tl", "p", 0x4d030000, 0xffff0000, CBL|RD_CC, I2|T3 },
178{"beqz", "s,p", 0x10000000, 0xfc1f0000, CBD|RD_s, I1 },
d7727fe9 179{"beqzl", "s,p", 0x50000000, 0xfc1f0000, CBL|RD_s, I2|T3 },
4bb0ae10 180{"beq", "s,t,p", 0x10000000, 0xfc000000, CBD|RD_s|RD_t, I1 },
91866cc9 181{"beq", "s,I,p", 0, (int) M_BEQ_I, INSN_MACRO, I1 },
4bb0ae10 182{"beql", "s,t,p", 0x50000000, 0xfc000000, CBL|RD_s|RD_t, I2|T3 },
91866cc9
JL
183{"beql", "s,I,p", 0, (int) M_BEQL_I, INSN_MACRO, I2 },
184{"bge", "s,t,p", 0, (int) M_BGE, INSN_MACRO, I1 },
185{"bge", "s,I,p", 0, (int) M_BGE_I, INSN_MACRO, I1 },
186{"bgel", "s,t,p", 0, (int) M_BGEL, INSN_MACRO, I2 },
187{"bgel", "s,I,p", 0, (int) M_BGEL_I, INSN_MACRO, I2 },
188{"bgeu", "s,t,p", 0, (int) M_BGEU, INSN_MACRO, I1 },
189{"bgeu", "s,I,p", 0, (int) M_BGEU_I, INSN_MACRO, I1 },
190{"bgeul", "s,t,p", 0, (int) M_BGEUL, INSN_MACRO, I2 },
191{"bgeul", "s,I,p", 0, (int) M_BGEUL_I, INSN_MACRO, I2 },
4bb0ae10
JL
192{"bgez", "s,p", 0x04010000, 0xfc1f0000, CBD|RD_s, I1 },
193{"bgezl", "s,p", 0x04030000, 0xfc1f0000, CBL|RD_s, I2|T3 },
194{"bgezal", "s,p", 0x04110000, 0xfc1f0000, CBD|RD_s|WR_31, I1 },
195{"bgezall", "s,p", 0x04130000, 0xfc1f0000, CBL|RD_s, I2|T3 },
91866cc9
JL
196{"bgt", "s,t,p", 0, (int) M_BGT, INSN_MACRO, I1 },
197{"bgt", "s,I,p", 0, (int) M_BGT_I, INSN_MACRO, I1 },
198{"bgtl", "s,t,p", 0, (int) M_BGTL, INSN_MACRO, I2 },
199{"bgtl", "s,I,p", 0, (int) M_BGTL_I, INSN_MACRO, I2 },
200{"bgtu", "s,t,p", 0, (int) M_BGTU, INSN_MACRO, I1 },
201{"bgtu", "s,I,p", 0, (int) M_BGTU_I, INSN_MACRO, I1 },
202{"bgtul", "s,t,p", 0, (int) M_BGTUL, INSN_MACRO, I2 },
203{"bgtul", "s,I,p", 0, (int) M_BGTUL_I, INSN_MACRO, I2 },
4bb0ae10
JL
204{"bgtz", "s,p", 0x1c000000, 0xfc1f0000, CBD|RD_s, I1 },
205{"bgtzl", "s,p", 0x5c000000, 0xfc1f0000, CBL|RD_s, I2|T3 },
91866cc9
JL
206{"ble", "s,t,p", 0, (int) M_BLE, INSN_MACRO, I1 },
207{"ble", "s,I,p", 0, (int) M_BLE_I, INSN_MACRO, I1 },
208{"blel", "s,t,p", 0, (int) M_BLEL, INSN_MACRO, I2 },
209{"blel", "s,I,p", 0, (int) M_BLEL_I, INSN_MACRO, I2 },
210{"bleu", "s,t,p", 0, (int) M_BLEU, INSN_MACRO, I1 },
211{"bleu", "s,I,p", 0, (int) M_BLEU_I, INSN_MACRO, I1 },
212{"bleul", "s,t,p", 0, (int) M_BLEUL, INSN_MACRO, I2 },
213{"bleul", "s,I,p", 0, (int) M_BLEUL_I, INSN_MACRO, I2 },
4bb0ae10
JL
214{"blez", "s,p", 0x18000000, 0xfc1f0000, CBD|RD_s, I1 },
215{"blezl", "s,p", 0x58000000, 0xfc1f0000, CBL|RD_s, I2|T3 },
91866cc9
JL
216{"blt", "s,t,p", 0, (int) M_BLT, INSN_MACRO, I1 },
217{"blt", "s,I,p", 0, (int) M_BLT_I, INSN_MACRO, I1 },
218{"bltl", "s,t,p", 0, (int) M_BLTL, INSN_MACRO, I2 },
219{"bltl", "s,I,p", 0, (int) M_BLTL_I, INSN_MACRO, I2 },
220{"bltu", "s,t,p", 0, (int) M_BLTU, INSN_MACRO, I1 },
221{"bltu", "s,I,p", 0, (int) M_BLTU_I, INSN_MACRO, I1 },
222{"bltul", "s,t,p", 0, (int) M_BLTUL, INSN_MACRO, I2 },
223{"bltul", "s,I,p", 0, (int) M_BLTUL_I, INSN_MACRO, I2 },
4bb0ae10
JL
224{"bltz", "s,p", 0x04000000, 0xfc1f0000, CBD|RD_s, I1 },
225{"bltzl", "s,p", 0x04020000, 0xfc1f0000, CBL|RD_s, I2|T3 },
226{"bltzal", "s,p", 0x04100000, 0xfc1f0000, CBD|RD_s|WR_31, I1 },
227{"bltzall", "s,p", 0x04120000, 0xfc1f0000, CBL|RD_s, I2|T3 },
228{"bnez", "s,p", 0x14000000, 0xfc1f0000, CBD|RD_s, I1 },
d7727fe9 229{"bnezl", "s,p", 0x54000000, 0xfc1f0000, CBL|RD_s, I2|T3 },
4bb0ae10 230{"bne", "s,t,p", 0x14000000, 0xfc000000, CBD|RD_s|RD_t, I1 },
91866cc9 231{"bne", "s,I,p", 0, (int) M_BNE_I, INSN_MACRO, I1 },
4bb0ae10 232{"bnel", "s,t,p", 0x54000000, 0xfc000000, CBL|RD_s|RD_t, I2|T3 },
91866cc9 233{"bnel", "s,I,p", 0, (int) M_BNEL_I, INSN_MACRO, I2 },
4bb0ae10
JL
234{"break", "", 0x0000000d, 0xffffffff, TRAP, I1 },
235{"break", "c", 0x0000000d, 0xfc00003f, TRAP, I1 },
236{"c.f.d", "S,T", 0x46200030, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
237{"c.f.d", "M,S,T", 0x46200030, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
238{"c.f.s", "S,T", 0x46000030, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
239{"c.f.s", "M,S,T", 0x46000030, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
240{"c.un.d", "S,T", 0x46200031, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
241{"c.un.d", "M,S,T", 0x46200031, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
242{"c.un.s", "S,T", 0x46000031, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
243{"c.un.s", "M,S,T", 0x46000031, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
244{"c.eq.d", "S,T", 0x46200032, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
245{"c.eq.d", "M,S,T", 0x46200032, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
246{"c.eq.s", "S,T", 0x46000032, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
247{"c.eq.s", "M,S,T", 0x46000032, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
248{"c.ueq.d", "S,T", 0x46200033, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
249{"c.ueq.d", "M,S,T", 0x46200033, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
250{"c.ueq.s", "S,T", 0x46000033, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
251{"c.ueq.s", "M,S,T", 0x46000033, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
252{"c.olt.d", "S,T", 0x46200034, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
253{"c.olt.d", "M,S,T", 0x46200034, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
254{"c.olt.s", "S,T", 0x46000034, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
255{"c.olt.s", "M,S,T", 0x46000034, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
256{"c.ult.d", "S,T", 0x46200035, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
257{"c.ult.d", "M,S,T", 0x46200035, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
258{"c.ult.s", "S,T", 0x46000035, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
259{"c.ult.s", "M,S,T", 0x46000035, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
260{"c.ole.d", "S,T", 0x46200036, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
261{"c.ole.d", "M,S,T", 0x46200036, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
262{"c.ole.s", "S,T", 0x46000036, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
263{"c.ole.s", "M,S,T", 0x46000036, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
264{"c.ule.d", "S,T", 0x46200037, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
265{"c.ule.d", "M,S,T", 0x46200037, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
266{"c.ule.s", "S,T", 0x46000037, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
267{"c.ule.s", "M,S,T", 0x46000037, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
268{"c.sf.d", "S,T", 0x46200038, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
269{"c.sf.d", "M,S,T", 0x46200038, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
270{"c.sf.s", "S,T", 0x46000038, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
271{"c.sf.s", "M,S,T", 0x46000038, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
272{"c.ngle.d","S,T", 0x46200039, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
273{"c.ngle.d","M,S,T", 0x46200039, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
274{"c.ngle.s","S,T", 0x46000039, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
275{"c.ngle.s","M,S,T", 0x46000039, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
276{"c.seq.d", "S,T", 0x4620003a, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
277{"c.seq.d", "M,S,T", 0x4620003a, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
278{"c.seq.s", "S,T", 0x4600003a, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
279{"c.seq.s", "M,S,T", 0x4600003a, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
280{"c.ngl.d", "S,T", 0x4620003b, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
281{"c.ngl.d", "M,S,T", 0x4620003b, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
282{"c.ngl.s", "S,T", 0x4600003b, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
283{"c.ngl.s", "M,S,T", 0x4600003b, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
284{"c.lt.d", "S,T", 0x4620003c, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
285{"c.lt.d", "M,S,T", 0x4620003c, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
b898fc0a
JL
286/* start-sanitize-r5900 */
287{"c.lt.s", "S,T", 0x46000034, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, T5 },
288/* end-sanitize-r5900 */
4bb0ae10
JL
289{"c.lt.s", "S,T", 0x4600003c, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
290{"c.lt.s", "M,S,T", 0x4600003c, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
291{"c.nge.d", "S,T", 0x4620003d, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
292{"c.nge.d", "M,S,T", 0x4620003d, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
293{"c.nge.s", "S,T", 0x4600003d, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
294{"c.nge.s", "M,S,T", 0x4600003d, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
295{"c.le.d", "S,T", 0x4620003e, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
296{"c.le.d", "M,S,T", 0x4620003e, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
b898fc0a
JL
297/* start-sanitize-r5900 */
298{"c.le.s", "S,T", 0x46000036, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, T5 },
299/* end-santiize-r5900 */
4bb0ae10
JL
300{"c.le.s", "S,T", 0x4600003e, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
301{"c.le.s", "M,S,T", 0x4600003e, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
302{"c.ngt.d", "S,T", 0x4620003f, 0xffe007ff, RD_S|RD_T|WR_CC|FP_D, I1 },
303{"c.ngt.d", "M,S,T", 0x4620003f, 0xffe000ff, RD_S|RD_T|WR_CC|FP_D, I4 },
304{"c.ngt.s", "S,T", 0x4600003f, 0xffe007ff, RD_S|RD_T|WR_CC|FP_S, I1 },
305{"c.ngt.s", "M,S,T", 0x4600003f, 0xffe000ff, RD_S|RD_T|WR_CC|FP_S, I4 },
cfcbe03f 306{"cache", "k,o(b)", 0xbc000000, 0xfc000000, RD_b, I3|T3 },
4bb0ae10
JL
307{"ceil.l.d", "D,S", 0x4620000a, 0xffff003f, WR_D|RD_S|FP_D, I3 },
308{"ceil.l.s", "D,S", 0x4600000a, 0xffff003f, WR_D|RD_S|FP_S, I3 },
309{"ceil.w.d", "D,S", 0x4620000e, 0xffff003f, WR_D|RD_S|FP_D, I2 },
310{"ceil.w.s", "D,S", 0x4600000e, 0xffff003f, WR_D|RD_S|FP_S, I2 },
311{"cfc0", "t,G", 0x40400000, 0xffe007ff, LCD|WR_t|RD_C0, I1 },
312{"cfc1", "t,G", 0x44400000, 0xffe007ff, LCD|WR_t|RD_C1|FP_S, I1 },
313{"cfc1", "t,S", 0x44400000, 0xffe007ff, LCD|WR_t|RD_C1|FP_S, I1 },
314{"cfc2", "t,G", 0x48400000, 0xffe007ff, LCD|WR_t|RD_C2, I1 },
315{"cfc3", "t,G", 0x4c400000, 0xffe007ff, LCD|WR_t|RD_C3, I1 },
316{"ctc0", "t,G", 0x40c00000, 0xffe007ff, COD|RD_t|WR_CC, I1 },
317{"ctc1", "t,G", 0x44c00000, 0xffe007ff, COD|RD_t|WR_CC|FP_S, I1 },
318{"ctc1", "t,S", 0x44c00000, 0xffe007ff, COD|RD_t|WR_CC|FP_S, I1 },
319{"ctc2", "t,G", 0x48c00000, 0xffe007ff, COD|RD_t|WR_CC, I1 },
320{"ctc3", "t,G", 0x4cc00000, 0xffe007ff, COD|RD_t|WR_CC, I1 },
321{"cvt.d.l", "D,S", 0x46a00021, 0xffff003f, WR_D|RD_S|FP_D, I3 },
322{"cvt.d.s", "D,S", 0x46000021, 0xffff003f, WR_D|RD_S|FP_D|FP_S, I1 },
323{"cvt.d.w", "D,S", 0x46800021, 0xffff003f, WR_D|RD_S|FP_D, I1 },
324{"cvt.l.d", "D,S", 0x46200025, 0xffff003f, WR_D|RD_S|FP_D, I3 },
325{"cvt.l.s", "D,S", 0x46000025, 0xffff003f, WR_D|RD_S|FP_S, I3 },
326{"cvt.s.l", "D,S", 0x46a00020, 0xffff003f, WR_D|RD_S|FP_S, I3 },
327{"cvt.s.d", "D,S", 0x46200020, 0xffff003f, WR_D|RD_S|FP_S|FP_D, I1 },
328{"cvt.s.w", "D,S", 0x46800020, 0xffff003f, WR_D|RD_S|FP_S, I1 },
329{"cvt.w.d", "D,S", 0x46200024, 0xffff003f, WR_D|RD_S|FP_D, I1 },
330{"cvt.w.s", "D,S", 0x46000024, 0xffff003f, WR_D|RD_S|FP_S, I1 },
91866cc9 331{"dabs", "d,v", 0, (int) M_DABS, INSN_MACRO, I3 },
d0efa46b 332{"dadd", "d,v,t", 0x0000002c, 0xfc0007ff, WR_d|RD_s|RD_t, I3 },
91866cc9 333{"dadd", "t,r,I", 0, (int) M_DADD_I, INSN_MACRO, I3 },
d0efa46b
JL
334{"daddi", "t,r,j", 0x60000000, 0xfc000000, WR_t|RD_s, I3 },
335{"daddiu", "t,r,j", 0x64000000, 0xfc000000, WR_t|RD_s, I3 },
336{"daddu", "d,v,t", 0x0000002d, 0xfc0007ff, WR_d|RD_s|RD_t, I3 },
91866cc9 337{"daddu", "t,r,I", 0, (int) M_DADDU_I, INSN_MACRO, I3 },
a3066d9a
KR
338 /* start-sanitize-vr5400 */
339{"dbreak", "", 0x7000003f, 0xffffffff, 0, N5 },
340 /* end-sanitize-vr5400 */
a21e1e96 341/* dctr and dctw are used on the r5000. */
d0efa46b
JL
342{"dctr", "o(b)", 0xbc050000, 0xfc1f0000, RD_b, I3 },
343{"dctw", "o(b)", 0xbc090000, 0xfc1f0000, RD_b, I3 },
0cca41d4 344{"deret", "", 0x4200001f, 0xffffffff, 0, G2 },
a9c686ad 345/* For ddiv, see the comments about div. */
d0efa46b 346{"ddiv", "z,s,t", 0x0000001e, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I3 },
91866cc9
JL
347{"ddiv", "d,v,t", 0, (int) M_DDIV_3, INSN_MACRO, I3 },
348{"ddiv", "d,v,I", 0, (int) M_DDIV_3I, INSN_MACRO, I3 },
a9c686ad 349/* For ddivu, see the comments about div. */
d0efa46b 350{"ddivu", "z,s,t", 0x0000001f, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I3 },
91866cc9
JL
351{"ddivu", "d,v,t", 0, (int) M_DDIVU_3, INSN_MACRO, I3 },
352{"ddivu", "d,v,I", 0, (int) M_DDIVU_3I, INSN_MACRO, I3 },
a9c686ad
ILT
353/* The MIPS assembler treats the div opcode with two operands as
354 though the first operand appeared twice (the first operand is both
355 a source and a destination). To get the div machine instruction,
547998d2 356 you must use an explicit destination of $0. */
4bb0ae10
JL
357{"div", "z,s,t", 0x0000001a, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I1 },
358{"div", "z,t", 0x0000001a, 0xffe0ffff, RD_s|RD_t|WR_HI|WR_LO, I1 },
91866cc9
JL
359{"div", "d,v,t", 0, (int) M_DIV_3, INSN_MACRO, I1 },
360{"div", "d,v,I", 0, (int) M_DIV_3I, INSN_MACRO, I1 },
276c2d7d 361 /* start-sanitize-r5900 */
d0efa46b 362{"div1", "s,t", 0x7000001a, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, T5 },
276c2d7d 363 /* end-sanitize-r5900 */
4bb0ae10
JL
364{"div.d", "D,V,T", 0x46200003, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I1 },
365{"div.s", "D,V,T", 0x46000003, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, I1 },
a9c686ad 366/* For divu, see the comments about div. */
4bb0ae10
JL
367{"divu", "z,s,t", 0x0000001b, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I1 },
368{"divu", "z,t", 0x0000001b, 0xffe0ffff, RD_s|RD_t|WR_HI|WR_LO, I1 },
91866cc9
JL
369{"divu", "d,v,t", 0, (int) M_DIVU_3, INSN_MACRO, I1 },
370{"divu", "d,v,I", 0, (int) M_DIVU_3I, INSN_MACRO, I1 },
276c2d7d 371 /* start-sanitize-r5900 */
d0efa46b 372{"divu1", "s,t", 0x7000001b, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, T5 },
276c2d7d 373 /* end-sanitize-r5900 */
91866cc9 374{"dla", "t,A(b)", 0, (int) M_DLA_AB, INSN_MACRO, I3 },
d0efa46b
JL
375{"dli", "t,j", 0x24000000, 0xffe00000, WR_t, I3 }, /* addiu */
376{"dli", "t,i", 0x34000000, 0xffe00000, WR_t, I3 }, /* ori */
91866cc9 377{"dli", "t,I", 0, (int) M_DLI, INSN_MACRO, I3 },
d0efa46b
JL
378{"dmadd16", "s,t", 0x00000029, 0xfc00ffff, RD_s|RD_t|WR_LO|RD_LO, V1 },
379{"dmfc0", "t,G", 0x40200000, 0xffe007ff, LCD|WR_t|RD_C0, I3 },
380{"dmtc0", "t,G", 0x40a00000, 0xffe007ff, COD|RD_t|WR_C0|WR_CC, I3 },
4bb0ae10
JL
381{"dmfc1", "t,S", 0x44200000, 0xffe007ff, LCD|WR_t|RD_S|FP_S, I3 },
382{"dmtc1", "t,S", 0x44a00000, 0xffe007ff, COD|RD_t|WR_S|FP_S, I3 },
91866cc9
JL
383{"dmul", "d,v,t", 0, (int) M_DMUL, INSN_MACRO, I3 },
384{"dmul", "d,v,I", 0, (int) M_DMUL_I, INSN_MACRO, I3 },
385{"dmulo", "d,v,t", 0, (int) M_DMULO, INSN_MACRO, I3 },
386{"dmulo", "d,v,I", 0, (int) M_DMULO_I, INSN_MACRO, I3 },
387{"dmulou", "d,v,t", 0, (int) M_DMULOU, INSN_MACRO, I3 },
388{"dmulou", "d,v,I", 0, (int) M_DMULOU_I, INSN_MACRO, I3 },
0cca41d4 389{"dmult", "s,t", 0x0000001c, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I3},
fe9cb9d8 390 /* start-sanitize-tx49 */
0cca41d4 391{"dmult", "d,s,t", 0x0000001c, 0xfc0007ff, RD_s|RD_t|WR_HI|WR_LO|WR_d, T4},
fe9cb9d8 392 /* end-sanitize-tx49 */
0cca41d4 393{"dmultu", "s,t", 0x0000001d, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I3},
fe9cb9d8 394 /* start-sanitize-tx49 */
0cca41d4 395{"dmultu", "d,s,t", 0x0000001d, 0xfc0007ff, RD_s|RD_t|WR_HI|WR_LO|WR_d, T4},
fe9cb9d8 396 /* end-sanitize-tx49 */
d0efa46b
JL
397{"dneg", "d,w", 0x0000002e, 0xffe007ff, WR_d|RD_t, I3 }, /* dsub 0 */
398{"dnegu", "d,w", 0x0000002f, 0xffe007ff, WR_d|RD_t, I3 }, /* dsubu 0*/
399{"drem", "z,s,t", 0x0000001e, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I3 },
91866cc9
JL
400{"drem", "d,v,t", 3, (int) M_DREM_3, INSN_MACRO, I3 },
401{"drem", "d,v,I", 3, (int) M_DREM_3I, INSN_MACRO, I3 },
d0efa46b 402{"dremu", "z,s,t", 0x0000001f, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I3 },
91866cc9
JL
403{"dremu", "d,v,t", 3, (int) M_DREMU_3, INSN_MACRO, I3 },
404{"dremu", "d,v,I", 3, (int) M_DREMU_3I, INSN_MACRO, I3 },
a3066d9a
KR
405 /* start-sanitize-vr5400 */
406{"dret", "", 0x7000003e, 0xffffffff, 0, N5 },
407{"drorv", "d,t,s", 0x00000056, 0xfc0007ff, RD_t|RD_s|WR_d, N5 },
cfca14e7
KR
408{"dror32", "d,w,<", 0x0020003e, 0xffe0003f, WR_d|RD_t, N5 },
409{"dror", "d,w,>", 0x0020003e, 0xffe0003f, WR_d|RD_t, N5 },
410{"dror", "d,w,<", 0x00200036, 0xffe0003f, WR_d|RD_t, N5 },
a3066d9a 411 /* end-sanitize-vr5400 */
d0efa46b
JL
412{"dsllv", "d,t,s", 0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s, I3 },
413{"dsll32", "d,w,<", 0x0000003c, 0xffe0003f, WR_d|RD_t, I3 },
414{"dsll", "d,w,s", 0x00000014, 0xfc0007ff, WR_d|RD_t|RD_s, I3 }, /* dsllv */
415{"dsll", "d,w,>", 0x0000003c, 0xffe0003f, WR_d|RD_t, I3 }, /* dsll32 */
416{"dsll", "d,w,<", 0x00000038, 0xffe0003f, WR_d|RD_t, I3 },
417{"dsrav", "d,t,s", 0x00000017, 0xfc0007ff, WR_d|RD_t|RD_s, I3 },
418{"dsra32", "d,w,<", 0x0000003f, 0xffe0003f, WR_d|RD_t, I3 },
419{"dsra", "d,w,s", 0x00000017, 0xfc0007ff, WR_d|RD_t|RD_s, I3 }, /* dsrav */
420{"dsra", "d,w,>", 0x0000003f, 0xffe0003f, WR_d|RD_t, I3 }, /* dsra32 */
421{"dsra", "d,w,<", 0x0000003b, 0xffe0003f, WR_d|RD_t, I3 },
422{"dsrlv", "d,t,s", 0x00000016, 0xfc0007ff, WR_d|RD_t|RD_s, I3 },
423{"dsrl32", "d,w,<", 0x0000003e, 0xffe0003f, WR_d|RD_t, I3 },
424{"dsrl", "d,w,s", 0x00000016, 0xfc0007ff, WR_d|RD_t|RD_s, I3 }, /* dsrlv */
425{"dsrl", "d,w,>", 0x0000003e, 0xffe0003f, WR_d|RD_t, I3 }, /* dsrl32 */
426{"dsrl", "d,w,<", 0x0000003a, 0xffe0003f, WR_d|RD_t, I3 },
427{"dsub", "d,v,t", 0x0000002e, 0xfc0007ff, WR_d|RD_s|RD_t, I3 },
91866cc9 428{"dsub", "d,v,I", 0, (int) M_DSUB_I, INSN_MACRO, I3 },
d0efa46b 429{"dsubu", "d,v,t", 0x0000002f, 0xfc0007ff, WR_d|RD_s|RD_t, I3 },
91866cc9 430{"dsubu", "d,v,I", 0, (int) M_DSUBU_I, INSN_MACRO, I3 },
b0326e92 431{"eret", "", 0x42000018, 0xffffffff, 0, I3 },
4bb0ae10
JL
432{"floor.l.d", "D,S", 0x4620000b, 0xffff003f, WR_D|RD_S|FP_D, I3 },
433{"floor.l.s", "D,S", 0x4600000b, 0xffff003f, WR_D|RD_S|FP_S, I3 },
434{"floor.w.d", "D,S", 0x4620000f, 0xffff003f, WR_D|RD_S|FP_D, I2 },
435{"floor.w.s", "D,S", 0x4600000f, 0xffff003f, WR_D|RD_S|FP_S, I2 },
d0efa46b
JL
436{"flushi", "", 0xbc010000, 0xffffffff, 0, L1 },
437{"flushd", "", 0xbc020000, 0xffffffff, 0, L1 },
438{"flushid", "", 0xbc030000, 0xffffffff, 0, L1 },
439{"hibernate","", 0x42000023, 0xffffffff, 0, V1 },
4bb0ae10
JL
440{"jr", "s", 0x00000008, 0xfc1fffff, UBD|RD_s, I1 },
441{"j", "s", 0x00000008, 0xfc1fffff, UBD|RD_s, I1 }, /* jr */
942a4965
ILT
442/* SVR4 PIC code requires special handling for j, so it must be a
443 macro. */
91866cc9 444{"j", "a", 0, (int) M_J_A, INSN_MACRO, I1 },
942a4965
ILT
445/* This form of j is used by the disassembler and internally by the
446 assembler, but will never match user input (because the line above
447 will match first). */
4bb0ae10
JL
448{"j", "a", 0x08000000, 0xfc000000, UBD, I1 },
449{"jalr", "s", 0x0000f809, 0xfc1fffff, UBD|RD_s|WR_d, I1 },
450{"jalr", "d,s", 0x00000009, 0xfc1f07ff, UBD|RD_s|WR_d, I1 },
942a4965
ILT
451/* SVR4 PIC code requires special handling for jal, so it must be a
452 macro. */
91866cc9
JL
453{"jal", "d,s", 0, (int) M_JAL_2, INSN_MACRO, I1 },
454{"jal", "s", 0, (int) M_JAL_1, INSN_MACRO, I1 },
455{"jal", "a", 0, (int) M_JAL_A, INSN_MACRO, I1 },
942a4965
ILT
456/* This form of jal is used by the disassembler and internally by the
457 assembler, but will never match user input (because the line above
458 will match first). */
4bb0ae10 459{"jal", "a", 0x0c000000, 0xfc000000, UBD|WR_31, I1 },
b7dd310d
GRK
460 /* jalx really should only be avaliable if mips16 is available,
461 but for now make it I1. */
462{"jalx", "a", 0x74000000, 0xfc000000, UBD|WR_31, I1 },
91866cc9 463{"la", "t,A(b)", 0, (int) M_LA_AB, INSN_MACRO, I1 },
4bb0ae10 464{"lb", "t,o(b)", 0x80000000, 0xfc000000, LDD|RD_b|WR_t, I1 },
91866cc9 465{"lb", "t,A(b)", 0, (int) M_LB_AB, INSN_MACRO, I1 },
4bb0ae10 466{"lbu", "t,o(b)", 0x90000000, 0xfc000000, LDD|RD_b|WR_t, I1 },
91866cc9 467{"lbu", "t,A(b)", 0, (int) M_LBU_AB, INSN_MACRO, I1 },
d0efa46b 468{"ld", "t,o(b)", 0xdc000000, 0xfc000000, WR_t|RD_b, I3 },
91866cc9
JL
469{"ld", "t,o(b)", 0, (int) M_LD_OB, INSN_MACRO, I1 },
470{"ld", "t,A(b)", 0, (int) M_LD_AB, INSN_MACRO, I1 },
4bb0ae10
JL
471{"ldc1", "T,o(b)", 0xd4000000, 0xfc000000, CLD|RD_b|WR_T|FP_D, I2 },
472{"ldc1", "E,o(b)", 0xd4000000, 0xfc000000, CLD|RD_b|WR_T|FP_D, I2 },
91866cc9
JL
473{"ldc1", "T,A(b)", 0, (int) M_LDC1_AB, INSN_MACRO, I2 },
474{"ldc1", "E,A(b)", 0, (int) M_LDC1_AB, INSN_MACRO, I2 },
4bb0ae10 475{"l.d", "T,o(b)", 0xd4000000, 0xfc000000, CLD|RD_b|WR_T|FP_D, I2 }, /* ldc1 */
91866cc9
JL
476{"l.d", "T,o(b)", 0, (int) M_L_DOB, INSN_MACRO, I1 },
477{"l.d", "T,A(b)", 0, (int) M_L_DAB, INSN_MACRO, I1 },
d0efa46b 478{"ldc2", "E,o(b)", 0xd8000000, 0xfc000000, CLD|RD_b|WR_CC, I2 },
91866cc9 479{"ldc2", "E,A(b)", 0, (int) M_LDC2_AB, INSN_MACRO, I2 },
d0efa46b 480{"ldc3", "E,o(b)", 0xdc000000, 0xfc000000, CLD|RD_b|WR_CC, I2 },
91866cc9 481{"ldc3", "E,A(b)", 0, (int) M_LDC3_AB, INSN_MACRO, I2 },
d0efa46b 482{"ldl", "t,o(b)", 0x68000000, 0xfc000000, LDD|WR_t|RD_b, I3 },
91866cc9 483{"ldl", "t,A(b)", 0, (int) M_LDL_AB, INSN_MACRO, I3 },
d0efa46b 484{"ldr", "t,o(b)", 0x6c000000, 0xfc000000, LDD|WR_t|RD_b, I3 },
91866cc9 485{"ldr", "t,A(b)", 0, (int) M_LDR_AB, INSN_MACRO, I3 },
d0efa46b 486{"ldxc1", "D,t(b)", 0x4c000001, 0xfc00f83f, LDD|WR_D|RD_t|RD_b, I4 },
4bb0ae10 487{"lh", "t,o(b)", 0x84000000, 0xfc000000, LDD|RD_b|WR_t, I1 },
91866cc9 488{"lh", "t,A(b)", 0, (int) M_LH_AB, INSN_MACRO, I1 },
4bb0ae10 489{"lhu", "t,o(b)", 0x94000000, 0xfc000000, LDD|RD_b|WR_t, I1 },
91866cc9 490{"lhu", "t,A(b)", 0, (int) M_LHU_AB, INSN_MACRO, I1 },
45b14705 491/* li is at the start of the table. */
91866cc9
JL
492{"li.d", "t,F", 0, (int) M_LI_D, INSN_MACRO, I1 },
493{"li.d", "T,L", 0, (int) M_LI_DD, INSN_MACRO, I1 },
494{"li.s", "t,f", 0, (int) M_LI_S, INSN_MACRO, I1 },
495{"li.s", "T,l", 0, (int) M_LI_SS, INSN_MACRO, I1 },
d0efa46b 496{"ll", "t,o(b)", 0xc0000000, 0xfc000000, LDD|RD_b|WR_t, I2 },
91866cc9 497{"ll", "t,A(b)", 0, (int) M_LL_AB, INSN_MACRO, I2 },
d0efa46b 498{"lld", "t,o(b)", 0xd0000000, 0xfc000000, LDD|RD_b|WR_t, I3 },
91866cc9 499{"lld", "t,A(b)", 0, (int) M_LLD_AB, INSN_MACRO, I3 },
4bb0ae10 500{"lui", "t,u", 0x3c000000, 0xffe00000, WR_t, I1 },
276c2d7d 501 /* start-sanitize-r5900 */
d0efa46b 502{"lq", "t,o(b)", 0x78000000, 0xfc000000, WR_t|RD_b, T5 },
276c2d7d 503 /* end-sanitize-r5900 */
4bb0ae10 504{"lw", "t,o(b)", 0x8c000000, 0xfc000000, LDD|RD_b|WR_t, I1 },
91866cc9 505{"lw", "t,A(b)", 0, (int) M_LW_AB, INSN_MACRO, I1 },
4bb0ae10 506{"lwc0", "E,o(b)", 0xc0000000, 0xfc000000, CLD|RD_b|WR_CC, I1 },
91866cc9 507{"lwc0", "E,A(b)", 0, (int) M_LWC0_AB, INSN_MACRO, I1 },
4bb0ae10
JL
508{"lwc1", "T,o(b)", 0xc4000000, 0xfc000000, CLD|RD_b|WR_T|FP_S, I1 },
509{"lwc1", "E,o(b)", 0xc4000000, 0xfc000000, CLD|RD_b|WR_T|FP_S, I1 },
91866cc9
JL
510{"lwc1", "T,A(b)", 0, (int) M_LWC1_AB, INSN_MACRO, I1 },
511{"lwc1", "E,A(b)", 0, (int) M_LWC1_AB, INSN_MACRO, I1 },
4bb0ae10 512{"l.s", "T,o(b)", 0xc4000000, 0xfc000000, CLD|RD_b|WR_T|FP_S, I1 }, /* lwc1 */
91866cc9 513{"l.s", "T,A(b)", 0, (int) M_LWC1_AB, INSN_MACRO, I1 },
4bb0ae10 514{"lwc2", "E,o(b)", 0xc8000000, 0xfc000000, CLD|RD_b|WR_CC, I1 },
91866cc9 515{"lwc2", "E,A(b)", 0, (int) M_LWC2_AB, INSN_MACRO, I1 },
4bb0ae10 516{"lwc3", "E,o(b)", 0xcc000000, 0xfc000000, CLD|RD_b|WR_CC, I1 },
91866cc9 517{"lwc3", "E,A(b)", 0, (int) M_LWC3_AB, INSN_MACRO, I1 },
4bb0ae10 518{"lwl", "t,o(b)", 0x88000000, 0xfc000000, LDD|RD_b|WR_t, I1 },
91866cc9 519{"lwl", "t,A(b)", 0, (int) M_LWL_AB, INSN_MACRO, I1 },
d0efa46b 520{"lcache", "t,o(b)", 0x88000000, 0xfc000000, LDD|RD_b|WR_t, I2 }, /* same */
91866cc9 521{"lcache", "t,A(b)", 0, (int) M_LWL_AB, INSN_MACRO, I2 }, /* as lwl */
4bb0ae10 522{"lwr", "t,o(b)", 0x98000000, 0xfc000000, LDD|RD_b|WR_t, I1 },
91866cc9 523{"lwr", "t,A(b)", 0, (int) M_LWR_AB, INSN_MACRO, I1 },
d0efa46b 524{"flush", "t,o(b)", 0x98000000, 0xfc000000, LDD|RD_b|WR_t, I2 }, /* same */
91866cc9 525{"flush", "t,A(b)", 0, (int) M_LWR_AB, INSN_MACRO, I2 }, /* as lwr */
d0efa46b 526{"lwu", "t,o(b)", 0x9c000000, 0xfc000000, LDD|RD_b|WR_t, I3 },
91866cc9 527{"lwu", "t,A(b)", 0, (int) M_LWU_AB, INSN_MACRO, I3 },
d0efa46b 528{"lwxc1", "D,t(b)", 0x4c000000, 0xfc00f83f, LDD|WR_D|RD_t|RD_b, I4 },
779b65bf
GRK
529 /* start-sanitize-vr4320 */
530{"mac", "s,t", 0x00000028, 0xfc00ffff, RD_s|RD_t|MOD_HILO, N4},
46bb89f0
GRK
531{"dmac", "s,t", 0x00000029, 0xfc00ffff, RD_s|RD_t|MOD_LO, N4},
532 /* end-sanitize-vr4320 */
533 /* start-sanitize-vr4320 */
534{"macc", "d,s,t", 0x000000A8, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d,N4},
779b65bf 535 /* end-sanitize-vr4320 */
a3066d9a 536 /* start-sanitize-vr5400 */
46bb89f0
GRK
537{"macc", "d,s,t", 0x00000158, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d,N5},
538 /* end-sanitize-vr5400 */
539 /* start-sanitize-vr4320 */
540{"maccu", "d,s,t", 0x000000E8, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d,N4},
541 /* end-sanitize-vr4320 */
542 /* start-sanitize-vr5400 */
543{"maccu", "d,s,t", 0x00000159, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d,N5},
544 /* end-sanitize-vr5400 */
545 /* start-sanitize-vr4320 */
546{"macchi", "d,s,t", 0x000002A8, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d,N4},
547 /* end-sanitize-vr4320 */
548 /* start-sanitize-vr5400 */
549{"macchi", "d,s,t", 0x00000358, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d,N5},
550 /* end-sanitize-vr5400 */
551 /* start-sanitize-vr4320 */
552{"macchiu", "d,s,t", 0x000002E8, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d,N4},
553 /* end-sanitize-vr4320 */
554 /* start-sanitize-vr5400 */
555{"macchiu", "d,s,t", 0x00000359, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d,N5},
a3066d9a 556 /* end-sanitize-vr5400 */
d0efa46b
JL
557{"mad", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO|RD_HI|RD_LO, P3 },
558{"madu", "s,t", 0x70000001, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO|RD_HI|RD_LO, P3 },
4bb0ae10
JL
559{"madd.d", "D,R,S,T", 0x4c000021, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, I4 },
560{"madd.s", "D,R,S,T", 0x4c000020, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_S, I4 },
561/* start-sanitize-r5900 */
bac914a5 562{"madd.s", "D,S,T", 0x4600001c, 0xffe007ff, WR_D|RD_S|RD_T|FP_S, T5 },
a2768484 563 /* end-sanitize-r5900 */
d0efa46b 564{"madd", "s,t", 0x0000001c, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, L1 },
0cca41d4
GRK
565{"madd", "s,t", 0x70000000, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, G1 },
566{"madd", "d,s,t", 0x70000000, 0xfc0007ff, RD_s|RD_t|WR_HI|WR_LO|WR_d, G1 },
276c2d7d 567 /* start-sanitize-r5900 */
d0efa46b
JL
568{"madd1", "s,t", 0x70000020, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, T5 },
569{"madd1", "d,s,t", 0x70000020, 0xfc0007ff, RD_s|RD_t|WR_HI|WR_LO|WR_d, T5 },
276c2d7d 570 /* end-sanitize-r5900 */
d0efa46b 571{"maddu", "s,t", 0x0000001d, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, L1 },
0cca41d4
GRK
572{"maddu", "s,t", 0x70000001, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, G1 },
573{"maddu", "d,s,t", 0x70000001, 0xfc0007ff, RD_s|RD_t|WR_HI|WR_LO|WR_d, G1 },
276c2d7d 574 /* start-sanitize-r5900 */
d0efa46b
JL
575{"maddu1", "s,t", 0x70000021, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, T5 },
576{"maddu1", "d,s,t", 0x70000021, 0xfc0007ff, RD_s|RD_t|WR_HI|WR_LO|WR_d, T5 },
e3d2cd9f
ILT
577{"adda.s", "S,T", 0x46000018, 0xffe007ff, RD_S|RD_T|FP_S, T5 },
578{"madda.s", "S,T", 0x4600001e, 0xffe007ff, RD_S|RD_T|FP_S, T5 },
579{"max.s", "D,S,T", 0x46000028, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, T5 },
bac914a5 580{"min.s", "D,S,T", 0x46000029, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, T5 },
e3d2cd9f 581{"msuba.s", "S,T", 0x4600001f, 0xffe007ff, RD_S|RD_T|FP_S, T5 },
7409c678 582{"mula.s", "S,T", 0x4600001a, 0xffe007ff, RD_S|RD_T|FP_S, T5 },
e3d2cd9f
ILT
583{"suba.s", "S,T", 0x46000019, 0xffe007ff, RD_S|RD_T|FP_S, T5 },
584{"di", "", 0x42000039, 0xffffffff, WR_C0, T5 },
585{"ei", "", 0x42000038, 0xffffffff, WR_C0, T5 },
586{"mfbpc", "t", 0x4000c000, 0xffe0ffff, RD_C0|WR_t, T5 },
587{"mfdab", "t", 0x4000c004, 0xffe0ffff, RD_C0|WR_t, T5 },
588{"mfdabm", "t", 0x4000c005, 0xffe0ffff, RD_C0|WR_t, T5 },
589{"mfdvb", "t", 0x4000c006, 0xffe0ffff, RD_C0|WR_t, T5 },
590{"mfdvbm", "t", 0x4000c007, 0xffe0ffff, RD_C0|WR_t, T5 },
591{"mfiab", "t", 0x4000c002, 0xffe0ffff, RD_C0|WR_t, T5 },
592{"mfiabm", "t", 0x4000c003, 0xffe0ffff, RD_C0|WR_t, T5 },
593{"mtbpc", "t", 0x4080c000, 0xffe0ffff, WR_C0|RD_t, T5 },
594{"mtdab", "t", 0x4080c004, 0xffe0ffff, WR_C0|RD_t, T5 },
595{"mtdabm", "t", 0x4080c005, 0xffe0ffff, WR_C0|RD_t, T5 },
596{"mtdvb", "t", 0x4080c006, 0xffe0ffff, WR_C0|RD_t, T5 },
597{"mtdvbm", "t", 0x4080c007, 0xffe0ffff, WR_C0|RD_t, T5 },
598{"mtiab", "t", 0x4080c002, 0xffe0ffff, WR_C0|RD_t, T5 },
599{"mtiabm", "t", 0x4080c003, 0xffe0ffff, WR_C0|RD_t, T5 },
276c2d7d 600 /* end-sanitize-r5900 */
d0efa46b 601{"madd16", "s,t", 0x00000028, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO|RD_HI|RD_LO, V1 },
a3066d9a
KR
602 /* start-sanitize-vr5400 */
603{"mfpc", "t,P", 0x4000c801, 0xffe0ffc1, RD_C0|WR_t, N5 },
91866cc9
JL
604 /* end-sanitize-vr5400 */
605 /* start-sanitize-r5900 */
606{"mfpc", "t,P", 0x4000c801, 0xffe0ffc1, RD_C0|WR_t, T5 },
607 /* end-sanitize-r5900 */
608 /* start-sanitize-vr5400 */
a3066d9a 609{"mfps", "t,P", 0x4000c800, 0xffe0ffc1, RD_C0|WR_t, N5 },
91866cc9
JL
610 /* end-sanitize-vr5400 */
611 /* start-sanitize-r5900 */
612{"mfps", "t,P", 0x4000c800, 0xffe0ffc1, RD_C0|WR_t, T5 },
613 /* end-sanitize-r5900 */
614 /* start-sanitize-vr5400 */
a3066d9a 615{"mtpc", "t,P", 0x4080c801, 0xffe0ffc1, WR_C0|RD_t, N5 },
91866cc9
JL
616 /* end-sanitize-vr5400 */
617 /* start-sanitize-r5900 */
618{"mtpc", "t,P", 0x4080c801, 0xffe0ffc1, WR_C0|RD_t, T5 },
619 /* end-sanitize-r5900 */
620 /* start-sanitize-vr5400 */
a3066d9a
KR
621{"mtps", "t,P", 0x4080c800, 0xffe0ffc1, WR_C0|RD_t, N5 },
622 /* end-sanitize-vr5400 */
91866cc9
JL
623 /* start-sanitize-r5900 */
624{"mtps", "t,P", 0x4080c800, 0xffe0ffc1, WR_C0|RD_t, T5 },
625 /* end-sanitize-r5900 */
4bb0ae10
JL
626{"mfc0", "t,G", 0x40000000, 0xffe007ff, LCD|WR_t|RD_C0, I1 },
627{"mfc1", "t,S", 0x44000000, 0xffe007ff, LCD|WR_t|RD_S|FP_S, I1 },
628{"mfc1", "t,G", 0x44000000, 0xffe007ff, LCD|WR_t|RD_S|FP_S, I1 },
629{"mfc2", "t,G", 0x48000000, 0xffe007ff, LCD|WR_t|RD_C2, I1 },
630{"mfc3", "t,G", 0x4c000000, 0xffe007ff, LCD|WR_t|RD_C3, I1 },
a3066d9a
KR
631 /* start-sanitize-vr5400 */
632{"mfdr", "t,G", 0x7000003d, 0xffe007ff, LCD|WR_t|RD_C0, N5 },
633 /* end-sanitize-vr5400 */
4bb0ae10 634{"mfhi", "d", 0x00000010, 0xffff07ff, WR_d|RD_HI, I1 },
276c2d7d 635 /* start-sanitize-r5900 */
d0efa46b 636{"mfhi1", "d", 0x70000010, 0xffff07ff, WR_d|RD_HI, T5 },
276c2d7d 637 /* end-sanitize-r5900 */
4bb0ae10 638{"mflo", "d", 0x00000012, 0xffff07ff, WR_d|RD_LO, I1 },
276c2d7d 639 /* start-sanitize-r5900 */
d0efa46b
JL
640{"mflo1", "d", 0x70000012, 0xffff07ff, WR_d|RD_LO, T5 },
641{"mfsa", "d", 0x00000028, 0xffff07ff, WR_d, T5 },
276c2d7d 642 /* end-sanitize-r5900 */
4bb0ae10
JL
643{"mov.d", "D,S", 0x46200006, 0xffff003f, WR_D|RD_S|FP_D, I1 },
644{"mov.s", "D,S", 0x46000006, 0xffff003f, WR_D|RD_S|FP_S, I1 },
645{"movf", "d,s,N", 0x00000001, 0xfc0307ff, WR_d|RD_s|RD_CC|FP_D|FP_S, I4 },
646{"movf.d", "D,S,N", 0x46200011, 0xffe3003f, WR_D|RD_S|RD_CC|FP_D, I4 },
647{"movf.s", "D,S,N", 0x46000011, 0xffe3003f, WR_D|RD_S|RD_CC|FP_S, I4 },
d0efa46b 648{"movn", "d,v,t", 0x0000000b, 0xfc0007ff, WR_d|RD_s|RD_t, I4 },
a2768484 649 /* start-sanitize-r5900 */
4bb0ae10 650{"movn", "d,v,t", 0x0000000b, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
a2768484 651 /* end-sanitize-r5900 */
a0539c61 652{"ffc", "d,v", 0x0000000b, 0xfc1f07ff, WR_d|RD_s,L1 },
4bb0ae10
JL
653{"movn.d", "D,S,t", 0x46200013, 0xffe0003f, WR_D|RD_S|RD_t|FP_D, I4 },
654{"movn.s", "D,S,t", 0x46000013, 0xffe0003f, WR_D|RD_S|RD_t|FP_S, I4 },
d0efa46b 655{"movt", "d,s,N", 0x00010001, 0xfc0307ff, WR_d|RD_s|RD_CC, I4 },
4bb0ae10
JL
656{"movt.d", "D,S,N", 0x46210011, 0xffe3003f, WR_D|RD_S|RD_CC|FP_D, I4 },
657{"movt.s", "D,S,N", 0x46010011, 0xffe3003f, WR_D|RD_S|RD_CC|FP_S, I4 },
d0efa46b 658{"movz", "d,v,t", 0x0000000a, 0xfc0007ff, WR_d|RD_s|RD_t, I4 },
a2768484 659 /* start-sanitize-r5900 */
4bb0ae10 660{"movz", "d,v,t", 0x0000000a, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
a2768484 661 /* end-sanitize-r5900 */
a0539c61 662{"ffs", "d,v", 0x0000000a, 0xfc1f07ff, WR_d|RD_s,L1 },
4bb0ae10
JL
663{"movz.d", "D,S,t", 0x46200012, 0xffe0003f, WR_D|RD_S|RD_t|FP_D, I4 },
664{"movz.s", "D,S,t", 0x46000012, 0xffe0003f, WR_D|RD_S|RD_t|FP_S, I4 },
a3066d9a
KR
665 /* start-sanitize-vr5400 */
666{"msac", "d,s,t", 0x000001d8, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d, N5 },
667{"msacu", "d,s,t", 0x000001d9, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d, N5 },
668{"msachi", "d,s,t", 0x000003d8, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d, N5 },
669{"msachiu", "d,s,t", 0x000003d9, 0xfc0007ff, RD_s|RD_t|MOD_HILO|WR_d, N5 },
670 /* end-sanitize-vr5400 */
45b14705 671/* move is at the top of the table. */
4bb0ae10
JL
672{"msub.d", "D,R,S,T", 0x4c000029, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, I4 },
673{"msub.s", "D,R,S,T", 0x4c000028, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_S, I4 },
674/* start-sanitize-r5900 */
bac914a5 675{"msub.s", "D,S,T", 0x4600001d, 0xffe007ff, WR_D|RD_S|RD_T|FP_S, T5 },
4bb0ae10
JL
676/* end-sanitize-r5900 */
677{"msub", "s,t", 0x0000001e, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO,L1 },
678{"msubu", "s,t", 0x0000001f, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO,L1 },
679{"mtc0", "t,G", 0x40800000, 0xffe007ff, COD|RD_t|WR_C0|WR_CC, I1 },
680{"mtc1", "t,S", 0x44800000, 0xffe007ff, COD|RD_t|WR_S|FP_S, I1 },
681{"mtc1", "t,G", 0x44800000, 0xffe007ff, COD|RD_t|WR_S|FP_S, I1 },
682{"mtc2", "t,G", 0x48800000, 0xffe007ff, COD|RD_t|WR_C2|WR_CC, I1 },
683{"mtc3", "t,G", 0x4c800000, 0xffe007ff, COD|RD_t|WR_C3|WR_CC, I1 },
a3066d9a
KR
684 /* start-sanitize-vr5400 */
685{"mtdr", "t,G", 0x7080003d, 0xffe007ff, COD|RD_t|WR_C0, N5 },
686 /* end-sanitize-vr5400 */
4bb0ae10 687{"mthi", "s", 0x00000011, 0xfc1fffff, RD_s|WR_HI, I1 },
276c2d7d 688 /* start-sanitize-r5900 */
d0efa46b 689{"mthi1", "s", 0x70000011, 0xfc1fffff, RD_s|WR_HI, T5 },
276c2d7d 690 /* end-sanitize-r5900 */
4bb0ae10 691{"mtlo", "s", 0x00000013, 0xfc1fffff, RD_s|WR_LO, I1 },
276c2d7d 692 /* start-sanitize-r5900 */
d0efa46b 693{"mtlo1", "s", 0x70000013, 0xfc1fffff, RD_s|WR_LO, T5 },
6546a590 694{"mtsa", "s", 0x00000029, 0xfc1fffff, RD_s, T5 },
d0efa46b
JL
695{"mtsab", "s,j", 0x04180000, 0xfc1f0000, RD_s, T5 },
696{"mtsah", "s,j", 0x04190000, 0xfc1f0000, RD_s, T5 },
276c2d7d 697 /* end-sanitize-r5900 */
4bb0ae10
JL
698{"mul.d", "D,V,T", 0x46200002, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I1 },
699{"mul.s", "D,V,T", 0x46000002, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, I1 },
46bb89f0
GRK
700{"mul", "d,v,t", 0x70000002, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO,P3},
701 /* start-sanitize-vr4320 */
702{"mul", "d,s,t", 0x00000128, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N4},
703 /* end-sanitize-vr4320 */
a3066d9a 704 /* start-sanitize-vr5400 */
46bb89f0 705{"mul", "d,s,t", 0x00000058, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5},
a3066d9a 706 /* end-sanitize-vr5400 */
91866cc9
JL
707{"mul", "d,v,t", 0, (int) M_MUL, INSN_MACRO, I1 },
708{"mul", "d,v,I", 0, (int) M_MUL_I, INSN_MACRO, I1 },
709{"mulo", "d,v,t", 0, (int) M_MULO, INSN_MACRO, I1 },
710{"mulo", "d,v,I", 0, (int) M_MULO_I, INSN_MACRO, I1 },
711{"mulou", "d,v,t", 0, (int) M_MULOU, INSN_MACRO, I1 },
712{"mulou", "d,v,I", 0, (int) M_MULOU_I, INSN_MACRO, I1 },
46bb89f0
GRK
713 /* start-sanitize-vr4320 */
714{"mulu", "d,s,t", 0x00000168, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N4},
715 /* end-sanitize-vr4320 */
716 /* start-sanitize-vr5400 */
717{"mulu", "d,s,t", 0x00000059, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5},
718 /* end-sanitize-vr5400 */
719 /* start-sanitize-vr4320 */
720{"mulhi", "d,s,t", 0x00000328, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N4},
721 /* end-sanitize-vr4320 */
722 /* start-sanitize-vr5400 */
723{"mulhi", "d,s,t", 0x00000258, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5},
724 /* end-sanitize-vr5400 */
725 /* start-sanitize-vr4320 */
726{"mulhiu", "d,s,t", 0x00000368, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N4},
727 /* end-sanitize-vr4320 */
728 /* start-sanitize-vr5400 */
729{"mulhiu", "d,s,t", 0x00000259, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5},
730 /* end-sanitize-vr5400 */
a3066d9a
KR
731 /* start-sanitize-vr5400 */
732{"muls", "d,s,t", 0x000000d8, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 },
733{"mulsu", "d,s,t", 0x000000d9, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 },
734{"mulshi", "d,s,t", 0x000002d8, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 },
735{"mulshiu", "d,s,t", 0x000002d9, 0xfc0007ff, RD_s|RD_t|WR_HILO|WR_d, N5 },
736 /* end-sanitize-vr5400 */
b0326e92 737{"mult", "s,t", 0x00000018, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I1},
80ae705d 738{"mult", "d,s,t", 0x00000018, 0xfc0007ff, RD_s|RD_t|WR_HI|WR_LO|WR_d, G1},
276c2d7d 739 /* start-sanitize-r5900 */
b0326e92 740{"mult1", "d,s,t", 0x70000018, 0xfc0007ff, RD_s|RD_t|WR_HI|WR_LO|WR_d, T5},
276c2d7d 741 /* end-sanitize-r5900 */
b0326e92 742{"multu", "s,t", 0x00000019, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I1},
80ae705d 743{"multu", "d,s,t", 0x00000019, 0xfc0007ff, RD_s|RD_t|WR_HI|WR_LO|WR_d, G1},
276c2d7d 744 /* start-sanitize-r5900 */
b0326e92 745{"multu1", "d,s,t", 0x70000019, 0xfc0007ff, RD_s|RD_t|WR_HI|WR_LO|WR_d, T5},
276c2d7d 746 /* end-sanitize-r5900 */
4bb0ae10
JL
747{"neg", "d,w", 0x00000022, 0xffe007ff, WR_d|RD_t, I1 }, /* sub 0 */
748{"negu", "d,w", 0x00000023, 0xffe007ff, WR_d|RD_t, I1 }, /* subu 0 */
749{"neg.d", "D,V", 0x46200007, 0xffff003f, WR_D|RD_S|FP_D, I1 },
750{"neg.s", "D,V", 0x46000007, 0xffff003f, WR_D|RD_S|FP_S, I1 },
751{"nmadd.d", "D,R,S,T", 0x4c000031, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, I4 },
752{"nmadd.s", "D,R,S,T", 0x4c000030, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_S, I4 },
753{"nmsub.d", "D,R,S,T", 0x4c000039, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_D, I4 },
754{"nmsub.s", "D,R,S,T", 0x4c000038, 0xfc00003f, RD_R|RD_S|RD_T|WR_D|FP_S, I4 },
45b14705 755/* nop is at the start of the table. */
4bb0ae10 756{"nor", "d,v,t", 0x00000027, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },
91866cc9 757{"nor", "t,r,I", 0, (int) M_NOR_I, INSN_MACRO, I1 },
581c03af 758{"not", "d,v", 0x00000027, 0xfc1f07ff, WR_d|RD_s|RD_t, I1 },/*nor d,s,0*/
4bb0ae10 759{"or", "d,v,t", 0x00000025, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },
91866cc9 760{"or", "t,r,I", 0, (int) M_OR_I, INSN_MACRO, I1 },
4bb0ae10 761{"ori", "t,r,i", 0x34000000, 0xfc000000, WR_t|RD_s, I1 },
276c2d7d
GRK
762
763 /* start-sanitize-r5900 */
d0efa46b
JL
764{"pabsh", "d,t", 0x70000168, 0xffe007ff, WR_d|RD_t, T5 },
765{"pabsw", "d,t", 0x70000068, 0xffe007ff, WR_d|RD_t, T5 },
766{"paddb", "d,v,t", 0x70000208, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
767{"paddh", "d,v,t", 0x70000108, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
768{"paddw", "d,v,t", 0x70000008, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
769{"paddsb", "d,v,t", 0x70000608, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
770{"paddsh", "d,v,t", 0x70000508, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
771{"paddsw", "d,v,t", 0x70000408, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
772{"paddub", "d,v,t", 0x70000628, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
773{"padduh", "d,v,t", 0x70000528, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
774{"padduw", "d,v,t", 0x70000428, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
775{"padsbh", "d,v,t", 0x70000128, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
776{"pand", "d,v,t", 0x70000489, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
777{"pceqb", "d,v,t", 0x700002a8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
778{"pceqh", "d,v,t", 0x700001a8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
779{"pceqw", "d,v,t", 0x700000a8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d 780
d0efa46b
JL
781{"pcgtb", "d,v,t", 0x70000288, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
782{"pcgth", "d,v,t", 0x70000188, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
783{"pcgtw", "d,v,t", 0x70000088, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d 784
d0efa46b 785{"pcpyh", "d,t", 0x700006e9, 0xffe007ff, WR_d|RD_t, T5 },
276c2d7d 786
d0efa46b
JL
787{"pcpyld", "d,v,t", 0x70000389, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
788{"pcpyud", "d,v,t", 0x700003a9, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d 789
d0efa46b
JL
790{"pdivbw", "s,t", 0x70000749, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, T5 },
791{"pdivuw", "s,t", 0x70000369, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, T5 },
792{"pdivw", "s,t", 0x70000349, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, T5 },
276c2d7d 793
d0efa46b
JL
794{"pexch", "d,t", 0x700006a9, 0xffe007ff, WR_d|RD_t, T5 },
795{"pexcw", "d,t", 0x700007a9, 0xffe007ff, WR_d|RD_t, T5 },
796{"pexeh", "d,t", 0x70000689, 0xffe007ff, WR_d|RD_t, T5 },
797{"pexoh", "d,t", 0x70000689, 0xffe007ff, WR_d|RD_t, T5 },
798{"pexew", "d,t", 0x70000789, 0xffe007ff, WR_d|RD_t, T5 },
799{"pexow", "d,t", 0x70000789, 0xffe007ff, WR_d|RD_t, T5 },
276c2d7d 800
d0efa46b 801{"pext5", "d,t", 0x70000788, 0xffe007ff, WR_d|RD_t, T5 },
276c2d7d 802
d0efa46b
JL
803{"pextlb", "d,v,t", 0x70000688, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
804{"pextlh", "d,v,t", 0x70000588, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
805{"pextlw", "d,v,t", 0x70000488, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
806{"pextub", "d,v,t", 0x700006a8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
807{"pextuh", "d,v,t", 0x700005a8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
808{"pextuw", "d,v,t", 0x700004a8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d 809
d0efa46b
JL
810{"phmaddh", "d,v,t", 0x70000449, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO, T5 },
811{"phmsubh", "d,v,t", 0x70000549, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO, T5 },
276c2d7d 812
d0efa46b
JL
813{"pinth", "d,v,t", 0x70000289, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
814{"pinteh", "d,v,t", 0x700002a9, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
815{"pintoh", "d,v,t", 0x700002a9, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d 816
d0efa46b 817{"plzcw", "d,v", 0x70000004, 0xfc1f07ff, WR_d|RD_s, T5 },
276c2d7d 818
d0efa46b
JL
819{"pmaddh", "d,v,t", 0x70000409, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO, T5 },
820{"pmadduw", "d,v,t", 0x70000029, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO, T5 },
821{"pmaddw", "d,v,t", 0x70000009, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO, T5 },
276c2d7d 822
d0efa46b
JL
823{"pmaxh", "d,v,t", 0x700001c8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
824{"pmaxw", "d,v,t", 0x700000c8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d 825
d0efa46b
JL
826{"pmfhi", "d", 0x70000209, 0xffff07ff, WR_d|RD_HI, T5 },
827{"pmflo", "d", 0x70000249, 0xffff07ff, WR_d|RD_LO, T5 },
276c2d7d 828
d0efa46b
JL
829{"pmfhl.lw", "d", 0x70000030, 0xffff07ff, WR_d|RD_LO|RD_HI, T5 },
830{"pmfhl.uw", "d", 0x70000070, 0xffff07ff, WR_d|RD_LO|RD_HI, T5 },
831{"pmfhl.slw","d", 0x700000b0, 0xffff07ff, WR_d|RD_LO|RD_HI, T5 },
832{"pmfhl.lh", "d", 0x700000f0, 0xffff07ff, WR_d|RD_LO|RD_HI, T5 },
833{"pmfhl.sh", "d", 0x70000130, 0xffff07ff, WR_d|RD_LO|RD_HI, T5 },
276c2d7d 834
d0efa46b
JL
835{"pminh", "d,v,t", 0x700001e8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
836{"pminw", "d,v,t", 0x700000e8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d 837
d0efa46b
JL
838{"pmsubh", "d,v,t", 0x70000509, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO, T5 },
839{"pmsubw", "d,v,t", 0x70000109, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO, T5 },
276c2d7d 840
d0efa46b
JL
841{"pmthi", "v", 0x70000229, 0xfc1fffff, WR_HI|RD_s, T5 },
842{"pmtlo", "v", 0x70000269, 0xfc1fffff, WR_LO|RD_s, T5 },
276c2d7d 843
d0efa46b 844{"pmthl.lw", "v", 0x70000031, 0xfc1fffff, WR_HI|WR_LO|RD_s, T5 },
276c2d7d 845
d0efa46b
JL
846{"pmulth", "d,v,t", 0x70000709, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO, T5 },
847{"pmultuw", "d,v,t", 0x70000329, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO, T5 },
848{"pmultw", "d,v,t", 0x70000309, 0xfc0007ff, WR_d|RD_s|RD_t|WR_HI|WR_LO, T5 },
276c2d7d 849
d0efa46b
JL
850{"pnor", "d,v,t", 0x700004e9, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
851{"por", "d,v,t", 0x700004a9, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d 852
d0efa46b 853{"ppac5", "d,t", 0x700007c8, 0xffe007ff, WR_d|RD_t, T5 },
276c2d7d 854
d0efa46b
JL
855{"ppacb", "d,v,t", 0x700006c8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
856{"ppach", "d,v,t", 0x700005c8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
857{"ppacw", "d,v,t", 0x700004c8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d 858
d0efa46b
JL
859{"prevh", "d,t", 0x700006c9, 0xffe007ff, WR_d|RD_t, T5 },
860{"prot3w", "d,t", 0x700007c9, 0xffe007ff, WR_d|RD_t, T5 },
276c2d7d 861
d0efa46b
JL
862{"psllh", "d,t,<", 0x70000034, 0xffe0003f, WR_d|RD_t, T5 },
863{"psllvw", "d,t,s", 0x70000089, 0xfc0007ff, WR_d|RD_t|RD_s, T5 },
864{"psllw", "d,t,<", 0x7000003c, 0xffe0003f, WR_d|RD_t, T5 },
276c2d7d 865
d0efa46b
JL
866{"psrah", "d,t,<", 0x70000037, 0xffe0003f, WR_d|RD_t, T5 },
867{"psravw", "d,t,s", 0x700000e9, 0xfc0007ff, WR_d|RD_t|RD_s, T5 },
868{"psraw", "d,t,<", 0x7000003f, 0xffe0003f, WR_d|RD_t, T5 },
276c2d7d 869
d0efa46b
JL
870{"psrlh", "d,t,<", 0x70000036, 0xffe0003f, WR_d|RD_t, T5 },
871{"psrlvw", "d,t,s", 0x700000c9, 0xfc0007ff, WR_d|RD_t|RD_s, T5 },
872{"psrlw", "d,t,<", 0x7000003e, 0xffe0003f, WR_d|RD_t, T5 },
276c2d7d 873
d0efa46b
JL
874{"psubb", "d,v,t", 0x70000248, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
875{"psubh", "d,v,t", 0x70000148, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
876{"psubsb", "d,v,t", 0x70000648, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
877{"psubsh", "d,v,t", 0x70000548, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
878{"psubsw", "d,v,t", 0x70000448, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
879{"psubub", "d,v,t", 0x70000668, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
880{"psubuh", "d,v,t", 0x70000568, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
881{"psubuw", "d,v,t", 0x70000468, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
882{"psubw", "d,v,t", 0x70000048, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d 883
d0efa46b 884{"pxor", "d,v,t", 0x700004c9, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d
GRK
885 /* end-sanitize-r5900 */
886
fe9cb9d8 887{"pref", "k,o(b)", 0xcc000000, 0xfc000000, RD_b, G3 },
d0efa46b 888{"prefx", "h,t(b)", 0x4c00000f, 0xfc0007ff, RD_b|RD_t, I4 },
276c2d7d
GRK
889
890 /* start-sanitize-r5900 */
d0efa46b 891{"qfsrv", "d,v,t", 0x700006e8, 0xfc0007ff, WR_d|RD_s|RD_t, T5 },
276c2d7d
GRK
892 /* end-sanitize-r5900 */
893
4bb0ae10
JL
894{"recip.d", "D,S", 0x46200015, 0xffff003f, WR_D|RD_S|FP_D, I4 },
895{"recip.s", "D,S", 0x46000015, 0xffff003f, WR_D|RD_S|FP_S, I4 },
896{"rem", "z,s,t", 0x0000001a, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I1 },
91866cc9
JL
897{"rem", "d,v,t", 0, (int) M_REM_3, INSN_MACRO, I1 },
898{"rem", "d,v,I", 0, (int) M_REM_3I, INSN_MACRO, I1 },
4bb0ae10 899{"remu", "z,s,t", 0x0000001b, 0xfc00ffff, RD_s|RD_t|WR_HI|WR_LO, I1 },
91866cc9
JL
900{"remu", "d,v,t", 0, (int) M_REMU_3, INSN_MACRO, I1 },
901{"remu", "d,v,I", 0, (int) M_REMU_3I, INSN_MACRO, I1 },
b0326e92 902{"rfe", "", 0x42000010, 0xffffffff, 0, I1|T3 },
91866cc9
JL
903{"rol", "d,v,t", 0, (int) M_ROL, INSN_MACRO, I1 },
904{"rol", "d,v,I", 0, (int) M_ROL_I, INSN_MACRO, I1 },
a3066d9a
KR
905 /* start-sanitize-vr5400 */
906{"ror", "d,t,<", 0x00200002, 0xffe0003f, WR_d|RD_t, N5 },
907 /* end-sanitize-vr5400 */
91866cc9
JL
908{"ror", "d,v,t", 0, (int) M_ROR, INSN_MACRO, I1 },
909{"ror", "d,v,I", 0, (int) M_ROR_I, INSN_MACRO, I1 },
a3066d9a
KR
910 /* start-sanitize-vr5400 */
911{"rorv", "d,t,s", 0x00000046, 0xfc0007ff, RD_t|RD_s|WR_d, N5 },
912 /* end-sanitize-vr5400 */
4bb0ae10
JL
913{"round.l.d", "D,S", 0x46200008, 0xffff003f, WR_D|RD_S|FP_D, I3 },
914{"round.l.s", "D,S", 0x46000008, 0xffff003f, WR_D|RD_S|FP_S, I3 },
915{"round.w.d", "D,S", 0x4620000c, 0xffff003f, WR_D|RD_S|FP_D, I2 },
916{"round.w.s", "D,S", 0x4600000c, 0xffff003f, WR_D|RD_S|FP_S, I2 },
917{"rsqrt.d", "D,S", 0x46200016, 0xffff003f, WR_D|RD_S|FP_D, I4 },
918{"rsqrt.s", "D,S", 0x46000016, 0xffff003f, WR_D|RD_S|FP_S, I4 },
919/* start-sanitize-r5900 */
920{"rsqrt.s", "D,S", 0x46000016, 0xffff003f, WR_D|RD_S|FP_S, T5 },
921/* end-sanitize-r5900 */
922{"sb", "t,o(b)", 0xa0000000, 0xfc000000, SM|RD_t|RD_b, I1 },
91866cc9 923{"sb", "t,A(b)", 0, (int) M_SB_AB, INSN_MACRO, I1 },
d0efa46b 924{"sc", "t,o(b)", 0xe0000000, 0xfc000000, SM|RD_t|WR_t|RD_b, I2 },
91866cc9 925{"sc", "t,A(b)", 0, (int) M_SC_AB, INSN_MACRO, I2 },
d0efa46b 926{"scd", "t,o(b)", 0xf0000000, 0xfc000000, SM|RD_t|WR_t|RD_b, I3 },
91866cc9 927{"scd", "t,A(b)", 0, (int) M_SCD_AB, INSN_MACRO, I3 },
d0efa46b 928{"sd", "t,o(b)", 0xfc000000, 0xfc000000, SM|RD_t|RD_b, I3 },
91866cc9
JL
929{"sd", "t,o(b)", 0, (int) M_SD_OB, INSN_MACRO, I1 },
930{"sd", "t,A(b)", 0, (int) M_SD_AB, INSN_MACRO, I1 },
0cca41d4
GRK
931{"sdbbp", "", 0x0000000e, 0xffffffff, TRAP, G2 },
932{"sdbbp", "c", 0x0000000e, 0xfc00003f, TRAP, G2 },
4bb0ae10
JL
933{"sdc1", "T,o(b)", 0xf4000000, 0xfc000000, SM|RD_T|RD_b|FP_D, I2 },
934{"sdc1", "E,o(b)", 0xf4000000, 0xfc000000, SM|RD_T|RD_b|FP_D, I2 },
91866cc9
JL
935{"sdc1", "T,A(b)", 0, (int) M_SDC1_AB, INSN_MACRO, I2 },
936{"sdc1", "E,A(b)", 0, (int) M_SDC1_AB, INSN_MACRO, I2 },
d0efa46b 937{"sdc2", "E,o(b)", 0xf8000000, 0xfc000000, SM|RD_C2|RD_b, I2 },
91866cc9 938{"sdc2", "E,A(b)", 0, (int) M_SDC2_AB, INSN_MACRO, I2 },
d0efa46b 939{"sdc3", "E,o(b)", 0xfc000000, 0xfc000000, SM|RD_C3|RD_b, I2 },
91866cc9 940{"sdc3", "E,A(b)", 0, (int) M_SDC3_AB, INSN_MACRO, I2 },
e3d2cd9f 941{"s.d", "T,o(b)", 0xf4000000, 0xfc000000, SM|RD_T|RD_b|FP_D, I2 },
91866cc9
JL
942{"s.d", "T,o(b)", 0, (int) M_S_DOB, INSN_MACRO, I1 },
943{"s.d", "T,A(b)", 0, (int) M_S_DAB, INSN_MACRO, I1 },
d0efa46b 944{"sdl", "t,o(b)", 0xb0000000, 0xfc000000, SM|RD_t|RD_b, I3 },
91866cc9 945{"sdl", "t,A(b)", 0, (int) M_SDL_AB, INSN_MACRO, I3 },
d0efa46b 946{"sdr", "t,o(b)", 0xb4000000, 0xfc000000, SM|RD_t|RD_b, I3 },
91866cc9 947{"sdr", "t,A(b)", 0, (int) M_SDR_AB, INSN_MACRO, I3 },
d0efa46b 948{"sdxc1", "S,t(b)", 0x4c000009, 0xfc0007ff, SM|RD_S|RD_t|RD_b, I4 },
4bb0ae10
JL
949{"selsl", "d,v,t", 0x00000005, 0xfc0007ff, WR_d|RD_s|RD_t,L1 },
950{"selsr", "d,v,t", 0x00000001, 0xfc0007ff, WR_d|RD_s|RD_t,L1 },
91866cc9
JL
951{"seq", "d,v,t", 0, (int) M_SEQ, INSN_MACRO, I1 },
952{"seq", "d,v,I", 0, (int) M_SEQ_I, INSN_MACRO, I1 },
953{"sge", "d,v,t", 0, (int) M_SGE, INSN_MACRO, I1 },
954{"sge", "d,v,I", 0, (int) M_SGE_I, INSN_MACRO, I1 },
955{"sgeu", "d,v,t", 0, (int) M_SGEU, INSN_MACRO, I1 },
956{"sgeu", "d,v,I", 0, (int) M_SGEU_I, INSN_MACRO, I1 },
957{"sgt", "d,v,t", 0, (int) M_SGT, INSN_MACRO, I1 },
958{"sgt", "d,v,I", 0, (int) M_SGT_I, INSN_MACRO, I1 },
959{"sgtu", "d,v,t", 0, (int) M_SGTU, INSN_MACRO, I1 },
960{"sgtu", "d,v,I", 0, (int) M_SGTU_I, INSN_MACRO, I1 },
4bb0ae10 961{"sh", "t,o(b)", 0xa4000000, 0xfc000000, SM|RD_t|RD_b, I1 },
91866cc9
JL
962{"sh", "t,A(b)", 0, (int) M_SH_AB, INSN_MACRO, I1 },
963{"sle", "d,v,t", 0, (int) M_SLE, INSN_MACRO, I1 },
964{"sle", "d,v,I", 0, (int) M_SLE_I, INSN_MACRO, I1 },
965{"sleu", "d,v,t", 0, (int) M_SLEU, INSN_MACRO, I1 },
966{"sleu", "d,v,I", 0, (int) M_SLEU_I, INSN_MACRO, I1 },
4bb0ae10
JL
967{"sllv", "d,t,s", 0x00000004, 0xfc0007ff, WR_d|RD_t|RD_s, I1 },
968{"sll", "d,w,s", 0x00000004, 0xfc0007ff, WR_d|RD_t|RD_s, I1 }, /* sllv */
969{"sll", "d,w,<", 0x00000000, 0xffe0003f, WR_d|RD_t, I1 },
970{"slt", "d,v,t", 0x0000002a, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },
91866cc9 971{"slt", "d,v,I", 0, (int) M_SLT_I, INSN_MACRO, I1 },
4bb0ae10
JL
972{"slti", "t,r,j", 0x28000000, 0xfc000000, WR_t|RD_s, I1 },
973{"sltiu", "t,r,j", 0x2c000000, 0xfc000000, WR_t|RD_s, I1 },
974{"sltu", "d,v,t", 0x0000002b, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },
91866cc9
JL
975{"sltu", "d,v,I", 0, (int) M_SLTU_I, INSN_MACRO, I1 },
976{"sne", "d,v,t", 0, (int) M_SNE, INSN_MACRO, I1 },
977{"sne", "d,v,I", 0, (int) M_SNE_I, INSN_MACRO, I1 },
276c2d7d 978 /* start-sanitize-r5900 */
d0efa46b 979{"sq", "t,o(b)", 0x7c000000, 0xfc000000, SM|RD_t|RD_b, T5 },
276c2d7d 980 /* end-sanitize-r5900 */
4bb0ae10
JL
981{"sqrt.d", "D,S", 0x46200004, 0xffff003f, WR_D|RD_S|FP_D, I2 },
982{"sqrt.s", "D,S", 0x46000004, 0xffff003f, WR_D|RD_S|FP_S, I2 },
983{"srav", "d,t,s", 0x00000007, 0xfc0007ff, WR_d|RD_t|RD_s, I1 },
984{"sra", "d,w,s", 0x00000007, 0xfc0007ff, WR_d|RD_t|RD_s, I1 }, /* srav */
985{"sra", "d,w,<", 0x00000003, 0xffe0003f, WR_d|RD_t, I1 },
986{"srlv", "d,t,s", 0x00000006, 0xfc0007ff, WR_d|RD_t|RD_s, I1 },
987{"srl", "d,w,s", 0x00000006, 0xfc0007ff, WR_d|RD_t|RD_s, I1 }, /* srlv */
988{"srl", "d,w,<", 0x00000002, 0xffe0003f, WR_d|RD_t, I1 },
d0efa46b 989{"standby", "", 0x42000021, 0xffffffff, 0, V1 },
4bb0ae10 990{"sub", "d,v,t", 0x00000022, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },
91866cc9 991{"sub", "d,v,I", 0, (int) M_SUB_I, INSN_MACRO, I1 },
4bb0ae10
JL
992{"sub.d", "D,V,T", 0x46200001, 0xffe0003f, WR_D|RD_S|RD_T|FP_D, I1 },
993{"sub.s", "D,V,T", 0x46000001, 0xffe0003f, WR_D|RD_S|RD_T|FP_S, I1 },
994{"subu", "d,v,t", 0x00000023, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },
91866cc9 995{"subu", "d,v,I", 0, (int) M_SUBU_I, INSN_MACRO, I1 },
d0efa46b 996{"suspend", "", 0x42000022, 0xffffffff, 0, V1 },
4bb0ae10 997{"sw", "t,o(b)", 0xac000000, 0xfc000000, SM|RD_t|RD_b, I1 },
91866cc9 998{"sw", "t,A(b)", 0, (int) M_SW_AB, INSN_MACRO, I1 },
4bb0ae10 999{"swc0", "E,o(b)", 0xe0000000, 0xfc000000, SM|RD_C0|RD_b, I1 },
91866cc9 1000{"swc0", "E,A(b)", 0, (int) M_SWC0_AB, INSN_MACRO, I1 },
4bb0ae10
JL
1001{"swc1", "T,o(b)", 0xe4000000, 0xfc000000, SM|RD_T|RD_b|FP_S, I1 },
1002{"swc1", "E,o(b)", 0xe4000000, 0xfc000000, SM|RD_T|RD_b|FP_S, I1 },
91866cc9
JL
1003{"swc1", "T,A(b)", 0, (int) M_SWC1_AB, INSN_MACRO, I1 },
1004{"swc1", "E,A(b)", 0, (int) M_SWC1_AB, INSN_MACRO, I1 },
4bb0ae10 1005{"s.s", "T,o(b)", 0xe4000000, 0xfc000000, SM|RD_T|RD_b|FP_S, I1 }, /* swc1 */
91866cc9 1006{"s.s", "T,A(b)", 0, (int) M_SWC1_AB, INSN_MACRO, I1 },
4bb0ae10 1007{"swc2", "E,o(b)", 0xe8000000, 0xfc000000, SM|RD_C2|RD_b, I1 },
91866cc9 1008{"swc2", "E,A(b)", 0, (int) M_SWC2_AB, INSN_MACRO, I1 },
4bb0ae10 1009{"swc3", "E,o(b)", 0xec000000, 0xfc000000, SM|RD_C3|RD_b, I1 },
91866cc9 1010{"swc3", "E,A(b)", 0, (int) M_SWC3_AB, INSN_MACRO, I1 },
4bb0ae10 1011{"swl", "t,o(b)", 0xa8000000, 0xfc000000, SM|RD_t|RD_b, I1 },
91866cc9 1012{"swl", "t,A(b)", 0, (int) M_SWL_AB, INSN_MACRO, I1 },
d0efa46b 1013{"scache", "t,o(b)", 0xa8000000, 0xfc000000, RD_t|RD_b, I2 }, /* same */
91866cc9 1014{"scache", "t,A(b)", 0, (int) M_SWL_AB, INSN_MACRO, I2 }, /* as swl */
4bb0ae10 1015{"swr", "t,o(b)", 0xb8000000, 0xfc000000, SM|RD_t|RD_b, I1 },
91866cc9 1016{"swr", "t,A(b)", 0, (int) M_SWR_AB, INSN_MACRO, I1 },
d0efa46b 1017{"invalidate", "t,o(b)",0xb8000000, 0xfc000000, RD_t|RD_b, I2 }, /* same */
91866cc9 1018{"invalidate", "t,A(b)",0, (int) M_SWR_AB, INSN_MACRO, I2 }, /* as swr */
d0efa46b 1019{"swxc1", "S,t(b)", 0x4c000008, 0xfc0007ff, SM|RD_S|RD_t|RD_b, I4 },
cfcbe03f 1020{"sync", "", 0x0000000f, 0xffffffff, 0, I2|T3 },
4bb0ae10
JL
1021{"syscall", "", 0x0000000c, 0xffffffff, TRAP, I1 },
1022{"syscall", "B", 0x0000000c, 0xfc00003f, TRAP, I1 },
d0efa46b
JL
1023{"teqi", "s,j", 0x040c0000, 0xfc1f0000, RD_s|TRAP, I2 },
1024{"teq", "s,t", 0x00000034, 0xfc00003f, RD_s|RD_t|TRAP, I2 },
1025{"teq", "s,j", 0x040c0000, 0xfc1f0000, RD_s|TRAP, I2 }, /* teqi */
91866cc9 1026{"teq", "s,I", 0, (int) M_TEQ_I, INSN_MACRO, I2 },
d0efa46b
JL
1027{"tgei", "s,j", 0x04080000, 0xfc1f0000, RD_s|TRAP, I2 },
1028{"tge", "s,t", 0x00000030, 0xfc00003f, RD_s|RD_t|TRAP, I2 },
1029{"tge", "s,j", 0x04080000, 0xfc1f0000, RD_s|TRAP, I2 }, /* tgei */
91866cc9 1030{"tge", "s,I", 0, (int) M_TGE_I, INSN_MACRO, I2 },
d0efa46b
JL
1031{"tgeiu", "s,j", 0x04090000, 0xfc1f0000, RD_s|TRAP, I2 },
1032{"tgeu", "s,t", 0x00000031, 0xfc00003f, RD_s|RD_t|TRAP, I2 },
1033{"tgeu", "s,j", 0x04090000, 0xfc1f0000, RD_s|TRAP, I2 }, /* tgeiu */
91866cc9 1034{"tgeu", "s,I", 0, (int) M_TGEU_I, INSN_MACRO, I2 },
4bb0ae10
JL
1035{"tlbp", "", 0x42000008, 0xffffffff, INSN_TLB, I1 },
1036{"tlbr", "", 0x42000001, 0xffffffff, INSN_TLB, I1 },
1037{"tlbwi", "", 0x42000002, 0xffffffff, INSN_TLB, I1 },
1038{"tlbwr", "", 0x42000006, 0xffffffff, INSN_TLB, I1 },
d0efa46b
JL
1039{"tlti", "s,j", 0x040a0000, 0xfc1f0000, RD_s|TRAP, I2 },
1040{"tlt", "s,t", 0x00000032, 0xfc00003f, RD_s|RD_t|TRAP, I2 },
1041{"tlt", "s,j", 0x040a0000, 0xfc1f0000, RD_s|TRAP, I2 }, /* tlti */
91866cc9 1042{"tlt", "s,I", 0, (int) M_TLT_I, INSN_MACRO, I2 },
d0efa46b
JL
1043{"tltiu", "s,j", 0x040b0000, 0xfc1f0000, RD_s|TRAP, I2 },
1044{"tltu", "s,t", 0x00000033, 0xfc00003f, RD_s|RD_t|TRAP, I2 },
1045{"tltu", "s,j", 0x040b0000, 0xfc1f0000, RD_s|TRAP, I2 }, /* tltiu */
91866cc9 1046{"tltu", "s,I", 0, (int) M_TLTU_I, INSN_MACRO, I2 },
d0efa46b
JL
1047{"tnei", "s,j", 0x040e0000, 0xfc1f0000, RD_s|TRAP, I2 },
1048{"tne", "s,t", 0x00000036, 0xfc00003f, RD_s|RD_t|TRAP, I2 },
1049{"tne", "s,j", 0x040e0000, 0xfc1f0000, RD_s|TRAP, I2 }, /* tnei */
91866cc9 1050{"tne", "s,I", 0, (int) M_TNE_I, INSN_MACRO, I2 },
4bb0ae10
JL
1051{"trunc.l.d", "D,S", 0x46200009, 0xffff003f, WR_D|RD_S|FP_D, I3 },
1052{"trunc.l.s", "D,S", 0x46000009, 0xffff003f, WR_D|RD_S|FP_S, I3 },
1053{"trunc.w.d", "D,S", 0x4620000d, 0xffff003f, WR_D|RD_S|FP_D, I2 },
1054{"trunc.w.d", "D,S,x", 0x4620000d, 0xffff003f, WR_D|RD_S|FP_D, I2 },
91866cc9 1055{"trunc.w.d", "D,S,t", 0, (int) M_TRUNCWD, INSN_MACRO, I1 },
4bb0ae10
JL
1056{"trunc.w.s", "D,S", 0x4600000d, 0xffff003f, WR_D|RD_S|FP_S, I2 },
1057{"trunc.w.s", "D,S,x", 0x4600000d, 0xffff003f, WR_D|RD_S|FP_S, I2 },
91866cc9
JL
1058{"trunc.w.s", "D,S,t", 0, (int) M_TRUNCWS, INSN_MACRO, I1 },
1059{"uld", "t,o(b)", 0, (int) M_ULD, INSN_MACRO, I3 },
1060{"uld", "t,A(b)", 0, (int) M_ULD_A, INSN_MACRO, I3 },
1061{"ulh", "t,o(b)", 0, (int) M_ULH, INSN_MACRO, I1 },
1062{"ulh", "t,A(b)", 0, (int) M_ULH_A, INSN_MACRO, I1 },
1063{"ulhu", "t,o(b)", 0, (int) M_ULHU, INSN_MACRO, I1 },
1064{"ulhu", "t,A(b)", 0, (int) M_ULHU_A, INSN_MACRO, I1 },
1065{"ulw", "t,o(b)", 0, (int) M_ULW, INSN_MACRO, I1 },
1066{"ulw", "t,A(b)", 0, (int) M_ULW_A, INSN_MACRO, I1 },
1067{"usd", "t,o(b)", 0, (int) M_USD, INSN_MACRO, I3 },
1068{"usd", "t,A(b)", 0, (int) M_USD_A, INSN_MACRO, I3 },
1069{"ush", "t,o(b)", 0, (int) M_USH, INSN_MACRO, I1 },
1070{"ush", "t,A(b)", 0, (int) M_USH_A, INSN_MACRO, I1 },
1071{"usw", "t,o(b)", 0, (int) M_USW, INSN_MACRO, I1 },
1072{"usw", "t,A(b)", 0, (int) M_USW_A, INSN_MACRO, I1 },
4bb0ae10 1073{"xor", "d,v,t", 0x00000026, 0xfc0007ff, WR_d|RD_s|RD_t, I1 },
91866cc9 1074{"xor", "t,r,I", 0, (int) M_XOR_I, INSN_MACRO, I1 },
4bb0ae10 1075{"xori", "t,r,i", 0x38000000, 0xfc000000, WR_t|RD_s, I1 },
d0efa46b
JL
1076{"wait", "", 0x42000020, 0xffffffff, TRAP, I3 },
1077{"waiti", "", 0x42000020, 0xffffffff, TRAP, L1 },
1078{"wb", "o(b)", 0xbc040000, 0xfc1f0000, SM|RD_b, L1 },
a3066d9a
KR
1079 /* start-sanitize-vr5400 */
1080{"add.ob", "D,S,T", 0x4ac0000b, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1081{"add.ob", "D,S,T[e]", 0x4800000b, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1082{"add.ob", "D,S,k", 0x4bc0000b, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1083{"alni.ob", "D,S,T,%", 0x48000018, 0xff00003f, WR_D|RD_S|RD_T, N5 },
1084{"and.ob", "D,S,T", 0x4ac0000c, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1085{"and.ob", "D,S,T[e]", 0x4800000c, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1086{"and.ob", "D,S,k", 0x4bc0000c, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
a3066d9a
KR
1087{"c.eq.ob", "S,T", 0x4ac00001, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
1088{"c.eq.ob", "S,T[e]", 0x48000001, 0xfe2007ff, WR_CC|RD_S|RD_T, N5 },
cfca14e7 1089{"c.eq.ob", "S,k", 0x4bc00001, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
a3066d9a
KR
1090{"c.le.ob", "S,T", 0x4ac00005, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
1091{"c.le.ob", "S,T[e]", 0x48000005, 0xfe2007ff, WR_CC|RD_S|RD_T, N5 },
cfca14e7 1092{"c.le.ob", "S,k", 0x4bc00005, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
a3066d9a
KR
1093{"c.lt.ob", "S,T", 0x4ac00004, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
1094{"c.lt.ob", "S,T[e]", 0x48000004, 0xfe2007ff, WR_CC|RD_S|RD_T, N5 },
cfca14e7 1095{"c.lt.ob", "S,k", 0x4bc00004, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
a3066d9a
KR
1096{"max.ob", "D,S,T", 0x4ac00007, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1097{"max.ob", "D,S,T[e]", 0x48000007, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1098{"max.ob", "D,S,k", 0x4bc00007, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1099{"min.ob", "D,S,T", 0x4ac00006, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1100{"min.ob", "D,S,T[e]", 0x48000006, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1101{"min.ob", "D,S,k", 0x4bc00006, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1102{"mul.ob", "D,S,T", 0x4ac00030, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1103{"mul.ob", "D,S,T[e]", 0x48000030, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1104{"mul.ob", "D,S,k", 0x4bc00030, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
a3066d9a
KR
1105{"mula.ob", "S,T", 0x4ac00033, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
1106{"mula.ob", "S,T[e]", 0x48000033, 0xfe2007ff, WR_CC|RD_S|RD_T, N5 },
cfca14e7 1107{"mula.ob", "S,k", 0x4bc00033, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
a3066d9a
KR
1108{"mull.ob", "S,T", 0x4ac00433, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
1109{"mull.ob", "S,T[e]", 0x48000433, 0xfe2007ff, WR_CC|RD_S|RD_T, N5 },
cfca14e7 1110{"mull.ob", "S,k", 0x4bc00433, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
a3066d9a
KR
1111{"muls.ob", "S,T", 0x4ac00032, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
1112{"muls.ob", "S,T[e]", 0x48000032, 0xfe2007ff, WR_CC|RD_S|RD_T, N5 },
cfca14e7 1113{"muls.ob", "S,k", 0x4bc00032, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
a3066d9a
KR
1114{"mulsl.ob","S,T", 0x4ac00432, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
1115{"mulsl.ob","S,T[e]", 0x48000432, 0xfe2007ff, WR_CC|RD_S|RD_T, N5 },
cfca14e7 1116{"mulsl.ob","S,k", 0x4bc00432, 0xffe007ff, WR_CC|RD_S|RD_T, N5 },
a3066d9a
KR
1117{"nor.ob", "D,S,T", 0x4ac0000f, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1118{"nor.ob", "D,S,T[e]", 0x4800000f, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1119{"nor.ob", "D,S,k", 0x4bc0000f, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1120{"or.ob", "D,S,T", 0x4ac0000e, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1121{"or.ob", "D,S,T[e]", 0x4800000e, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1122{"or.ob", "D,S,k", 0x4bc0000e, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1123{"pickf.ob", "D,S,T", 0x4ac00002, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1124{"pickf.ob", "D,S,T[e]", 0x48000002, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1125{"pickf.ob", "D,S,k", 0x4bc00002, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1126{"pickt.ob", "D,S,T", 0x4ac00003, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1127{"pickt.ob", "D,S,T[e]", 0x48000003, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1128{"pickt.ob", "D,S,k", 0x4bc00003, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1129{"rach.ob", "D", 0x4a00003f, 0xfffff83f, WR_D, N5 },
1130{"racl.ob", "D", 0x4800003f, 0xfffff83f, WR_D, N5 },
1131{"racm.ob", "D", 0x4900003f, 0xfffff83f, WR_D, N5 },
cfca14e7 1132{"rzu.ob", "D,k", 0x4bc00020, 0xffe0f83f, WR_D|RD_S|RD_T, N5 },
a3066d9a
KR
1133{"shfl.mixh.ob","D,S,T",0x4980001f, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1134{"shfl.mixl.ob","D,S,T",0x49c0001f, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1135{"shfl.pach.ob","D,S,T",0x4900001f, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1136{"shfl.pacl.ob","D,S,T",0x4940001f, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1137{"sll.ob", "D,S,T[e]", 0x48000010, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1138{"sll.ob", "D,S,k", 0x4bc00010, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1139{"srl.ob", "D,S,T[e]", 0x48000012, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1140{"srl.ob", "D,S,k", 0x4bc00012, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1141{"sub.ob", "D,S,T", 0x4ac0000a, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1142{"sub.ob", "D,S,T[e]", 0x4800000a, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1143{"sub.ob", "D,S,k", 0x4bc0000a, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1144{"wach.ob", "S", 0x4a00003e, 0xffff07ff, RD_S, N5 },
1145{"wacl.ob", "S,T", 0x4800003e, 0xffe007ff, RD_S|RD_T, N5 },
1146{"xor.ob", "D,S,T", 0x4ac0000d, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1147{"xor.ob", "D,S,T[e]", 0x4800000d, 0xfe20003f, WR_D|RD_S|RD_T, N5 },
1148{"xor.ob", "D,S,k", 0x4bc0000d, 0xffe0003f, WR_D|RD_S|RD_T, N5 },
1149 /* end-sanitize-vr5400 */
45b14705
ILT
1150/* No hazard protection on coprocessor instructions--they shouldn't
1151 change the state of the processor and if they do it's up to the
1152 user to put in nops as necessary. These are at the end so that the
1153 disasembler recognizes more specific versions first. */
4bb0ae10
JL
1154{"c0", "C", 0x42000000, 0xfe000000, 0, I1 },
1155{"c1", "C", 0x46000000, 0xfe000000, 0, I1 },
1156{"c2", "C", 0x4a000000, 0xfe000000, 0, I1 },
1157{"c3", "C", 0x4e000000, 0xfe000000, 0, I1 },
91866cc9
JL
1158{"cop0", "C", 0, (int) M_COP0, INSN_MACRO, I1 },
1159{"cop1", "C", 0, (int) M_COP1, INSN_MACRO, I1 },
1160{"cop2", "C", 0, (int) M_COP2, INSN_MACRO, I1 },
1161{"cop3", "C", 0, (int) M_COP3, INSN_MACRO, I1 },
10e3e6ce
JL
1162
1163 /* Conflicts with the 4650's "mul" instruction. Nobody's using the
1164 4010 any more, so move this insn out of the way. If the object
1165 format gave us more info, we could do this right. */
1166{"addciu", "t,r,j", 0x70000000, 0xfc000000, WR_t|RD_s,L1 },
45b14705
ILT
1167};
1168
a21e1e96
ILT
1169#define MIPS_NUM_OPCODES \
1170 ((sizeof mips_builtin_opcodes) / (sizeof (mips_builtin_opcodes[0])))
1171const int bfd_mips_num_builtin_opcodes = MIPS_NUM_OPCODES;
a2768484 1172
a21e1e96
ILT
1173/* const removed from the following to allow for dynamic extensions to the
1174 * built-in instruction set. */
1175struct mips_opcode *mips_opcodes =
1176 (struct mips_opcode *) mips_builtin_opcodes;
1177int bfd_mips_num_opcodes = MIPS_NUM_OPCODES;
1178#undef MIPS_NUM_OPCODES
d0efa46b 1179
This page took 0.22139 seconds and 4 git commands to generate.