blob: fcf6d42145544097b839f7c1c04309e76b0df4b6 [file] [log] [blame]
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +08001(* Capstone Disassembler Engine
2 * By Nguyen Anh Quynh <aquynh@gmail.com>, 2013> *)
3
4(* architecture specific info of instruction *)
5type mips_op_mem = {
6 base: int;
7 displ: int
8}
9
10type mips_op_value =
11 | MIPS_OP_INVALID of int
12 | MIPS_OP_REG of int
13 | MIPS_OP_IMM of int
14 | MIPS_OP_MEM of mips_op_mem
15
16type mips_op = {
17 value: mips_op_value;
18}
19
20type cs_mips = {
21 op_count: int;
22 operands: mips_op array;
23}
24
25(* MIPS registers - including alias registers *)
26let _MIPS_REG_INVALID = 0;;
27let _MIPS_REG_0 = 1;;
28let _MIPS_REG_ZERO = _MIPS_REG_0;;
29let _MIPS_REG_1 = 2;;
30let _MIPS_REG_AT = _MIPS_REG_1;;
31let _MIPS_REG_2 = 3;;
32let _MIPS_REG_V0 = _MIPS_REG_2;;
33let _MIPS_REG_3 = 4;;
34let _MIPS_REG_V1 = _MIPS_REG_3;;
35let _MIPS_REG_4 = 5;;
36let _MIPS_REG_A0 = _MIPS_REG_4;;
37let _MIPS_REG_5 = 6;;
38let _MIPS_REG_A1 = _MIPS_REG_5;;
39let _MIPS_REG_6 = 7;;
40let _MIPS_REG_A2 = _MIPS_REG_6;;
41let _MIPS_REG_7 = 8;;
42let _MIPS_REG_A3 = _MIPS_REG_7;;
43let _MIPS_REG_8 = 9;;
44let _MIPS_REG_T0 = _MIPS_REG_8;;
45let _MIPS_REG_9 = 10;;
46let _MIPS_REG_T1 = _MIPS_REG_9;;
47let _MIPS_REG_10 = 11;;
48let _MIPS_REG_T2 = _MIPS_REG_10;;
49let _MIPS_REG_11 = 12;;
50let _MIPS_REG_T3 = _MIPS_REG_11;;
51let _MIPS_REG_12 = 13;;
52let _MIPS_REG_T4 = _MIPS_REG_12;;
53let _MIPS_REG_13 = 14;;
54let _MIPS_REG_T5 = _MIPS_REG_13;;
55let _MIPS_REG_14 = 15;;
56let _MIPS_REG_T6 = _MIPS_REG_14;;
57let _MIPS_REG_15 = 16;;
58let _MIPS_REG_T7 = _MIPS_REG_15;;
59let _MIPS_REG_16 = 17;;
60let _MIPS_REG_S0 = _MIPS_REG_16;;
61let _MIPS_REG_17 = 18;;
62let _MIPS_REG_S1 = _MIPS_REG_17;;
63let _MIPS_REG_18 = 19;;
64let _MIPS_REG_S2 = _MIPS_REG_18;;
65let _MIPS_REG_19 = 20;;
66let _MIPS_REG_S3 = _MIPS_REG_19;;
67let _MIPS_REG_20 = 21;;
68let _MIPS_REG_S4 = _MIPS_REG_20;;
69let _MIPS_REG_21 = 22;;
70let _MIPS_REG_S5 = _MIPS_REG_21;;
71let _MIPS_REG_22 = 23;;
72let _MIPS_REG_S6 = _MIPS_REG_22;;
73let _MIPS_REG_23 = 24;;
74let _MIPS_REG_S7 = _MIPS_REG_23;;
75let _MIPS_REG_24 = 25;;
76let _MIPS_REG_T8 = _MIPS_REG_24;;
77let _MIPS_REG_25 = 26;;
78let _MIPS_REG_T9 = _MIPS_REG_25;;
79let _MIPS_REG_26 = 27;;
80let _MIPS_REG_K0 = _MIPS_REG_26;;
81let _MIPS_REG_27 = 28;;
82let _MIPS_REG_K1 = _MIPS_REG_27;;
83let _MIPS_REG_28 = 29;;
84let _MIPS_REG_GP = _MIPS_REG_28;;
85let _MIPS_REG_29 = 30;;
86let _MIPS_REG_SP = _MIPS_REG_29;;
87let _MIPS_REG_30 = 31;;
88let _MIPS_REG_FP = _MIPS_REG_30;;
89let _MIPS_REG_S8 = _MIPS_REG_30;;
90let _MIPS_REG_31 = 32;;
91let _MIPS_REG_RA = _MIPS_REG_31;;
92let _MIPS_REG_DSPCCOND = 33;;
93let _MIPS_REG_DSPCARRY = 34;;
94let _MIPS_REG_DSPEFI = 35;;
95let _MIPS_REG_DSPOUTFLAG = 36;;
96let _MIPS_REG_DSPOUTFLAG16_19 = 37;;
97let _MIPS_REG_DSPOUTFLAG20 = 38;;
98let _MIPS_REG_DSPOUTFLAG21 = 39;;
99let _MIPS_REG_DSPOUTFLAG22 = 40;;
100let _MIPS_REG_DSPOUTFLAG23 = 41;;
101let _MIPS_REG_DSPPOS = 42;;
102let _MIPS_REG_DSPSCOUNT = 43;;
103let _MIPS_REG_AC0 = 44;;
104let _MIPS_REG_HI0 = _MIPS_REG_AC0;;
105let _MIPS_REG_AC1 = 45;;
106let _MIPS_REG_HI1 = _MIPS_REG_AC1;;
107let _MIPS_REG_AC2 = 46;;
108let _MIPS_REG_HI2 = _MIPS_REG_AC2;;
109let _MIPS_REG_AC3 = 47;;
110let _MIPS_REG_HI3 = _MIPS_REG_AC3;;
111let _MIPS_REG_LO0 = _MIPS_REG_HI0;;
112let _MIPS_REG_LO1 = _MIPS_REG_HI1;;
113let _MIPS_REG_LO2 = _MIPS_REG_HI2;;
114let _MIPS_REG_LO3 = _MIPS_REG_HI3;;
115let _MIPS_REG_F0 = 48;;
116let _MIPS_REG_F1 = 49;;
117let _MIPS_REG_F2 = 50;;
118let _MIPS_REG_F3 = 51;;
119let _MIPS_REG_F4 = 52;;
120let _MIPS_REG_F5 = 53;;
121let _MIPS_REG_F6 = 54;;
122let _MIPS_REG_F7 = 55;;
123let _MIPS_REG_F8 = 56;;
124let _MIPS_REG_F9 = 57;;
125let _MIPS_REG_F10 = 58;;
126let _MIPS_REG_F11 = 59;;
127let _MIPS_REG_F12 = 60;;
128let _MIPS_REG_F13 = 61;;
129let _MIPS_REG_F14 = 62;;
130let _MIPS_REG_F15 = 63;;
131let _MIPS_REG_F16 = 64;;
132let _MIPS_REG_F17 = 65;;
133let _MIPS_REG_F18 = 66;;
134let _MIPS_REG_F19 = 67;;
135let _MIPS_REG_F20 = 68;;
136let _MIPS_REG_F21 = 69;;
137let _MIPS_REG_F22 = 70;;
138let _MIPS_REG_F23 = 71;;
139let _MIPS_REG_F24 = 72;;
140let _MIPS_REG_F25 = 73;;
141let _MIPS_REG_F26 = 74;;
142let _MIPS_REG_F27 = 75;;
143let _MIPS_REG_F28 = 76;;
144let _MIPS_REG_F29 = 77;;
145let _MIPS_REG_F30 = 78;;
146let _MIPS_REG_F31 = 79;;
147let _MIPS_REG_FCC0 = 80;;
148let _MIPS_REG_FCC1 = 81;;
149let _MIPS_REG_FCC2 = 82;;
150let _MIPS_REG_FCC3 = 83;;
151let _MIPS_REG_FCC4 = 84;;
152let _MIPS_REG_FCC5 = 85;;
153let _MIPS_REG_FCC6 = 86;;
154let _MIPS_REG_FCC7 = 87;;
155let _MIPS_REG_W0 = 88;;
156let _MIPS_REG_W1 = 89;;
157let _MIPS_REG_W2 = 90;;
158let _MIPS_REG_W3 = 91;;
159let _MIPS_REG_W4 = 92;;
160let _MIPS_REG_W5 = 93;;
161let _MIPS_REG_W6 = 94;;
162let _MIPS_REG_W7 = 95;;
163let _MIPS_REG_W8 = 96;;
164let _MIPS_REG_W9 = 97;;
165let _MIPS_REG_W10 = 98;;
166let _MIPS_REG_W11 = 99;;
167let _MIPS_REG_W12 = 100;;
168let _MIPS_REG_W13 = 101;;
169let _MIPS_REG_W14 = 102;;
170let _MIPS_REG_W15 = 103;;
171let _MIPS_REG_W16 = 104;;
172let _MIPS_REG_W17 = 105;;
173let _MIPS_REG_W18 = 106;;
174let _MIPS_REG_W19 = 107;;
175let _MIPS_REG_W20 = 108;;
176let _MIPS_REG_W21 = 109;;
177let _MIPS_REG_W22 = 110;;
178let _MIPS_REG_W23 = 111;;
179let _MIPS_REG_W24 = 112;;
180let _MIPS_REG_W25 = 113;;
181let _MIPS_REG_W26 = 114;;
182let _MIPS_REG_W27 = 115;;
183let _MIPS_REG_W28 = 116;;
184let _MIPS_REG_W29 = 117;;
185let _MIPS_REG_W30 = 118;;
186let _MIPS_REG_W31 = 119;;
187let _MIPS_REG_MAX = 120;;
188
189
190(* MIPS instructions *)
191let _MIPS_INS_INVALID = 0;;
192let _MIPS_INS_ABSQ_S = 1;;
193let _MIPS_INS_ADD = 2;;
194let _MIPS_INS_ADDQH = 3;;
195let _MIPS_INS_ADDQH_R = 4;;
196let _MIPS_INS_ADDQ = 5;;
197let _MIPS_INS_ADDQ_S = 6;;
198let _MIPS_INS_ADDSC = 7;;
199let _MIPS_INS_ADDS_A = 8;;
200let _MIPS_INS_ADDS_S = 9;;
201let _MIPS_INS_ADDS_U = 10;;
202let _MIPS_INS_ADDUH = 11;;
203let _MIPS_INS_ADDUH_R = 12;;
204let _MIPS_INS_ADDU = 13;;
205let _MIPS_INS_ADDU_S = 14;;
206let _MIPS_INS_ADDVI = 15;;
207let _MIPS_INS_ADDV = 16;;
208let _MIPS_INS_ADDWC = 17;;
209let _MIPS_INS_ADD_A = 18;;
210let _MIPS_INS_ADDI = 19;;
211let _MIPS_INS_ADDIU = 20;;
212let _MIPS_INS_AND = 21;;
213let _MIPS_INS_ANDI = 22;;
214let _MIPS_INS_APPEND = 23;;
215let _MIPS_INS_ASUB_S = 24;;
216let _MIPS_INS_ASUB_U = 25;;
217let _MIPS_INS_AVER_S = 26;;
218let _MIPS_INS_AVER_U = 27;;
219let _MIPS_INS_AVE_S = 28;;
220let _MIPS_INS_AVE_U = 29;;
221let _MIPS_INS_BALIGN = 30;;
222let _MIPS_INS_BC1F = 31;;
223let _MIPS_INS_BC1T = 32;;
224let _MIPS_INS_BCLRI = 33;;
225let _MIPS_INS_BCLR = 34;;
226let _MIPS_INS_BEQ = 35;;
227let _MIPS_INS_BGEZ = 36;;
228let _MIPS_INS_BGEZAL = 37;;
229let _MIPS_INS_BGTZ = 38;;
230let _MIPS_INS_BINSLI = 39;;
231let _MIPS_INS_BINSL = 40;;
232let _MIPS_INS_BINSRI = 41;;
233let _MIPS_INS_BINSR = 42;;
234let _MIPS_INS_BITREV = 43;;
235let _MIPS_INS_BLEZ = 44;;
236let _MIPS_INS_BLTZ = 45;;
237let _MIPS_INS_BLTZAL = 46;;
238let _MIPS_INS_BMNZI = 47;;
239let _MIPS_INS_BMNZ = 48;;
240let _MIPS_INS_BMZI = 49;;
241let _MIPS_INS_BMZ = 50;;
242let _MIPS_INS_BNE = 51;;
243let _MIPS_INS_BNEGI = 52;;
244let _MIPS_INS_BNEG = 53;;
245let _MIPS_INS_BNZ = 54;;
246let _MIPS_INS_BPOSGE32 = 55;;
247let _MIPS_INS_BREAK = 56;;
248let _MIPS_INS_BSELI = 57;;
249let _MIPS_INS_BSEL = 58;;
250let _MIPS_INS_BSETI = 59;;
251let _MIPS_INS_BSET = 60;;
252let _MIPS_INS_BZ = 61;;
253let _MIPS_INS_BEQZ = 62;;
254let _MIPS_INS_B = 63;;
255let _MIPS_INS_BNEZ = 64;;
256let _MIPS_INS_BTEQZ = 65;;
257let _MIPS_INS_BTNEZ = 66;;
258let _MIPS_INS_CEIL = 67;;
259let _MIPS_INS_CEQI = 68;;
260let _MIPS_INS_CEQ = 69;;
261let _MIPS_INS_CFC1 = 70;;
262let _MIPS_INS_CFCMSA = 71;;
263let _MIPS_INS_CLEI_S = 72;;
264let _MIPS_INS_CLEI_U = 73;;
265let _MIPS_INS_CLE_S = 74;;
266let _MIPS_INS_CLE_U = 75;;
267let _MIPS_INS_CLO = 76;;
268let _MIPS_INS_CLTI_S = 77;;
269let _MIPS_INS_CLTI_U = 78;;
270let _MIPS_INS_CLT_S = 79;;
271let _MIPS_INS_CLT_U = 80;;
272let _MIPS_INS_CLZ = 81;;
273let _MIPS_INS_CMPGDU = 82;;
274let _MIPS_INS_CMPGU = 83;;
275let _MIPS_INS_CMPU = 84;;
276let _MIPS_INS_CMP = 85;;
277let _MIPS_INS_COPY_S = 86;;
278let _MIPS_INS_COPY_U = 87;;
279let _MIPS_INS_CTC1 = 88;;
280let _MIPS_INS_CTCMSA = 89;;
281let _MIPS_INS_CVT = 90;;
282let _MIPS_INS_C = 91;;
283let _MIPS_INS_CMPI = 92;;
284let _MIPS_INS_DADD = 93;;
285let _MIPS_INS_DADDI = 94;;
286let _MIPS_INS_DADDIU = 95;;
287let _MIPS_INS_DADDU = 96;;
288let _MIPS_INS_DCLO = 97;;
289let _MIPS_INS_DCLZ = 98;;
290let _MIPS_INS_DERET = 99;;
291let _MIPS_INS_DEXT = 100;;
292let _MIPS_INS_DEXTM = 101;;
293let _MIPS_INS_DEXTU = 102;;
294let _MIPS_INS_DI = 103;;
295let _MIPS_INS_DINS = 104;;
296let _MIPS_INS_DINSM = 105;;
297let _MIPS_INS_DINSU = 106;;
298let _MIPS_INS_DIV_S = 107;;
299let _MIPS_INS_DIV_U = 108;;
300let _MIPS_INS_DMFC0 = 109;;
301let _MIPS_INS_DMFC1 = 110;;
302let _MIPS_INS_DMFC2 = 111;;
303let _MIPS_INS_DMTC0 = 112;;
304let _MIPS_INS_DMTC1 = 113;;
305let _MIPS_INS_DMTC2 = 114;;
306let _MIPS_INS_DMULT = 115;;
307let _MIPS_INS_DMULTU = 116;;
308let _MIPS_INS_DOTP_S = 117;;
309let _MIPS_INS_DOTP_U = 118;;
310let _MIPS_INS_DPADD_S = 119;;
311let _MIPS_INS_DPADD_U = 120;;
312let _MIPS_INS_DPAQX_SA = 121;;
313let _MIPS_INS_DPAQX_S = 122;;
314let _MIPS_INS_DPAQ_SA = 123;;
315let _MIPS_INS_DPAQ_S = 124;;
316let _MIPS_INS_DPAU = 125;;
317let _MIPS_INS_DPAX = 126;;
318let _MIPS_INS_DPA = 127;;
319let _MIPS_INS_DPSQX_SA = 128;;
320let _MIPS_INS_DPSQX_S = 129;;
321let _MIPS_INS_DPSQ_SA = 130;;
322let _MIPS_INS_DPSQ_S = 131;;
323let _MIPS_INS_DPSUB_S = 132;;
324let _MIPS_INS_DPSUB_U = 133;;
325let _MIPS_INS_DPSU = 134;;
326let _MIPS_INS_DPSX = 135;;
327let _MIPS_INS_DPS = 136;;
328let _MIPS_INS_DROTR = 137;;
329let _MIPS_INS_DROTR32 = 138;;
330let _MIPS_INS_DROTRV = 139;;
331let _MIPS_INS_DSBH = 140;;
332let _MIPS_INS_DDIV = 141;;
333let _MIPS_INS_DSHD = 142;;
334let _MIPS_INS_DSLL = 143;;
335let _MIPS_INS_DSLL32 = 144;;
336let _MIPS_INS_DSLLV = 145;;
337let _MIPS_INS_DSRA = 146;;
338let _MIPS_INS_DSRA32 = 147;;
339let _MIPS_INS_DSRAV = 148;;
340let _MIPS_INS_DSRL = 149;;
341let _MIPS_INS_DSRL32 = 150;;
342let _MIPS_INS_DSRLV = 151;;
343let _MIPS_INS_DSUBU = 152;;
344let _MIPS_INS_DDIVU = 153;;
345let _MIPS_INS_DIV = 154;;
346let _MIPS_INS_DIVU = 155;;
347let _MIPS_INS_EI = 156;;
348let _MIPS_INS_ERET = 157;;
349let _MIPS_INS_EXT = 158;;
350let _MIPS_INS_EXTP = 159;;
351let _MIPS_INS_EXTPDP = 160;;
352let _MIPS_INS_EXTPDPV = 161;;
353let _MIPS_INS_EXTPV = 162;;
354let _MIPS_INS_EXTRV_RS = 163;;
355let _MIPS_INS_EXTRV_R = 164;;
356let _MIPS_INS_EXTRV_S = 165;;
357let _MIPS_INS_EXTRV = 166;;
358let _MIPS_INS_EXTR_RS = 167;;
359let _MIPS_INS_EXTR_R = 168;;
360let _MIPS_INS_EXTR_S = 169;;
361let _MIPS_INS_EXTR = 170;;
362let _MIPS_INS_ABS = 171;;
363let _MIPS_INS_FADD = 172;;
364let _MIPS_INS_FCAF = 173;;
365let _MIPS_INS_FCEQ = 174;;
366let _MIPS_INS_FCLASS = 175;;
367let _MIPS_INS_FCLE = 176;;
368let _MIPS_INS_FCLT = 177;;
369let _MIPS_INS_FCNE = 178;;
370let _MIPS_INS_FCOR = 179;;
371let _MIPS_INS_FCUEQ = 180;;
372let _MIPS_INS_FCULE = 181;;
373let _MIPS_INS_FCULT = 182;;
374let _MIPS_INS_FCUNE = 183;;
375let _MIPS_INS_FCUN = 184;;
376let _MIPS_INS_FDIV = 185;;
377let _MIPS_INS_FEXDO = 186;;
378let _MIPS_INS_FEXP2 = 187;;
379let _MIPS_INS_FEXUPL = 188;;
380let _MIPS_INS_FEXUPR = 189;;
381let _MIPS_INS_FFINT_S = 190;;
382let _MIPS_INS_FFINT_U = 191;;
383let _MIPS_INS_FFQL = 192;;
384let _MIPS_INS_FFQR = 193;;
385let _MIPS_INS_FILL = 194;;
386let _MIPS_INS_FLOG2 = 195;;
387let _MIPS_INS_FLOOR = 196;;
388let _MIPS_INS_FMADD = 197;;
389let _MIPS_INS_FMAX_A = 198;;
390let _MIPS_INS_FMAX = 199;;
391let _MIPS_INS_FMIN_A = 200;;
392let _MIPS_INS_FMIN = 201;;
393let _MIPS_INS_MOV = 202;;
394let _MIPS_INS_FMSUB = 203;;
395let _MIPS_INS_FMUL = 204;;
396let _MIPS_INS_MUL = 205;;
397let _MIPS_INS_NEG = 206;;
398let _MIPS_INS_FRCP = 207;;
399let _MIPS_INS_FRINT = 208;;
400let _MIPS_INS_FRSQRT = 209;;
401let _MIPS_INS_FSAF = 210;;
402let _MIPS_INS_FSEQ = 211;;
403let _MIPS_INS_FSLE = 212;;
404let _MIPS_INS_FSLT = 213;;
405let _MIPS_INS_FSNE = 214;;
406let _MIPS_INS_FSOR = 215;;
407let _MIPS_INS_FSQRT = 216;;
408let _MIPS_INS_SQRT = 217;;
409let _MIPS_INS_FSUB = 218;;
410let _MIPS_INS_SUB = 219;;
411let _MIPS_INS_FSUEQ = 220;;
412let _MIPS_INS_FSULE = 221;;
413let _MIPS_INS_FSULT = 222;;
414let _MIPS_INS_FSUNE = 223;;
415let _MIPS_INS_FSUN = 224;;
416let _MIPS_INS_FTINT_S = 225;;
417let _MIPS_INS_FTINT_U = 226;;
418let _MIPS_INS_FTQ = 227;;
419let _MIPS_INS_FTRUNC_S = 228;;
420let _MIPS_INS_FTRUNC_U = 229;;
421let _MIPS_INS_HADD_S = 230;;
422let _MIPS_INS_HADD_U = 231;;
423let _MIPS_INS_HSUB_S = 232;;
424let _MIPS_INS_HSUB_U = 233;;
425let _MIPS_INS_ILVEV = 234;;
426let _MIPS_INS_ILVL = 235;;
427let _MIPS_INS_ILVOD = 236;;
428let _MIPS_INS_ILVR = 237;;
429let _MIPS_INS_INS = 238;;
430let _MIPS_INS_INSERT = 239;;
431let _MIPS_INS_INSV = 240;;
432let _MIPS_INS_INSVE = 241;;
433let _MIPS_INS_J = 242;;
434let _MIPS_INS_JAL = 243;;
435let _MIPS_INS_JALR = 244;;
436let _MIPS_INS_JR = 245;;
437let _MIPS_INS_JRC = 246;;
438let _MIPS_INS_JALRC = 247;;
439let _MIPS_INS_LB = 248;;
440let _MIPS_INS_LBUX = 249;;
441let _MIPS_INS_LBU = 250;;
442let _MIPS_INS_LD = 251;;
443let _MIPS_INS_LDC1 = 252;;
444let _MIPS_INS_LDC2 = 253;;
445let _MIPS_INS_LDI = 254;;
446let _MIPS_INS_LDL = 255;;
447let _MIPS_INS_LDR = 256;;
448let _MIPS_INS_LDXC1 = 257;;
449let _MIPS_INS_LH = 258;;
450let _MIPS_INS_LHX = 259;;
451let _MIPS_INS_LHU = 260;;
452let _MIPS_INS_LL = 261;;
453let _MIPS_INS_LLD = 262;;
454let _MIPS_INS_LSA = 263;;
455let _MIPS_INS_LUXC1 = 264;;
456let _MIPS_INS_LUI = 265;;
457let _MIPS_INS_LW = 266;;
458let _MIPS_INS_LWC1 = 267;;
459let _MIPS_INS_LWC2 = 268;;
460let _MIPS_INS_LWL = 269;;
461let _MIPS_INS_LWR = 270;;
462let _MIPS_INS_LWX = 271;;
463let _MIPS_INS_LWXC1 = 272;;
464let _MIPS_INS_LWU = 273;;
465let _MIPS_INS_LI = 274;;
466let _MIPS_INS_MADD = 275;;
467let _MIPS_INS_MADDR_Q = 276;;
468let _MIPS_INS_MADDU = 277;;
469let _MIPS_INS_MADDV = 278;;
470let _MIPS_INS_MADD_Q = 279;;
471let _MIPS_INS_MAQ_SA = 280;;
472let _MIPS_INS_MAQ_S = 281;;
473let _MIPS_INS_MAXI_S = 282;;
474let _MIPS_INS_MAXI_U = 283;;
475let _MIPS_INS_MAX_A = 284;;
476let _MIPS_INS_MAX_S = 285;;
477let _MIPS_INS_MAX_U = 286;;
478let _MIPS_INS_MFC0 = 287;;
479let _MIPS_INS_MFC1 = 288;;
480let _MIPS_INS_MFC2 = 289;;
481let _MIPS_INS_MFHC1 = 290;;
482let _MIPS_INS_MFHI = 291;;
483let _MIPS_INS_MFLO = 292;;
484let _MIPS_INS_MINI_S = 293;;
485let _MIPS_INS_MINI_U = 294;;
486let _MIPS_INS_MIN_A = 295;;
487let _MIPS_INS_MIN_S = 296;;
488let _MIPS_INS_MIN_U = 297;;
489let _MIPS_INS_MODSUB = 298;;
490let _MIPS_INS_MOD_S = 299;;
491let _MIPS_INS_MOD_U = 300;;
492let _MIPS_INS_MOVE = 301;;
493let _MIPS_INS_MOVF = 302;;
494let _MIPS_INS_MOVN = 303;;
495let _MIPS_INS_MOVT = 304;;
496let _MIPS_INS_MOVZ = 305;;
497let _MIPS_INS_MSUB = 306;;
498let _MIPS_INS_MSUBR_Q = 307;;
499let _MIPS_INS_MSUBU = 308;;
500let _MIPS_INS_MSUBV = 309;;
501let _MIPS_INS_MSUB_Q = 310;;
502let _MIPS_INS_MTC0 = 311;;
503let _MIPS_INS_MTC1 = 312;;
504let _MIPS_INS_MTC2 = 313;;
505let _MIPS_INS_MTHC1 = 314;;
506let _MIPS_INS_MTHI = 315;;
507let _MIPS_INS_MTHLIP = 316;;
508let _MIPS_INS_MTLO = 317;;
509let _MIPS_INS_MULEQ_S = 318;;
510let _MIPS_INS_MULEU_S = 319;;
511let _MIPS_INS_MULQ_RS = 320;;
512let _MIPS_INS_MULQ_S = 321;;
513let _MIPS_INS_MULR_Q = 322;;
514let _MIPS_INS_MULSAQ_S = 323;;
515let _MIPS_INS_MULSA = 324;;
516let _MIPS_INS_MULT = 325;;
517let _MIPS_INS_MULTU = 326;;
518let _MIPS_INS_MULV = 327;;
519let _MIPS_INS_MUL_Q = 328;;
520let _MIPS_INS_MUL_S = 329;;
521let _MIPS_INS_NLOC = 330;;
522let _MIPS_INS_NLZC = 331;;
523let _MIPS_INS_NMADD = 332;;
524let _MIPS_INS_NMSUB = 333;;
525let _MIPS_INS_NOR = 334;;
526let _MIPS_INS_NORI = 335;;
527let _MIPS_INS_NOT = 336;;
528let _MIPS_INS_OR = 337;;
529let _MIPS_INS_ORI = 338;;
530let _MIPS_INS_PACKRL = 339;;
531let _MIPS_INS_PCKEV = 340;;
532let _MIPS_INS_PCKOD = 341;;
533let _MIPS_INS_PCNT = 342;;
534let _MIPS_INS_PICK = 343;;
535let _MIPS_INS_PRECEQU = 344;;
536let _MIPS_INS_PRECEQ = 345;;
537let _MIPS_INS_PRECEU = 346;;
538let _MIPS_INS_PRECRQU_S = 347;;
539let _MIPS_INS_PRECRQ = 348;;
540let _MIPS_INS_PRECRQ_RS = 349;;
541let _MIPS_INS_PRECR = 350;;
542let _MIPS_INS_PRECR_SRA = 351;;
543let _MIPS_INS_PRECR_SRA_R = 352;;
544let _MIPS_INS_PREPEND = 353;;
545let _MIPS_INS_RADDU = 354;;
546let _MIPS_INS_RDDSP = 355;;
547let _MIPS_INS_RDHWR = 356;;
548let _MIPS_INS_REPLV = 357;;
549let _MIPS_INS_REPL = 358;;
550let _MIPS_INS_ROTR = 359;;
551let _MIPS_INS_ROTRV = 360;;
552let _MIPS_INS_ROUND = 361;;
553let _MIPS_INS_RESTORE = 362;;
554let _MIPS_INS_SAT_S = 363;;
555let _MIPS_INS_SAT_U = 364;;
556let _MIPS_INS_SB = 365;;
557let _MIPS_INS_SC = 366;;
558let _MIPS_INS_SCD = 367;;
559let _MIPS_INS_SD = 368;;
560let _MIPS_INS_SDC1 = 369;;
561let _MIPS_INS_SDC2 = 370;;
562let _MIPS_INS_SDL = 371;;
563let _MIPS_INS_SDR = 372;;
564let _MIPS_INS_SDXC1 = 373;;
565let _MIPS_INS_SEB = 374;;
566let _MIPS_INS_SEH = 375;;
567let _MIPS_INS_SH = 376;;
568let _MIPS_INS_SHF = 377;;
569let _MIPS_INS_SHILO = 378;;
570let _MIPS_INS_SHILOV = 379;;
571let _MIPS_INS_SHLLV = 380;;
572let _MIPS_INS_SHLLV_S = 381;;
573let _MIPS_INS_SHLL = 382;;
574let _MIPS_INS_SHLL_S = 383;;
575let _MIPS_INS_SHRAV = 384;;
576let _MIPS_INS_SHRAV_R = 385;;
577let _MIPS_INS_SHRA = 386;;
578let _MIPS_INS_SHRA_R = 387;;
579let _MIPS_INS_SHRLV = 388;;
580let _MIPS_INS_SHRL = 389;;
581let _MIPS_INS_SLDI = 390;;
582let _MIPS_INS_SLD = 391;;
583let _MIPS_INS_SLL = 392;;
584let _MIPS_INS_SLLI = 393;;
585let _MIPS_INS_SLLV = 394;;
586let _MIPS_INS_SLT = 395;;
587let _MIPS_INS_SLTI = 396;;
588let _MIPS_INS_SLTIU = 397;;
589let _MIPS_INS_SLTU = 398;;
590let _MIPS_INS_SPLATI = 399;;
591let _MIPS_INS_SPLAT = 400;;
592let _MIPS_INS_SRA = 401;;
593let _MIPS_INS_SRAI = 402;;
594let _MIPS_INS_SRARI = 403;;
595let _MIPS_INS_SRAR = 404;;
596let _MIPS_INS_SRAV = 405;;
597let _MIPS_INS_SRL = 406;;
598let _MIPS_INS_SRLI = 407;;
599let _MIPS_INS_SRLRI = 408;;
600let _MIPS_INS_SRLR = 409;;
601let _MIPS_INS_SRLV = 410;;
602let _MIPS_INS_ST = 411;;
603let _MIPS_INS_SUBQH = 412;;
604let _MIPS_INS_SUBQH_R = 413;;
605let _MIPS_INS_SUBQ = 414;;
606let _MIPS_INS_SUBQ_S = 415;;
607let _MIPS_INS_SUBSUS_U = 416;;
608let _MIPS_INS_SUBSUU_S = 417;;
609let _MIPS_INS_SUBS_S = 418;;
610let _MIPS_INS_SUBS_U = 419;;
611let _MIPS_INS_SUBUH = 420;;
612let _MIPS_INS_SUBUH_R = 421;;
613let _MIPS_INS_SUBU = 422;;
614let _MIPS_INS_SUBU_S = 423;;
615let _MIPS_INS_SUBVI = 424;;
616let _MIPS_INS_SUBV = 425;;
617let _MIPS_INS_SUXC1 = 426;;
618let _MIPS_INS_SW = 427;;
619let _MIPS_INS_SWC1 = 428;;
620let _MIPS_INS_SWC2 = 429;;
621let _MIPS_INS_SWL = 430;;
622let _MIPS_INS_SWR = 431;;
623let _MIPS_INS_SWXC1 = 432;;
624let _MIPS_INS_SYNC = 433;;
625let _MIPS_INS_SYSCALL = 434;;
626let _MIPS_INS_SAVE = 435;;
627let _MIPS_INS_TEQ = 436;;
628let _MIPS_INS_TEQI = 437;;
629let _MIPS_INS_TGE = 438;;
630let _MIPS_INS_TGEI = 439;;
631let _MIPS_INS_TGEIU = 440;;
632let _MIPS_INS_TGEU = 441;;
633let _MIPS_INS_TLT = 442;;
634let _MIPS_INS_TLTI = 443;;
635let _MIPS_INS_TLTU = 444;;
636let _MIPS_INS_TNE = 445;;
637let _MIPS_INS_TNEI = 446;;
638let _MIPS_INS_TRUNC = 447;;
639let _MIPS_INS_TLTIU = 448;;
640let _MIPS_INS_VSHF = 449;;
641let _MIPS_INS_WAIT = 450;;
642let _MIPS_INS_WRDSP = 451;;
643let _MIPS_INS_WSBH = 452;;
644let _MIPS_INS_XOR = 453;;
645let _MIPS_INS_XORI = 454;;
646let _MIPS_INS_NOP = 455;;
647let _MIPS_INS_MAX = 456;;
648
649
650(* MIPS group of instructions *)
651let _MIPS_GRP_INVALID = 0;;
652let _MIPS_GRP_BITCOUNT = 1;;
653let _MIPS_GRP_DSP = 2;;
654let _MIPS_GRP_DSPR2 = 3;;
655let _MIPS_GRP_FPIDX = 4;;
656let _MIPS_GRP_MSA = 5;;
657let _MIPS_GRP_MIPS32R2 = 6;;
658let _MIPS_GRP_MIPS64 = 7;;
659let _MIPS_GRP_MIPS64R2 = 8;;
660let _MIPS_GRP_SEINREG = 9;;
661let _MIPS_GRP_STDENC = 10;;
662let _MIPS_GRP_SWAP = 11;;
663let _MIPS_GRP_MICROMIPS = 12;;
664let _MIPS_GRP_MIPS16MODE = 13;;
665let _MIPS_GRP_FP64BIT = 14;;
666let _MIPS_GRP_NONANSFPMATH = 15;;
667let _MIPS_GRP_NOTFP64BIT = 16;;
668let _MIPS_GRP_RELOCSTATIC = 17;;
669let _MIPS_GRP_MAX = 18;;
670