blob: 45eedd96ba21a2efbd40fe1bddd84e5b9fe09e10 [file] [log] [blame]
Nguyen Anh Quynhdd407502014-01-19 23:51:34 +08001#ifndef CAPSTONE_MIPS_H
2#define CAPSTONE_MIPS_H
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +08003
Nguyen Anh Quynh7751fbe2014-04-28 11:23:14 +08004/* Capstone Disassembly Engine */
5/* By Nguyen Anh Quynh <aquynh@gmail.com>, 2013-2014 */
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +08006
7#ifdef __cplusplus
8extern "C" {
9#endif
10
11#include <stdint.h>
Nguyen Anh Quynhcb591062014-05-15 21:51:02 +080012#include "platform.h"
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080013
schwoop8a26bd32014-06-06 17:28:43 +020014// GCC MIPS toolchain has a default macro called "mips" which breaks
15// compilation
16#undef mips
17
Alex Ionescu46018db2014-01-22 09:45:00 -080018#ifdef _MSC_VER
19#pragma warning(disable:4201)
Nguyen Anh Quynhb57c90d2014-01-23 21:43:08 +080020#endif
Alex Ionescu46018db2014-01-22 09:45:00 -080021
Nguyen Anh Quynha2f825f2013-12-04 23:56:24 +080022//> Operand type for instruction's operands
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080023typedef enum mips_op_type {
24 MIPS_OP_INVALID = 0, // Uninitialized.
25 MIPS_OP_REG, // Register operand.
26 MIPS_OP_IMM, // Immediate operand.
27 MIPS_OP_MEM, // Memory operand
28} mips_op_type;
29
30// Instruction's operand referring to memory
31// This is associated with MIPS_OP_MEM operand type above
32typedef struct mips_op_mem {
33 unsigned int base; // base register
34 int64_t disp; // displacement/offset value
35} mips_op_mem;
36
37// Instruction operand
38typedef struct cs_mips_op {
39 mips_op_type type; // operand type
40 union {
41 unsigned int reg; // register value for REG operand
Nguyen Anh Quynhde319f82014-03-09 04:08:11 +080042 int64_t imm; // immediate value for IMM operand
43 mips_op_mem mem; // base/index/scale/disp value for MEM operand
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080044 };
45} cs_mips_op;
46
47// Instruction structure
48typedef struct cs_mips {
49 // Number of operands of this instruction,
50 // or 0 when instruction has no operand.
51 uint8_t op_count;
52 cs_mips_op operands[8]; // operands for this instruction.
53} cs_mips;
54
Nguyen Anh Quynha2f825f2013-12-04 23:56:24 +080055//> MIPS registers
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080056typedef enum mips_reg {
57 MIPS_REG_INVALID = 0,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +080058 //> General purpose registers
Nguyen Anh Quynhea5b79d2013-12-04 12:10:47 +080059 MIPS_REG_0,
60 MIPS_REG_1,
61 MIPS_REG_2,
62 MIPS_REG_3,
63 MIPS_REG_4,
64 MIPS_REG_5,
65 MIPS_REG_6,
66 MIPS_REG_7,
67 MIPS_REG_8,
68 MIPS_REG_9,
69 MIPS_REG_10,
70 MIPS_REG_11,
71 MIPS_REG_12,
72 MIPS_REG_13,
73 MIPS_REG_14,
74 MIPS_REG_15,
75 MIPS_REG_16,
76 MIPS_REG_17,
77 MIPS_REG_18,
78 MIPS_REG_19,
79 MIPS_REG_20,
80 MIPS_REG_21,
81 MIPS_REG_22,
82 MIPS_REG_23,
83 MIPS_REG_24,
84 MIPS_REG_25,
85 MIPS_REG_26,
86 MIPS_REG_27,
87 MIPS_REG_28,
88 MIPS_REG_29,
89 MIPS_REG_30,
90 MIPS_REG_31,
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080091
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +080092 //> DSP registers
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +080093 MIPS_REG_DSPCCOND,
94 MIPS_REG_DSPCARRY,
95 MIPS_REG_DSPEFI,
96 MIPS_REG_DSPOUTFLAG,
97 MIPS_REG_DSPOUTFLAG16_19,
98 MIPS_REG_DSPOUTFLAG20,
99 MIPS_REG_DSPOUTFLAG21,
100 MIPS_REG_DSPOUTFLAG22,
101 MIPS_REG_DSPOUTFLAG23,
102 MIPS_REG_DSPPOS,
103 MIPS_REG_DSPSCOUNT,
104
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800105 //> ACC registers
Nguyen Anh Quynhea5b79d2013-12-04 12:10:47 +0800106 MIPS_REG_AC0,
107 MIPS_REG_AC1,
108 MIPS_REG_AC2,
109 MIPS_REG_AC3,
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800110
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800111 //> COP registers
112 MIPS_REG_CC0,
113 MIPS_REG_CC1,
114 MIPS_REG_CC2,
115 MIPS_REG_CC3,
116 MIPS_REG_CC4,
117 MIPS_REG_CC5,
118 MIPS_REG_CC6,
119 MIPS_REG_CC7,
120
121 //> FPU registers
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800122 MIPS_REG_F0,
123 MIPS_REG_F1,
124 MIPS_REG_F2,
125 MIPS_REG_F3,
126 MIPS_REG_F4,
127 MIPS_REG_F5,
128 MIPS_REG_F6,
129 MIPS_REG_F7,
130 MIPS_REG_F8,
131 MIPS_REG_F9,
132 MIPS_REG_F10,
133 MIPS_REG_F11,
134 MIPS_REG_F12,
135 MIPS_REG_F13,
136 MIPS_REG_F14,
137 MIPS_REG_F15,
138 MIPS_REG_F16,
139 MIPS_REG_F17,
140 MIPS_REG_F18,
141 MIPS_REG_F19,
142 MIPS_REG_F20,
143 MIPS_REG_F21,
144 MIPS_REG_F22,
145 MIPS_REG_F23,
146 MIPS_REG_F24,
147 MIPS_REG_F25,
148 MIPS_REG_F26,
149 MIPS_REG_F27,
150 MIPS_REG_F28,
151 MIPS_REG_F29,
152 MIPS_REG_F30,
153 MIPS_REG_F31,
154
155 MIPS_REG_FCC0,
156 MIPS_REG_FCC1,
157 MIPS_REG_FCC2,
158 MIPS_REG_FCC3,
159 MIPS_REG_FCC4,
160 MIPS_REG_FCC5,
161 MIPS_REG_FCC6,
162 MIPS_REG_FCC7,
163
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800164 //> AFPR128
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800165 MIPS_REG_W0,
166 MIPS_REG_W1,
167 MIPS_REG_W2,
168 MIPS_REG_W3,
169 MIPS_REG_W4,
170 MIPS_REG_W5,
171 MIPS_REG_W6,
172 MIPS_REG_W7,
173 MIPS_REG_W8,
174 MIPS_REG_W9,
175 MIPS_REG_W10,
176 MIPS_REG_W11,
177 MIPS_REG_W12,
178 MIPS_REG_W13,
179 MIPS_REG_W14,
180 MIPS_REG_W15,
181 MIPS_REG_W16,
182 MIPS_REG_W17,
183 MIPS_REG_W18,
184 MIPS_REG_W19,
185 MIPS_REG_W20,
186 MIPS_REG_W21,
187 MIPS_REG_W22,
188 MIPS_REG_W23,
189 MIPS_REG_W24,
190 MIPS_REG_W25,
191 MIPS_REG_W26,
192 MIPS_REG_W27,
193 MIPS_REG_W28,
194 MIPS_REG_W29,
195 MIPS_REG_W30,
196 MIPS_REG_W31,
197
Nguyen Anh Quynhad89d252013-12-11 23:20:34 +0800198 MIPS_REG_HI,
199 MIPS_REG_LO,
Nguyen Anh Quynhad89d252013-12-11 23:20:34 +0800200
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800201 MIPS_REG_P0,
202 MIPS_REG_P1,
203 MIPS_REG_P2,
204
205 MIPS_REG_MPL0,
206 MIPS_REG_MPL1,
207 MIPS_REG_MPL2,
208
Nguyen Anh Quynhd7e42b72014-09-29 17:15:25 +0800209 MIPS_REG_ENDING, // <-- mark the end of the list or registers
Nguyen Anh Quynhea5b79d2013-12-04 12:10:47 +0800210
211 // alias registers
212 MIPS_REG_ZERO = MIPS_REG_0,
213 MIPS_REG_AT = MIPS_REG_1,
214 MIPS_REG_V0 = MIPS_REG_2,
215 MIPS_REG_V1 = MIPS_REG_3,
216 MIPS_REG_A0 = MIPS_REG_4,
217 MIPS_REG_A1 = MIPS_REG_5,
218 MIPS_REG_A2 = MIPS_REG_6,
219 MIPS_REG_A3 = MIPS_REG_7,
220 MIPS_REG_T0 = MIPS_REG_8,
221 MIPS_REG_T1 = MIPS_REG_9,
222 MIPS_REG_T2 = MIPS_REG_10,
223 MIPS_REG_T3 = MIPS_REG_11,
224 MIPS_REG_T4 = MIPS_REG_12,
225 MIPS_REG_T5 = MIPS_REG_13,
226 MIPS_REG_T6 = MIPS_REG_14,
227 MIPS_REG_T7 = MIPS_REG_15,
228 MIPS_REG_S0 = MIPS_REG_16,
229 MIPS_REG_S1 = MIPS_REG_17,
230 MIPS_REG_S2 = MIPS_REG_18,
231 MIPS_REG_S3 = MIPS_REG_19,
232 MIPS_REG_S4 = MIPS_REG_20,
233 MIPS_REG_S5 = MIPS_REG_21,
234 MIPS_REG_S6 = MIPS_REG_22,
235 MIPS_REG_S7 = MIPS_REG_23,
236 MIPS_REG_T8 = MIPS_REG_24,
237 MIPS_REG_T9 = MIPS_REG_25,
238 MIPS_REG_K0 = MIPS_REG_26,
239 MIPS_REG_K1 = MIPS_REG_27,
240 MIPS_REG_GP = MIPS_REG_28,
241 MIPS_REG_SP = MIPS_REG_29,
242 MIPS_REG_FP = MIPS_REG_30, MIPS_REG_S8 = MIPS_REG_30,
243 MIPS_REG_RA = MIPS_REG_31,
244
245 MIPS_REG_HI0 = MIPS_REG_AC0,
246 MIPS_REG_HI1 = MIPS_REG_AC1,
247 MIPS_REG_HI2 = MIPS_REG_AC2,
248 MIPS_REG_HI3 = MIPS_REG_AC3,
249
250 MIPS_REG_LO0 = MIPS_REG_HI0,
251 MIPS_REG_LO1 = MIPS_REG_HI1,
252 MIPS_REG_LO2 = MIPS_REG_HI2,
253 MIPS_REG_LO3 = MIPS_REG_HI3,
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800254} mips_reg;
255
Nguyen Anh Quynha2f825f2013-12-04 23:56:24 +0800256//> MIPS instruction
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800257typedef enum mips_insn {
258 MIPS_INS_INVALID = 0,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800259
260 MIPS_INS_ABSQ_S,
261 MIPS_INS_ADD,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800262 MIPS_INS_ADDIUPC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800263 MIPS_INS_ADDQH,
264 MIPS_INS_ADDQH_R,
265 MIPS_INS_ADDQ,
266 MIPS_INS_ADDQ_S,
267 MIPS_INS_ADDSC,
268 MIPS_INS_ADDS_A,
269 MIPS_INS_ADDS_S,
270 MIPS_INS_ADDS_U,
271 MIPS_INS_ADDUH,
272 MIPS_INS_ADDUH_R,
273 MIPS_INS_ADDU,
274 MIPS_INS_ADDU_S,
275 MIPS_INS_ADDVI,
276 MIPS_INS_ADDV,
277 MIPS_INS_ADDWC,
278 MIPS_INS_ADD_A,
279 MIPS_INS_ADDI,
280 MIPS_INS_ADDIU,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800281 MIPS_INS_ALIGN,
282 MIPS_INS_ALUIPC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800283 MIPS_INS_AND,
284 MIPS_INS_ANDI,
285 MIPS_INS_APPEND,
286 MIPS_INS_ASUB_S,
287 MIPS_INS_ASUB_U,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800288 MIPS_INS_AUI,
289 MIPS_INS_AUIPC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800290 MIPS_INS_AVER_S,
291 MIPS_INS_AVER_U,
292 MIPS_INS_AVE_S,
293 MIPS_INS_AVE_U,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800294 MIPS_INS_BADDU,
295 MIPS_INS_BAL,
296 MIPS_INS_BALC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800297 MIPS_INS_BALIGN,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800298 MIPS_INS_BC,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800299 MIPS_INS_BC0F,
300 MIPS_INS_BC0FL,
301 MIPS_INS_BC0T,
302 MIPS_INS_BC0TL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800303 MIPS_INS_BC1EQZ,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800304 MIPS_INS_BC1F,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800305 MIPS_INS_BC1FL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800306 MIPS_INS_BC1NEZ,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800307 MIPS_INS_BC1T,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800308 MIPS_INS_BC1TL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800309 MIPS_INS_BC2EQZ,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800310 MIPS_INS_BC2F,
311 MIPS_INS_BC2FL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800312 MIPS_INS_BC2NEZ,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800313 MIPS_INS_BC2T,
314 MIPS_INS_BC2TL,
315 MIPS_INS_BC3F,
316 MIPS_INS_BC3FL,
317 MIPS_INS_BC3T,
318 MIPS_INS_BC3TL,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800319 MIPS_INS_BCLRI,
320 MIPS_INS_BCLR,
321 MIPS_INS_BEQ,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800322 MIPS_INS_BEQC,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800323 MIPS_INS_BEQL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800324 MIPS_INS_BEQZALC,
325 MIPS_INS_BEQZC,
326 MIPS_INS_BGEC,
327 MIPS_INS_BGEUC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800328 MIPS_INS_BGEZ,
329 MIPS_INS_BGEZAL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800330 MIPS_INS_BGEZALC,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800331 MIPS_INS_BGEZALL,
332 MIPS_INS_BGEZALS,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800333 MIPS_INS_BGEZC,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800334 MIPS_INS_BGEZL,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800335 MIPS_INS_BGTZ,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800336 MIPS_INS_BGTZALC,
337 MIPS_INS_BGTZC,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800338 MIPS_INS_BGTZL,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800339 MIPS_INS_BINSLI,
340 MIPS_INS_BINSL,
341 MIPS_INS_BINSRI,
342 MIPS_INS_BINSR,
343 MIPS_INS_BITREV,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800344 MIPS_INS_BITSWAP,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800345 MIPS_INS_BLEZ,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800346 MIPS_INS_BLEZALC,
347 MIPS_INS_BLEZC,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800348 MIPS_INS_BLEZL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800349 MIPS_INS_BLTC,
350 MIPS_INS_BLTUC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800351 MIPS_INS_BLTZ,
352 MIPS_INS_BLTZAL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800353 MIPS_INS_BLTZALC,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800354 MIPS_INS_BLTZALL,
355 MIPS_INS_BLTZALS,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800356 MIPS_INS_BLTZC,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800357 MIPS_INS_BLTZL,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800358 MIPS_INS_BMNZI,
359 MIPS_INS_BMNZ,
360 MIPS_INS_BMZI,
361 MIPS_INS_BMZ,
362 MIPS_INS_BNE,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800363 MIPS_INS_BNEC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800364 MIPS_INS_BNEGI,
365 MIPS_INS_BNEG,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800366 MIPS_INS_BNEL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800367 MIPS_INS_BNEZALC,
368 MIPS_INS_BNEZC,
369 MIPS_INS_BNVC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800370 MIPS_INS_BNZ,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800371 MIPS_INS_BOVC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800372 MIPS_INS_BPOSGE32,
373 MIPS_INS_BREAK,
374 MIPS_INS_BSELI,
375 MIPS_INS_BSEL,
376 MIPS_INS_BSETI,
377 MIPS_INS_BSET,
378 MIPS_INS_BZ,
379 MIPS_INS_BEQZ,
380 MIPS_INS_B,
381 MIPS_INS_BNEZ,
382 MIPS_INS_BTEQZ,
383 MIPS_INS_BTNEZ,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800384 MIPS_INS_CACHE,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800385 MIPS_INS_CEIL,
386 MIPS_INS_CEQI,
387 MIPS_INS_CEQ,
388 MIPS_INS_CFC1,
389 MIPS_INS_CFCMSA,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800390 MIPS_INS_CINS,
391 MIPS_INS_CINS32,
392 MIPS_INS_CLASS,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800393 MIPS_INS_CLEI_S,
394 MIPS_INS_CLEI_U,
395 MIPS_INS_CLE_S,
396 MIPS_INS_CLE_U,
397 MIPS_INS_CLO,
398 MIPS_INS_CLTI_S,
399 MIPS_INS_CLTI_U,
400 MIPS_INS_CLT_S,
401 MIPS_INS_CLT_U,
402 MIPS_INS_CLZ,
403 MIPS_INS_CMPGDU,
404 MIPS_INS_CMPGU,
405 MIPS_INS_CMPU,
406 MIPS_INS_CMP,
407 MIPS_INS_COPY_S,
408 MIPS_INS_COPY_U,
409 MIPS_INS_CTC1,
410 MIPS_INS_CTCMSA,
411 MIPS_INS_CVT,
412 MIPS_INS_C,
413 MIPS_INS_CMPI,
414 MIPS_INS_DADD,
415 MIPS_INS_DADDI,
416 MIPS_INS_DADDIU,
417 MIPS_INS_DADDU,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800418 MIPS_INS_DAHI,
419 MIPS_INS_DALIGN,
420 MIPS_INS_DATI,
421 MIPS_INS_DAUI,
422 MIPS_INS_DBITSWAP,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800423 MIPS_INS_DCLO,
424 MIPS_INS_DCLZ,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800425 MIPS_INS_DDIV,
426 MIPS_INS_DDIVU,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800427 MIPS_INS_DERET,
428 MIPS_INS_DEXT,
429 MIPS_INS_DEXTM,
430 MIPS_INS_DEXTU,
431 MIPS_INS_DI,
432 MIPS_INS_DINS,
433 MIPS_INS_DINSM,
434 MIPS_INS_DINSU,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800435 MIPS_INS_DIV,
436 MIPS_INS_DIVU,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800437 MIPS_INS_DIV_S,
438 MIPS_INS_DIV_U,
Nguyen Anh Quynhbc0b3b92014-02-19 15:13:20 +0800439 MIPS_INS_DLSA,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800440 MIPS_INS_DMFC0,
441 MIPS_INS_DMFC1,
442 MIPS_INS_DMFC2,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800443 MIPS_INS_DMOD,
444 MIPS_INS_DMODU,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800445 MIPS_INS_DMTC0,
446 MIPS_INS_DMTC1,
447 MIPS_INS_DMTC2,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800448 MIPS_INS_DMUH,
449 MIPS_INS_DMUHU,
450 MIPS_INS_DMUL,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800451 MIPS_INS_DMULT,
452 MIPS_INS_DMULTU,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800453 MIPS_INS_DMULU,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800454 MIPS_INS_DOTP_S,
455 MIPS_INS_DOTP_U,
456 MIPS_INS_DPADD_S,
457 MIPS_INS_DPADD_U,
458 MIPS_INS_DPAQX_SA,
459 MIPS_INS_DPAQX_S,
460 MIPS_INS_DPAQ_SA,
461 MIPS_INS_DPAQ_S,
462 MIPS_INS_DPAU,
463 MIPS_INS_DPAX,
464 MIPS_INS_DPA,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800465 MIPS_INS_DPOP,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800466 MIPS_INS_DPSQX_SA,
467 MIPS_INS_DPSQX_S,
468 MIPS_INS_DPSQ_SA,
469 MIPS_INS_DPSQ_S,
470 MIPS_INS_DPSUB_S,
471 MIPS_INS_DPSUB_U,
472 MIPS_INS_DPSU,
473 MIPS_INS_DPSX,
474 MIPS_INS_DPS,
475 MIPS_INS_DROTR,
476 MIPS_INS_DROTR32,
477 MIPS_INS_DROTRV,
478 MIPS_INS_DSBH,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800479 MIPS_INS_DSHD,
480 MIPS_INS_DSLL,
481 MIPS_INS_DSLL32,
482 MIPS_INS_DSLLV,
483 MIPS_INS_DSRA,
484 MIPS_INS_DSRA32,
485 MIPS_INS_DSRAV,
486 MIPS_INS_DSRL,
487 MIPS_INS_DSRL32,
488 MIPS_INS_DSRLV,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800489 MIPS_INS_DSUB,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800490 MIPS_INS_DSUBU,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800491 MIPS_INS_EHB,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800492 MIPS_INS_EI,
493 MIPS_INS_ERET,
494 MIPS_INS_EXT,
495 MIPS_INS_EXTP,
496 MIPS_INS_EXTPDP,
497 MIPS_INS_EXTPDPV,
498 MIPS_INS_EXTPV,
499 MIPS_INS_EXTRV_RS,
500 MIPS_INS_EXTRV_R,
501 MIPS_INS_EXTRV_S,
502 MIPS_INS_EXTRV,
503 MIPS_INS_EXTR_RS,
504 MIPS_INS_EXTR_R,
505 MIPS_INS_EXTR_S,
506 MIPS_INS_EXTR,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800507 MIPS_INS_EXTS,
508 MIPS_INS_EXTS32,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800509 MIPS_INS_ABS,
510 MIPS_INS_FADD,
511 MIPS_INS_FCAF,
512 MIPS_INS_FCEQ,
513 MIPS_INS_FCLASS,
514 MIPS_INS_FCLE,
515 MIPS_INS_FCLT,
516 MIPS_INS_FCNE,
517 MIPS_INS_FCOR,
518 MIPS_INS_FCUEQ,
519 MIPS_INS_FCULE,
520 MIPS_INS_FCULT,
521 MIPS_INS_FCUNE,
522 MIPS_INS_FCUN,
523 MIPS_INS_FDIV,
524 MIPS_INS_FEXDO,
525 MIPS_INS_FEXP2,
526 MIPS_INS_FEXUPL,
527 MIPS_INS_FEXUPR,
528 MIPS_INS_FFINT_S,
529 MIPS_INS_FFINT_U,
530 MIPS_INS_FFQL,
531 MIPS_INS_FFQR,
532 MIPS_INS_FILL,
533 MIPS_INS_FLOG2,
534 MIPS_INS_FLOOR,
535 MIPS_INS_FMADD,
536 MIPS_INS_FMAX_A,
537 MIPS_INS_FMAX,
538 MIPS_INS_FMIN_A,
539 MIPS_INS_FMIN,
540 MIPS_INS_MOV,
541 MIPS_INS_FMSUB,
542 MIPS_INS_FMUL,
543 MIPS_INS_MUL,
544 MIPS_INS_NEG,
545 MIPS_INS_FRCP,
546 MIPS_INS_FRINT,
547 MIPS_INS_FRSQRT,
548 MIPS_INS_FSAF,
549 MIPS_INS_FSEQ,
550 MIPS_INS_FSLE,
551 MIPS_INS_FSLT,
552 MIPS_INS_FSNE,
553 MIPS_INS_FSOR,
554 MIPS_INS_FSQRT,
555 MIPS_INS_SQRT,
556 MIPS_INS_FSUB,
557 MIPS_INS_SUB,
558 MIPS_INS_FSUEQ,
559 MIPS_INS_FSULE,
560 MIPS_INS_FSULT,
561 MIPS_INS_FSUNE,
562 MIPS_INS_FSUN,
563 MIPS_INS_FTINT_S,
564 MIPS_INS_FTINT_U,
565 MIPS_INS_FTQ,
566 MIPS_INS_FTRUNC_S,
567 MIPS_INS_FTRUNC_U,
568 MIPS_INS_HADD_S,
569 MIPS_INS_HADD_U,
570 MIPS_INS_HSUB_S,
571 MIPS_INS_HSUB_U,
572 MIPS_INS_ILVEV,
573 MIPS_INS_ILVL,
574 MIPS_INS_ILVOD,
575 MIPS_INS_ILVR,
576 MIPS_INS_INS,
577 MIPS_INS_INSERT,
578 MIPS_INS_INSV,
579 MIPS_INS_INSVE,
580 MIPS_INS_J,
581 MIPS_INS_JAL,
582 MIPS_INS_JALR,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800583 MIPS_INS_JALRS,
584 MIPS_INS_JALS,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800585 MIPS_INS_JALX,
586 MIPS_INS_JIALC,
587 MIPS_INS_JIC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800588 MIPS_INS_JR,
Nguyen Anh Quynh5691dd42014-09-24 18:03:47 +0800589 MIPS_INS_JRADDIUSP,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800590 MIPS_INS_JRC,
591 MIPS_INS_JALRC,
592 MIPS_INS_LB,
593 MIPS_INS_LBUX,
594 MIPS_INS_LBU,
595 MIPS_INS_LD,
596 MIPS_INS_LDC1,
597 MIPS_INS_LDC2,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800598 MIPS_INS_LDC3,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800599 MIPS_INS_LDI,
600 MIPS_INS_LDL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800601 MIPS_INS_LDPC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800602 MIPS_INS_LDR,
603 MIPS_INS_LDXC1,
604 MIPS_INS_LH,
605 MIPS_INS_LHX,
606 MIPS_INS_LHU,
607 MIPS_INS_LL,
608 MIPS_INS_LLD,
609 MIPS_INS_LSA,
610 MIPS_INS_LUXC1,
611 MIPS_INS_LUI,
612 MIPS_INS_LW,
613 MIPS_INS_LWC1,
614 MIPS_INS_LWC2,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800615 MIPS_INS_LWC3,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800616 MIPS_INS_LWL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800617 MIPS_INS_LWPC,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800618 MIPS_INS_LWR,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800619 MIPS_INS_LWUPC,
Nguyen Anh Quynhbc0b3b92014-02-19 15:13:20 +0800620 MIPS_INS_LWU,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800621 MIPS_INS_LWX,
622 MIPS_INS_LWXC1,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800623 MIPS_INS_LI,
624 MIPS_INS_MADD,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800625 MIPS_INS_MADDF,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800626 MIPS_INS_MADDR_Q,
627 MIPS_INS_MADDU,
628 MIPS_INS_MADDV,
629 MIPS_INS_MADD_Q,
630 MIPS_INS_MAQ_SA,
631 MIPS_INS_MAQ_S,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800632 MIPS_INS_MAXA,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800633 MIPS_INS_MAXI_S,
634 MIPS_INS_MAXI_U,
635 MIPS_INS_MAX_A,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800636 MIPS_INS_MAX,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800637 MIPS_INS_MAX_S,
638 MIPS_INS_MAX_U,
639 MIPS_INS_MFC0,
640 MIPS_INS_MFC1,
641 MIPS_INS_MFC2,
642 MIPS_INS_MFHC1,
643 MIPS_INS_MFHI,
644 MIPS_INS_MFLO,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800645 MIPS_INS_MINA,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800646 MIPS_INS_MINI_S,
647 MIPS_INS_MINI_U,
648 MIPS_INS_MIN_A,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800649 MIPS_INS_MIN,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800650 MIPS_INS_MIN_S,
651 MIPS_INS_MIN_U,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800652 MIPS_INS_MOD,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800653 MIPS_INS_MODSUB,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800654 MIPS_INS_MODU,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800655 MIPS_INS_MOD_S,
656 MIPS_INS_MOD_U,
657 MIPS_INS_MOVE,
658 MIPS_INS_MOVF,
659 MIPS_INS_MOVN,
660 MIPS_INS_MOVT,
661 MIPS_INS_MOVZ,
662 MIPS_INS_MSUB,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800663 MIPS_INS_MSUBF,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800664 MIPS_INS_MSUBR_Q,
665 MIPS_INS_MSUBU,
666 MIPS_INS_MSUBV,
667 MIPS_INS_MSUB_Q,
668 MIPS_INS_MTC0,
669 MIPS_INS_MTC1,
670 MIPS_INS_MTC2,
671 MIPS_INS_MTHC1,
672 MIPS_INS_MTHI,
673 MIPS_INS_MTHLIP,
674 MIPS_INS_MTLO,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800675 MIPS_INS_MTM0,
676 MIPS_INS_MTM1,
677 MIPS_INS_MTM2,
678 MIPS_INS_MTP0,
679 MIPS_INS_MTP1,
680 MIPS_INS_MTP2,
681 MIPS_INS_MUH,
682 MIPS_INS_MUHU,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800683 MIPS_INS_MULEQ_S,
684 MIPS_INS_MULEU_S,
685 MIPS_INS_MULQ_RS,
686 MIPS_INS_MULQ_S,
687 MIPS_INS_MULR_Q,
688 MIPS_INS_MULSAQ_S,
689 MIPS_INS_MULSA,
690 MIPS_INS_MULT,
691 MIPS_INS_MULTU,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800692 MIPS_INS_MULU,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800693 MIPS_INS_MULV,
694 MIPS_INS_MUL_Q,
695 MIPS_INS_MUL_S,
696 MIPS_INS_NLOC,
697 MIPS_INS_NLZC,
698 MIPS_INS_NMADD,
699 MIPS_INS_NMSUB,
700 MIPS_INS_NOR,
701 MIPS_INS_NORI,
702 MIPS_INS_NOT,
703 MIPS_INS_OR,
704 MIPS_INS_ORI,
705 MIPS_INS_PACKRL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800706 MIPS_INS_PAUSE,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800707 MIPS_INS_PCKEV,
708 MIPS_INS_PCKOD,
709 MIPS_INS_PCNT,
710 MIPS_INS_PICK,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800711 MIPS_INS_POP,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800712 MIPS_INS_PRECEQU,
713 MIPS_INS_PRECEQ,
714 MIPS_INS_PRECEU,
715 MIPS_INS_PRECRQU_S,
716 MIPS_INS_PRECRQ,
717 MIPS_INS_PRECRQ_RS,
718 MIPS_INS_PRECR,
719 MIPS_INS_PRECR_SRA,
720 MIPS_INS_PRECR_SRA_R,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800721 MIPS_INS_PREF,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800722 MIPS_INS_PREPEND,
723 MIPS_INS_RADDU,
724 MIPS_INS_RDDSP,
725 MIPS_INS_RDHWR,
726 MIPS_INS_REPLV,
727 MIPS_INS_REPL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800728 MIPS_INS_RINT,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800729 MIPS_INS_ROTR,
730 MIPS_INS_ROTRV,
731 MIPS_INS_ROUND,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800732 MIPS_INS_SAT_S,
733 MIPS_INS_SAT_U,
734 MIPS_INS_SB,
735 MIPS_INS_SC,
736 MIPS_INS_SCD,
737 MIPS_INS_SD,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800738 MIPS_INS_SDBBP,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800739 MIPS_INS_SDC1,
740 MIPS_INS_SDC2,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800741 MIPS_INS_SDC3,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800742 MIPS_INS_SDL,
743 MIPS_INS_SDR,
744 MIPS_INS_SDXC1,
745 MIPS_INS_SEB,
746 MIPS_INS_SEH,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800747 MIPS_INS_SELEQZ,
748 MIPS_INS_SELNEZ,
749 MIPS_INS_SEL,
750 MIPS_INS_SEQ,
751 MIPS_INS_SEQI,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800752 MIPS_INS_SH,
753 MIPS_INS_SHF,
754 MIPS_INS_SHILO,
755 MIPS_INS_SHILOV,
756 MIPS_INS_SHLLV,
757 MIPS_INS_SHLLV_S,
758 MIPS_INS_SHLL,
759 MIPS_INS_SHLL_S,
760 MIPS_INS_SHRAV,
761 MIPS_INS_SHRAV_R,
762 MIPS_INS_SHRA,
763 MIPS_INS_SHRA_R,
764 MIPS_INS_SHRLV,
765 MIPS_INS_SHRL,
766 MIPS_INS_SLDI,
767 MIPS_INS_SLD,
768 MIPS_INS_SLL,
769 MIPS_INS_SLLI,
770 MIPS_INS_SLLV,
771 MIPS_INS_SLT,
772 MIPS_INS_SLTI,
773 MIPS_INS_SLTIU,
774 MIPS_INS_SLTU,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800775 MIPS_INS_SNE,
776 MIPS_INS_SNEI,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800777 MIPS_INS_SPLATI,
778 MIPS_INS_SPLAT,
779 MIPS_INS_SRA,
780 MIPS_INS_SRAI,
781 MIPS_INS_SRARI,
782 MIPS_INS_SRAR,
783 MIPS_INS_SRAV,
784 MIPS_INS_SRL,
785 MIPS_INS_SRLI,
786 MIPS_INS_SRLRI,
787 MIPS_INS_SRLR,
788 MIPS_INS_SRLV,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800789 MIPS_INS_SSNOP,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800790 MIPS_INS_ST,
791 MIPS_INS_SUBQH,
792 MIPS_INS_SUBQH_R,
793 MIPS_INS_SUBQ,
794 MIPS_INS_SUBQ_S,
795 MIPS_INS_SUBSUS_U,
796 MIPS_INS_SUBSUU_S,
797 MIPS_INS_SUBS_S,
798 MIPS_INS_SUBS_U,
799 MIPS_INS_SUBUH,
800 MIPS_INS_SUBUH_R,
801 MIPS_INS_SUBU,
802 MIPS_INS_SUBU_S,
803 MIPS_INS_SUBVI,
804 MIPS_INS_SUBV,
805 MIPS_INS_SUXC1,
806 MIPS_INS_SW,
807 MIPS_INS_SWC1,
808 MIPS_INS_SWC2,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800809 MIPS_INS_SWC3,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800810 MIPS_INS_SWL,
811 MIPS_INS_SWR,
812 MIPS_INS_SWXC1,
813 MIPS_INS_SYNC,
814 MIPS_INS_SYSCALL,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800815 MIPS_INS_TEQ,
816 MIPS_INS_TEQI,
817 MIPS_INS_TGE,
818 MIPS_INS_TGEI,
819 MIPS_INS_TGEIU,
820 MIPS_INS_TGEU,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800821 MIPS_INS_TLBP,
822 MIPS_INS_TLBR,
823 MIPS_INS_TLBWI,
824 MIPS_INS_TLBWR,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800825 MIPS_INS_TLT,
826 MIPS_INS_TLTI,
827 MIPS_INS_TLTIU,
828 MIPS_INS_TLTU,
829 MIPS_INS_TNE,
830 MIPS_INS_TNEI,
831 MIPS_INS_TRUNC,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800832 MIPS_INS_V3MULU,
833 MIPS_INS_VMM0,
834 MIPS_INS_VMULU,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800835 MIPS_INS_VSHF,
836 MIPS_INS_WAIT,
837 MIPS_INS_WRDSP,
838 MIPS_INS_WSBH,
839 MIPS_INS_XOR,
840 MIPS_INS_XORI,
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800841
Nguyen Anh Quynh75ef2422014-01-14 23:08:20 +0800842 //> some alias instructions
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800843 MIPS_INS_NOP,
Nguyen Anh Quynh66f6c222013-12-11 21:37:24 +0800844 MIPS_INS_NEGU,
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800845
Nguyen Anh Quynh54f8cef2014-09-24 22:53:54 +0800846 //> special instructions
847 MIPS_INS_JALR_HB, // jump and link with Hazard Barrier
848 MIPS_INS_JR_HB, // jump register with Hazard Barrier
849
Nguyen Anh Quynhd7e42b72014-09-29 17:15:25 +0800850 MIPS_INS_ENDING,
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800851} mips_insn;
852
Nguyen Anh Quynha2f825f2013-12-04 23:56:24 +0800853//> Group of MIPS instructions
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800854typedef enum mips_insn_group {
855 MIPS_GRP_INVALID = 0,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800856
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800857 MIPS_GRP_BITCOUNT,
858 MIPS_GRP_DSP,
859 MIPS_GRP_DSPR2,
860 MIPS_GRP_FPIDX,
861 MIPS_GRP_MSA,
862 MIPS_GRP_MIPS32R2,
863 MIPS_GRP_MIPS64,
864 MIPS_GRP_MIPS64R2,
865 MIPS_GRP_SEINREG,
866 MIPS_GRP_STDENC,
867 MIPS_GRP_SWAP,
868 MIPS_GRP_MICROMIPS,
869 MIPS_GRP_MIPS16MODE,
870 MIPS_GRP_FP64BIT,
871 MIPS_GRP_NONANSFPMATH,
872 MIPS_GRP_NOTFP64BIT,
Nguyen Anh Quynh162409e2013-12-08 20:17:28 +0800873 MIPS_GRP_NOTINMICROMIPS,
Nguyen Anh Quynhbc0b3b92014-02-19 15:13:20 +0800874 MIPS_GRP_NOTNACL,
Nguyen Anh Quynh0f0eb982014-08-14 18:26:39 +0800875 MIPS_GRP_NOTMIPS32R6,
876 MIPS_GRP_NOTMIPS64R6,
877 MIPS_GRP_CNMIPS,
878 MIPS_GRP_MIPS32,
879 MIPS_GRP_MIPS32R6,
880 MIPS_GRP_MIPS64R6,
881 MIPS_GRP_MIPS2,
882 MIPS_GRP_MIPS3,
883 MIPS_GRP_MIPS3_32,
884 MIPS_GRP_MIPS3_32R2,
885 MIPS_GRP_MIPS4_32,
886 MIPS_GRP_MIPS4_32R2,
887 MIPS_GRP_MIPS5_32R2,
888 MIPS_GRP_GP32BIT,
889 MIPS_GRP_GP64BIT,
Nguyen Anh Quynhec0ed8e2013-12-02 13:55:38 +0800890
Nguyen Anh Quynh3582bc12013-12-03 09:43:27 +0800891 MIPS_GRP_JUMP, // all jump instructions (conditional+direct+indirect jumps)
892
Nguyen Anh Quynhd7e42b72014-09-29 17:15:25 +0800893 MIPS_GRP_ENDING,
Nguyen Anh Quynh26ee41a2013-11-27 12:11:31 +0800894} mips_insn_group;
895
896#ifdef __cplusplus
897}
898#endif
899
900#endif