ROSE  0.11.98.0
InstructionEnumsPowerpc.h
1 #ifndef ROSE_BinaryAnalysis_InstructionEnumsPowerpc_H
2 #define ROSE_BinaryAnalysis_InstructionEnumsPowerpc_H
3 #include <featureTests.h>
4 #ifdef ROSE_ENABLE_BINARY_ANALYSIS
5 
6 #include <string>
7 
8 namespace Rose {
9 namespace BinaryAnalysis {
10 
12 enum PowerpcWordSize {
13  powerpc_32,
14  powerpc_64
15 };
16 
18 enum PowerpcInstructionKind {
19  powerpc_unknown_instruction = 0,
20  powerpc_add,
21  powerpc_add_record,
22  powerpc_addo,
23  powerpc_addo_record,
24  powerpc_addc,
25  powerpc_addc_record,
26  powerpc_addco,
27  powerpc_addco_record,
28  powerpc_adde,
29  powerpc_adde_record,
30  powerpc_addeo,
31  powerpc_addeo_record,
32  powerpc_addi,
33  powerpc_addic,
34  powerpc_addic_record,
35  powerpc_addis,
36  powerpc_addme,
37  powerpc_addme_record,
38  powerpc_addmeo,
39  powerpc_addmeo_record,
40  powerpc_addze,
41  powerpc_addze_record,
42  powerpc_addzeo,
43  powerpc_addzeo_record,
44  powerpc_and,
45  powerpc_and_record,
46  powerpc_andc,
47  powerpc_andc_record,
48  powerpc_andi_record,
49  powerpc_andis_record,
50  powerpc_b,
51  powerpc_ba,
52  powerpc_bl,
53  powerpc_bla,
54  powerpc_bc,
55  powerpc_bca,
56  powerpc_bcl,
57  powerpc_bcla,
58  powerpc_bcctr,
59  powerpc_bcctrl,
60  powerpc_bclr,
61  powerpc_bclrl,
62  powerpc_cmp,
63  powerpc_cmpi,
64  powerpc_cmpl,
65  powerpc_cmpli,
66  powerpc_cntlzd,
67  powerpc_cntlzd_record,
68  powerpc_cntlzw,
69  powerpc_cntlzw_record,
70  powerpc_crand,
71  powerpc_crandc,
72  powerpc_creqv,
73  powerpc_crnand,
74  powerpc_crnor,
75  powerpc_cror,
76  powerpc_crorc,
77  powerpc_crxor,
78  powerpc_dcbf,
79  powerpc_dcba,
80  powerpc_dcbi,
81  powerpc_dcbst,
82  powerpc_dcbt,
83  powerpc_dcbtst,
84  powerpc_dcbz,
85  powerpc_divd,
86  powerpc_divd_record,
87  powerpc_divdo,
88  powerpc_divdo_record,
89  powerpc_divdu,
90  powerpc_divdu_record,
91  powerpc_divduo,
92  powerpc_divduo_record,
93  powerpc_divw,
94  powerpc_divw_record,
95  powerpc_divwo,
96  powerpc_divwo_record,
97  powerpc_divwu,
98  powerpc_divwu_record,
99  powerpc_divwuo,
100  powerpc_divwuo_record,
101  powerpc_dst,
102  powerpc_dstt,
103  powerpc_dstst,
104  powerpc_dststt,
105  powerpc_dss,
106  powerpc_dssall,
107  powerpc_eciwx,
108  powerpc_ecowx,
109  powerpc_eieio,
110  powerpc_eqv,
111  powerpc_eqv_record,
112  powerpc_extsb,
113  powerpc_extsb_record,
114  powerpc_extsh,
115  powerpc_extsh_record,
116  powerpc_extsw,
117  powerpc_extsw_record,
118  powerpc_fabs,
119  powerpc_fabs_record,
120  powerpc_fadd,
121  powerpc_fadd_record,
122  powerpc_fadds,
123  powerpc_fadds_record,
124  powerpc_fcfid,
125  powerpc_fcfid_record,
126  powerpc_fcmpo,
127  powerpc_fcmpu,
128  powerpc_fctid,
129  powerpc_fctid_record,
130  powerpc_fctidz,
131  powerpc_fctidz_record,
132  powerpc_fctiw,
133  powerpc_fctiw_record,
134  powerpc_fctiwz,
135  powerpc_fctiwz_record,
136  powerpc_fdiv,
137  powerpc_fdiv_record,
138  powerpc_fdivs,
139  powerpc_fdivs_record,
140  powerpc_fmadd,
141  powerpc_fmadd_record,
142  powerpc_fmadds,
143  powerpc_fmadds_record,
144  powerpc_fmr,
145  powerpc_fmr_record,
146  powerpc_fmsub,
147  powerpc_fmsub_record,
148  powerpc_fmsubs,
149  powerpc_fmsubs_record,
150  powerpc_fmul,
151  powerpc_fmul_record,
152  powerpc_fmuls,
153  powerpc_fmuls_record,
154  powerpc_fnabs,
155  powerpc_fnabs_record,
156  powerpc_fneg,
157  powerpc_fneg_record,
158  powerpc_fnmadd,
159  powerpc_fnmadd_record,
160  powerpc_fnmadds,
161  powerpc_fnmadds_record,
162  powerpc_fnmsub,
163  powerpc_fnmsub_record,
164  powerpc_fnmsubs,
165  powerpc_fnmsubs_record,
166  powerpc_fpmul,
167  powerpc_fxmul,
168  powerpc_fxpmul,
169  powerpc_fxsmul,
170  powerpc_fpadd,
171  powerpc_fpsub,
172  powerpc_fpre,
173  powerpc_fprsqrte,
174  powerpc_fpmr,
175  powerpc_fpabs,
176  powerpc_lfssx,
177  powerpc_fpneg,
178  powerpc_lfssux,
179  powerpc_fprsp,
180  powerpc_lfsdx,
181  powerpc_fpnabs,
182  powerpc_lfsdux,
183  powerpc_lfxsx,
184  powerpc_fsmr,
185  powerpc_lfxsux,
186  powerpc_lfxdx,
187  powerpc_fsabs,
188  powerpc_lfxdux,
189  powerpc_lfpsx,
190  powerpc_fsneg,
191  powerpc_lfpsux,
192  powerpc_lfpdx,
193  powerpc_fsnabs,
194  powerpc_lfpdux,
195  powerpc_stfpiwx,
196  powerpc_fxmr,
197  powerpc_fpctiw,
198  powerpc_stfssx,
199  powerpc_stfssux,
200  powerpc_fpctiwz,
201  powerpc_stfsdx,
202  powerpc_stfsdux,
203  powerpc_stfxsx,
204  powerpc_fsmtp,
205  powerpc_stfxsux,
206  powerpc_stfxdx,
207  powerpc_stfxdux,
208  powerpc_stfpsx,
209  powerpc_fsmfp,
210  powerpc_stfpsux,
211  powerpc_stfpdx,
212  powerpc_stfpdux,
213  powerpc_fpsel,
214  powerpc_fpmadd,
215  powerpc_fpmsub,
216  powerpc_fxmadd,
217  powerpc_fxcpmadd,
218  powerpc_fxcsmadd,
219  powerpc_fpnmadd,
220  powerpc_fxnmadd,
221  powerpc_fxcpnmadd,
222  powerpc_fxcsnmadd,
223  powerpc_fxcpnpma,
224  powerpc_fxmsub,
225  powerpc_fxcsnpma,
226  powerpc_fxcpmsub,
227  powerpc_fxcpnsma,
228  powerpc_fxcsmsub,
229  powerpc_fxcsnsma,
230  powerpc_fpnmsub,
231  powerpc_fxcxma,
232  powerpc_fxnmsub,
233  powerpc_fxcxnpma,
234  powerpc_fxcpnmsub,
235  powerpc_fxcxnsma,
236  powerpc_fxcsnmsub,
237  powerpc_fxcxnms,
238  powerpc_fre,
239  powerpc_fre_record,
240  powerpc_fres,
241  powerpc_fres_record,
242  powerpc_frsp,
243  powerpc_frsp_record,
244  powerpc_frsqrte,
245  powerpc_frsqrte_record,
246  powerpc_frsqrtes,
247  powerpc_frsqrtes_record,
248  powerpc_fsel,
249  powerpc_fsel_record,
250  powerpc_fsqrt,
251  powerpc_fsqrt_record,
252  powerpc_fsqrts,
253  powerpc_fsqrts_record,
254  powerpc_fsub,
255  powerpc_fsub_record,
256  powerpc_fsubs,
257  powerpc_fsubs_record,
258  powerpc_icbi,
259  powerpc_isync,
260  powerpc_lbz,
261  powerpc_lbzu,
262  powerpc_lbzux,
263  powerpc_lbzx,
264  powerpc_ld,
265  powerpc_ldarx,
266  powerpc_ldu,
267  powerpc_ldux,
268  powerpc_ldx,
269  powerpc_lfd,
270  powerpc_lfdu,
271  powerpc_lfdux,
272  powerpc_lfdx,
273  powerpc_lfs,
274  powerpc_lfsu,
275  powerpc_lfsux,
276  powerpc_lfsx,
277  powerpc_lha,
278  powerpc_lhau,
279  powerpc_lhaux,
280  powerpc_lhax,
281  powerpc_lhbrx,
282  powerpc_lhz,
283  powerpc_lhzu,
284  powerpc_lhzux,
285  powerpc_lhzx,
286  powerpc_lmw,
287  powerpc_lswi,
288  powerpc_lswx,
289  powerpc_lwa,
290  powerpc_lwarx,
291  powerpc_lwaux,
292  powerpc_lwax,
293  powerpc_lwbrx,
294  powerpc_lwz,
295  powerpc_lwzu,
296  powerpc_lwzux,
297  powerpc_lwzx,
298  powerpc_mcrf,
299  powerpc_mcrfs,
300  powerpc_mcrxr,
301  powerpc_mfcr,
302  powerpc_mffs,
303  powerpc_mffs_record,
304  powerpc_mfmsr,
305  powerpc_mfspr,
306  powerpc_mfsr,
307  powerpc_mfsrin,
308  powerpc_mftb,
309  powerpc_mtcrf,
310  powerpc_mtfsb0,
311  powerpc_mtfsb0_record,
312  powerpc_mtfsb1,
313  powerpc_mtfsb1_record,
314  powerpc_mtfsf,
315  powerpc_mtfsf_record,
316  powerpc_mtfsfi,
317  powerpc_mtfsfi_record,
318  powerpc_mtmsr,
319  powerpc_mtmsrd,
320  powerpc_mtspr,
321  powerpc_mtsr,
322  powerpc_mtsrd,
323  powerpc_mtsrdin,
324  powerpc_mtsrin,
325  powerpc_mulhd,
326  powerpc_mulhd_record,
327  powerpc_mulhdu,
328  powerpc_mulhdu_record,
329  powerpc_mulhw,
330  powerpc_mulhw_record,
331  powerpc_mulhwu,
332  powerpc_mulhwu_record,
333  powerpc_mulld,
334  powerpc_mulld_record,
335  powerpc_mulldo,
336  powerpc_mulldo_record,
337  powerpc_mulli,
338  powerpc_mullw,
339  powerpc_mullw_record,
340  powerpc_mullwo,
341  powerpc_mullwo_record,
342  powerpc_nand,
343  powerpc_nand_record,
344  powerpc_neg,
345  powerpc_neg_record,
346  powerpc_nego,
347  powerpc_nego_record,
348  powerpc_nor,
349  powerpc_nor_record,
350  powerpc_or,
351  powerpc_or_record,
352  powerpc_orc,
353  powerpc_orc_record,
354  powerpc_ori,
355  powerpc_oris,
356  powerpc_popcntb,
357  powerpc_rfi,
358  powerpc_rfid,
359  powerpc_rldcl,
360  powerpc_rldcl_record,
361  powerpc_rldcr,
362  powerpc_rldcr_record,
363  powerpc_rldic,
364  powerpc_rldic_record,
365  powerpc_rldicl,
366  powerpc_rldicl_record,
367  powerpc_rldicr,
368  powerpc_rldicr_record,
369  powerpc_rldimi,
370  powerpc_rldimi_record,
371  powerpc_rlwimi,
372  powerpc_rlwimi_record,
373  powerpc_rlwinm,
374  powerpc_rlwinm_record,
375  powerpc_rlwnm,
376  powerpc_rlwnm_record,
377  powerpc_sc,
378  powerpc_slbia,
379  powerpc_slbie,
380  powerpc_sld,
381  powerpc_sld_record,
382  powerpc_slw,
383  powerpc_slw_record,
384  powerpc_srad,
385  powerpc_srad_record,
386  powerpc_sradi,
387  powerpc_sradi_record,
388  powerpc_srd,
389  powerpc_srd_record,
390  powerpc_sraw,
391  powerpc_sraw_record,
392  powerpc_srawi,
393  powerpc_srawi_record,
394  powerpc_srw,
395  powerpc_srw_record,
396  powerpc_stb,
397  powerpc_stbu,
398  powerpc_stbux,
399  powerpc_stbx,
400  powerpc_std,
401  powerpc_stdcx_record,
402  powerpc_stdu,
403  powerpc_stdux,
404  powerpc_stdx,
405  powerpc_stfd,
406  powerpc_stfdu,
407  powerpc_stfdux,
408  powerpc_stfdx,
409  powerpc_stfiwx,
410  powerpc_stfs,
411  powerpc_stfsu,
412  powerpc_stfsux,
413  powerpc_stfsx,
414  powerpc_sth,
415  powerpc_sthbrx,
416  powerpc_sthu,
417  powerpc_sthux,
418  powerpc_sthx,
419  powerpc_stmw,
420  powerpc_stswi,
421  powerpc_stswx,
422  powerpc_stw,
423  powerpc_stwbrx,
424  powerpc_stwcx_record,
425  powerpc_stwu,
426  powerpc_stwux,
427  powerpc_stwx,
428  powerpc_subf,
429  powerpc_subf_record,
430  powerpc_subfo,
431  powerpc_subfo_record,
432  powerpc_subfc,
433  powerpc_subfc_record,
434  powerpc_subfco,
435  powerpc_subfco_record,
436  powerpc_subfe,
437  powerpc_subfe_record,
438  powerpc_subfeo,
439  powerpc_subfeo_record,
440  powerpc_subfic,
441  powerpc_subfme,
442  powerpc_subfme_record,
443  powerpc_subfmeo,
444  powerpc_subfmeo_record,
445  powerpc_subfze,
446  powerpc_subfze_record,
447  powerpc_subfzeo,
448  powerpc_subfzeo_record,
449  powerpc_sync,
450  powerpc_td,
451  powerpc_tdi,
452  powerpc_tlbia,
453  powerpc_tlbie,
454  powerpc_tlbsync,
455  powerpc_tw,
456  powerpc_twi,
457  powerpc_xor,
458  powerpc_xor_record,
459  powerpc_xori,
460  powerpc_xoris,
461  powerpc_last_instruction
462 };
463 
465 enum PowerpcRegisterClass {
466  powerpc_regclass_unknown,
467  powerpc_regclass_gpr,
468  powerpc_regclass_fpr,
469  powerpc_regclass_cr,
470  powerpc_regclass_fpscr,
471  powerpc_regclass_spr,
472  powerpc_regclass_tbr,
473  powerpc_regclass_msr,
474  powerpc_regclass_sr,
475  powerpc_regclass_iar,
476  powerpc_regclass_pvr,
477  powerpc_last_register_class
478 };
479 
481 enum PowerpcConditionRegisterAccessGranularity {
482  powerpc_condreggranularity_whole,
483  powerpc_condreggranularity_field,
484  powerpc_condreggranularity_bit
485 };
486 
488 enum PowerpcSpecialPurposeRegister {
489  // These must match the processor's numbers
490  powerpc_spr_xer = 1,
491  powerpc_spr_lr = 8,
492  powerpc_spr_ctr = 9,
493  powerpc_spr_dsisr = 18,
494  powerpc_spr_dar = 19,
495  powerpc_spr_dec = 22 // FIXME: fill in the rest of these
496 };
497 
499 enum PowerpcTimeBaseRegister {
500  // These must match the processor's numbers
501  powerpc_tbr_tbl = 268,
502  powerpc_tbr_tbu = 269
503 };
504 
505 } // namespace
506 } // namespace
507 
508 #endif
509 #endif
Main namespace for the ROSE library.
Binary analysis.