ROSE  0.11.101.0
InstructionEnumsMips.h
1 /* Enum constants for MIPS architectures */
2 #ifndef ROSE_BinaryAnalysis_InstructionEnumsMips_H
3 #define ROSE_BinaryAnalysis_InstructionEnumsMips_H
4 #include <featureTests.h>
5 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
6 
7 namespace Rose {
8 namespace BinaryAnalysis {
9 
11 enum MipsRegisterClass {
12  mips_regclass_gpr,
13  mips_regclass_spr,
14  mips_regclass_fpr,
15  mips_regclass_fcsr,
16  mips_regclass_cp0gpr,
17  mips_regclass_cp2gpr,
18  mips_regclass_cp2spr,
19  mips_regclass_sgpr,
20  mips_regclass_hw,
21 };
22 
24 enum MipsFcsrMinors {
25  mips_fcsr_all,
26  mips_fcsr_fccr,
27  mips_fcsr_fexr,
28  mips_fcsr_fenr
29 };
30 
32 enum MipsSpecialPurposeRegister {
33  mips_spr_hi,
34  mips_spr_lo,
35  mips_spr_pc,
36  mips_spr_fir,
37  mips_spr_fcsr
38 };
39 
41 enum MipsInstructionKind {
42  mips_unknown_instruction,
43  mips_abs_s,
44  mips_abs_d,
45  mips_abs_ps,
46  mips_add,
47  mips_add_s,
48  mips_add_d,
49  mips_add_ps,
50  mips_addi,
51  mips_addiu,
52  mips_addu,
53  mips_alnv_ps,
54  mips_and,
55  mips_andi,
56  mips_bc1f,
57  mips_bc1fl,
58  mips_bc1t,
59  mips_bc1tl,
60  mips_bc2f,
61  mips_bc2fl,
62  mips_bc2t,
63  mips_bc2tl,
64  mips_beq,
65  mips_beql,
66  mips_bgez,
67  mips_bgezal,
68  mips_bgezall,
69  mips_bgezl,
70  mips_bgtz,
71  mips_bgtzl,
72  mips_blez,
73  mips_blezl,
74  mips_bltz,
75  mips_bltzal,
76  mips_bltzall,
77  mips_bltzl,
78  mips_bne,
79  mips_bnel,
80  mips_break,
81  mips_c_f_s,
82  mips_c_un_s,
83  mips_c_eq_s,
84  mips_c_ueq_s,
85  mips_c_olt_s,
86  mips_c_ult_s,
87  mips_c_ole_s,
88  mips_c_ule_s,
89  mips_c_sf_s,
90  mips_c_ngle_s,
91  mips_c_seq_s,
92  mips_c_ngl_s,
93  mips_c_lt_s,
94  mips_c_nge_s,
95  mips_c_le_s,
96  mips_c_ngt_s,
97  mips_c_f_d,
98  mips_c_un_d,
99  mips_c_eq_d,
100  mips_c_ueq_d,
101  mips_c_olt_d,
102  mips_c_ult_d,
103  mips_c_ole_d,
104  mips_c_ule_d,
105  mips_c_sf_d,
106  mips_c_ngle_d,
107  mips_c_seq_d,
108  mips_c_ngl_d,
109  mips_c_lt_d,
110  mips_c_nge_d,
111  mips_c_le_d,
112  mips_c_ngt_d,
113  mips_c_f_ps,
114  mips_c_un_ps,
115  mips_c_eq_ps,
116  mips_c_ueq_ps,
117  mips_c_olt_ps,
118  mips_c_ult_ps,
119  mips_c_ole_ps,
120  mips_c_ule_ps,
121  mips_c_sf_ps,
122  mips_c_ngle_ps,
123  mips_c_seq_ps,
124  mips_c_ngl_ps,
125  mips_c_lt_ps,
126  mips_c_nge_ps,
127  mips_c_le_ps,
128  mips_c_ngt_ps,
129  mips_cache,
130  mips_cachee,
131  mips_ceil_l_s,
132  mips_ceil_l_d,
133  mips_ceil_w_s,
134  mips_ceil_w_d,
135  mips_cfc1,
136  mips_cfc2,
137  mips_clo,
138  mips_clz,
139  mips_cop2,
140  mips_ctc1,
141  mips_ctc2,
142  mips_cvt_d_s,
143  mips_cvt_d_w,
144  mips_cvt_d_l,
145  mips_cvt_l_s,
146  mips_cvt_l_d,
147  mips_cvt_ps_s,
148  mips_cvt_s_d,
149  mips_cvt_s_w,
150  mips_cvt_s_l,
151  mips_cvt_s_pl,
152  mips_cvt_s_pu,
153  mips_cvt_w_s,
154  mips_cvt_w_d,
155  mips_di,
156  mips_div,
157  mips_div_s,
158  mips_div_d,
159  mips_divu,
160  mips_ehb,
161  mips_ei,
162  mips_eret,
163  mips_ext,
164  mips_floor_l_s,
165  mips_floor_l_d,
166  mips_floor_w_s,
167  mips_floor_w_d,
168  mips_ins,
169  mips_j,
170  mips_jal,
171  mips_jalr,
172  mips_jalr_hb,
173  mips_jalx,
174  mips_jr,
175  mips_jr_hb,
176  mips_lb,
177  mips_lbe,
178  mips_lbu,
179  mips_lbue,
180  mips_ldc1,
181  mips_ldc2,
182  mips_ldxc1,
183  mips_lh,
184  mips_lhe,
185  mips_lhu,
186  mips_lhue,
187  mips_ll,
188  mips_lle,
189  mips_lui,
190  mips_luxc1,
191  mips_lw,
192  mips_lwc1,
193  mips_lwc2,
194  mips_lwe,
195  mips_lwl,
196  mips_lwle,
197  mips_lwr,
198  mips_lwre,
199  mips_lwxc1,
200  mips_madd,
201  mips_madd_s,
202  mips_madd_d,
203  mips_madd_ps,
204  mips_maddu,
205  mips_mfc0,
206  mips_mfc1,
207  mips_mfc2,
208  mips_mfhc1,
209  mips_mfhc2,
210  mips_mfhi,
211  mips_mflo,
212  mips_mov_s,
213  mips_mov_d,
214  mips_mov_ps,
215  mips_movf,
216  mips_movf_s,
217  mips_movf_d,
218  mips_movf_ps,
219  mips_movn,
220  mips_movn_s,
221  mips_movn_d,
222  mips_movn_ps,
223  mips_movt,
224  mips_movt_s,
225  mips_movt_d,
226  mips_movt_ps,
227  mips_movz,
228  mips_movz_s,
229  mips_movz_d,
230  mips_movz_ps,
231  mips_msub,
232  mips_msub_s,
233  mips_msub_d,
234  mips_msub_ps,
235  mips_msubu,
236  mips_mtc0,
237  mips_mtc1,
238  mips_mtc2,
239  mips_mthc1,
240  mips_mthc2,
241  mips_mthi,
242  mips_mtlo,
243  mips_mul,
244  mips_mul_s,
245  mips_mul_d,
246  mips_mul_ps,
247  mips_mult,
248  mips_multu,
249  mips_neg_s,
250  mips_neg_d,
251  mips_neg_ps,
252  mips_nmadd_s,
253  mips_nmadd_d,
254  mips_nmadd_ps,
255  mips_nmsub_s,
256  mips_nmsub_d,
257  mips_nmsub_ps,
258  mips_nop,
259  mips_nor,
260  mips_or,
261  mips_ori,
262  mips_pause,
263  mips_pll_ps,
264  mips_plu_ps,
265  mips_pref,
266  mips_prefe,
267  mips_prefx,
268  mips_pul_ps,
269  mips_puu_ps,
270  mips_rdhwr,
271  mips_rdpgpr,
272  mips_recip_s,
273  mips_recip_d,
274  mips_rotr,
275  mips_rotrv,
276  mips_round_l_s,
277  mips_round_l_d,
278  mips_round_w_s,
279  mips_round_w_d,
280  mips_rsqrt_s,
281  mips_rsqrt_d,
282  mips_sb,
283  mips_sbe,
284  mips_sc,
285  mips_sce,
286  mips_sdc1,
287  mips_sdc2,
288  mips_sdxc1,
289  mips_seb,
290  mips_seh,
291  mips_sh,
292  mips_she,
293  mips_sll,
294  mips_sllv,
295  mips_slt,
296  mips_slti,
297  mips_sltiu,
298  mips_sltu,
299  mips_sqrt_s,
300  mips_sqrt_d,
301  mips_sra,
302  mips_srav,
303  mips_srl,
304  mips_srlv,
305  mips_ssnop,
306  mips_sub,
307  mips_sub_s,
308  mips_sub_d,
309  mips_sub_ps,
310  mips_subu,
311  mips_suxc1,
312  mips_sw,
313  mips_swc1,
314  mips_swc2,
315  mips_swe,
316  mips_swl,
317  mips_swle,
318  mips_swr,
319  mips_swre,
320  mips_swxc1,
321  mips_sync,
322  mips_synci,
323  mips_syscall,
324  mips_teq,
325  mips_teqi,
326  mips_tge,
327  mips_tgei,
328  mips_tgeiu,
329  mips_tgeu,
330  mips_tlbinv,
331  mips_tlbinvf,
332  mips_tlbp,
333  mips_tlbr,
334  mips_tlbwi,
335  mips_tlbwr,
336  mips_tlt,
337  mips_tlti,
338  mips_tltiu,
339  mips_tltu,
340  mips_tne,
341  mips_tnei,
342  mips_trunc_l_s,
343  mips_trunc_l_d,
344  mips_trunc_w_s,
345  mips_trunc_w_d,
346  mips_wait,
347  mips_wrpgpr,
348  mips_wsbh,
349  mips_xor,
350  mips_xori,
352  mips_last_instruction // must be last enum member
353 };
354 
355 } // namespace
356 } // namespace
357 
358 #endif
359 #endif
Main namespace for the ROSE library.
Binary analysis.