00001 #ifndef ROSE_POWERPC_INSTRUCTION_ENUM_H
00002 #define ROSE_POWERPC_INSTRUCTION_ENUM_H
00003
00004 #include <string>
00005
00006
00007
00008 enum PowerpcInstructionKind
00009 {
00010 powerpc_unknown_instruction = 0,
00011 powerpc_add,
00012 powerpc_add_record,
00013 powerpc_addo,
00014 powerpc_addo_record,
00015 powerpc_addc,
00016 powerpc_addc_record,
00017 powerpc_addco,
00018 powerpc_addco_record,
00019 powerpc_adde,
00020 powerpc_adde_record,
00021 powerpc_addeo,
00022 powerpc_addeo_record,
00023 powerpc_addi,
00024 powerpc_addic,
00025 powerpc_addic_record,
00026 powerpc_addis,
00027 powerpc_addme,
00028 powerpc_addme_record,
00029 powerpc_addmeo,
00030 powerpc_addmeo_record,
00031 powerpc_addze,
00032 powerpc_addze_record,
00033 powerpc_addzeo,
00034 powerpc_addzeo_record,
00035 powerpc_and,
00036 powerpc_and_record,
00037 powerpc_andc,
00038 powerpc_andc_record,
00039 powerpc_andi_record,
00040 powerpc_andis_record,
00041 powerpc_b,
00042 powerpc_ba,
00043 powerpc_bl,
00044 powerpc_bla,
00045 powerpc_bc,
00046 powerpc_bca,
00047 powerpc_bcl,
00048 powerpc_bcla,
00049 powerpc_bcctr,
00050 powerpc_bcctrl,
00051 powerpc_bclr,
00052 powerpc_bclrl,
00053 powerpc_cmp,
00054 powerpc_cmpi,
00055 powerpc_cmpl,
00056 powerpc_cmpli,
00057 powerpc_cntlzd,
00058 powerpc_cntlzd_record,
00059 powerpc_cntlzw,
00060 powerpc_cntlzw_record,
00061 powerpc_crand,
00062 powerpc_crandc,
00063 powerpc_creqv,
00064 powerpc_crnand,
00065 powerpc_crnor,
00066 powerpc_cror,
00067 powerpc_crorc,
00068 powerpc_crxor,
00069 powerpc_dcbf,
00070 powerpc_dcba,
00071 powerpc_dcbi,
00072 powerpc_dcbst,
00073 powerpc_dcbt,
00074 powerpc_dcbtst,
00075 powerpc_dcbz,
00076 powerpc_divd,
00077 powerpc_divd_record,
00078 powerpc_divdo,
00079 powerpc_divdo_record,
00080 powerpc_divdu,
00081 powerpc_divdu_record,
00082 powerpc_divduo,
00083 powerpc_divduo_record,
00084 powerpc_divw,
00085 powerpc_divw_record,
00086 powerpc_divwo,
00087 powerpc_divwo_record,
00088 powerpc_divwu,
00089 powerpc_divwu_record,
00090 powerpc_divwuo,
00091 powerpc_divwuo_record,
00092 powerpc_dst,
00093 powerpc_dstt,
00094 powerpc_dstst,
00095 powerpc_dststt,
00096 powerpc_dss,
00097 powerpc_dssall,
00098 powerpc_eciwx,
00099 powerpc_ecowx,
00100 powerpc_eieio,
00101 powerpc_eqv,
00102 powerpc_eqv_record,
00103 powerpc_extsb,
00104 powerpc_extsb_record,
00105 powerpc_extsh,
00106 powerpc_extsh_record,
00107 powerpc_extsw,
00108 powerpc_extsw_record,
00109 powerpc_fabs,
00110 powerpc_fabs_record,
00111 powerpc_fadd,
00112 powerpc_fadd_record,
00113 powerpc_fadds,
00114 powerpc_fadds_record,
00115 powerpc_fcfid,
00116 powerpc_fcfid_record,
00117 powerpc_fcmpo,
00118 powerpc_fcmpu,
00119 powerpc_fctid,
00120 powerpc_fctid_record,
00121 powerpc_fctidz,
00122 powerpc_fctidz_record,
00123 powerpc_fctiw,
00124 powerpc_fctiw_record,
00125 powerpc_fctiwz,
00126 powerpc_fctiwz_record,
00127 powerpc_fdiv,
00128 powerpc_fdiv_record,
00129 powerpc_fdivs,
00130 powerpc_fdivs_record,
00131 powerpc_fmadd,
00132 powerpc_fmadd_record,
00133 powerpc_fmadds,
00134 powerpc_fmadds_record,
00135 powerpc_fmr,
00136 powerpc_fmr_record,
00137 powerpc_fmsub,
00138 powerpc_fmsub_record,
00139 powerpc_fmsubs,
00140 powerpc_fmsubs_record,
00141 powerpc_fmul,
00142 powerpc_fmul_record,
00143 powerpc_fmuls,
00144 powerpc_fmuls_record,
00145 powerpc_fnabs,
00146 powerpc_fnabs_record,
00147 powerpc_fneg,
00148 powerpc_fneg_record,
00149 powerpc_fnmadd,
00150 powerpc_fnmadd_record,
00151 powerpc_fnmadds,
00152 powerpc_fnmadds_record,
00153 powerpc_fnmsub,
00154 powerpc_fnmsub_record,
00155 powerpc_fnmsubs,
00156 powerpc_fnmsubs_record,
00157 powerpc_fpmul,
00158 powerpc_fxmul,
00159 powerpc_fxpmul,
00160 powerpc_fxsmul,
00161 powerpc_fpadd,
00162 powerpc_fpsub,
00163 powerpc_fpre,
00164 powerpc_fprsqrte,
00165 powerpc_fpmr,
00166 powerpc_fpabs,
00167 powerpc_lfssx,
00168 powerpc_fpneg,
00169 powerpc_lfssux,
00170 powerpc_fprsp,
00171 powerpc_lfsdx,
00172 powerpc_fpnabs,
00173 powerpc_lfsdux,
00174 powerpc_lfxsx,
00175 powerpc_fsmr,
00176 powerpc_lfxsux,
00177 powerpc_lfxdx,
00178 powerpc_fsabs,
00179 powerpc_lfxdux,
00180 powerpc_lfpsx,
00181 powerpc_fsneg,
00182 powerpc_lfpsux,
00183 powerpc_lfpdx,
00184 powerpc_fsnabs,
00185 powerpc_lfpdux,
00186 powerpc_stfpiwx,
00187 powerpc_fxmr,
00188 powerpc_fpctiw,
00189 powerpc_stfssx,
00190 powerpc_stfssux,
00191 powerpc_fpctiwz,
00192 powerpc_stfsdx,
00193 powerpc_stfsdux,
00194 powerpc_stfxsx,
00195 powerpc_fsmtp,
00196 powerpc_stfxsux,
00197 powerpc_stfxdx,
00198 powerpc_stfxdux,
00199 powerpc_stfpsx,
00200 powerpc_fsmfp,
00201 powerpc_stfpsux,
00202 powerpc_stfpdx,
00203 powerpc_stfpdux,
00204 powerpc_fpsel,
00205 powerpc_fpmadd,
00206 powerpc_fpmsub,
00207 powerpc_fxmadd,
00208 powerpc_fxcpmadd,
00209 powerpc_fxcsmadd,
00210 powerpc_fpnmadd,
00211 powerpc_fxnmadd,
00212 powerpc_fxcpnmadd,
00213 powerpc_fxcsnmadd,
00214 powerpc_fxcpnpma,
00215 powerpc_fxmsub,
00216 powerpc_fxcsnpma,
00217 powerpc_fxcpmsub,
00218 powerpc_fxcpnsma,
00219 powerpc_fxcsmsub,
00220 powerpc_fxcsnsma,
00221 powerpc_fpnmsub,
00222 powerpc_fxcxma,
00223 powerpc_fxnmsub,
00224 powerpc_fxcxnpma,
00225 powerpc_fxcpnmsub,
00226 powerpc_fxcxnsma,
00227 powerpc_fxcsnmsub,
00228 powerpc_qvfcfids,
00229 powerpc_qvlfsx,
00230 powerpc_qvlfsux,
00231 powerpc_qvlfcsx,
00232 powerpc_qvlfcsux,
00233 powerpc_qvlfdx,
00234 powerpc_qvlfdux,
00235 powerpc_qvlfcdx,
00236 powerpc_qvlfcdux,
00237 powerpc_qvlfiwax,
00238 powerpc_qvlfiwzx,
00239 powerpc_qvlpcldx,
00240 powerpc_qvlpclsx,
00241 powerpc_qvlpcrdx,
00242 powerpc_qvlpcrsx,
00243 powerpc_qvstfsx,
00244 powerpc_qvstfsux,
00245 powerpc_qvstfsxi,
00246 powerpc_qvstfsuxi,
00247 powerpc_qvstfdx,
00248 powerpc_qvstfdux,
00249 powerpc_qvstfdxi,
00250 powerpc_qvstfduxi,
00251 powerpc_qvstfcdx,
00252 powerpc_qvstfcdux,
00253 powerpc_qvstfcdxi,
00254 powerpc_qvstfcduxi,
00255 powerpc_qvstfcsx,
00256 powerpc_qvstfcsux,
00257 powerpc_qvstfcsxi,
00258 powerpc_qvstfcsuxi,
00259 powerpc_qvstfiwx,
00260 powerpc_qvfmr,
00261 powerpc_qvfcpsgn,
00262 powerpc_qvfneg,
00263 powerpc_qvfabs,
00264 powerpc_qvfnabs,
00265 powerpc_qvfadd,
00266 powerpc_qvfadds,
00267 powerpc_qvfsub,
00268 powerpc_qvfsubs,
00269 powerpc_qvfmul,
00270 powerpc_qvfmuls,
00271 powerpc_qvfre,
00272 powerpc_qvfres,
00273 powerpc_qvfrsqrte,
00274 powerpc_qvfrsqrtes,
00275 powerpc_qvfmadd,
00276 powerpc_qvfmadds,
00277 powerpc_qvfmsub,
00278 powerpc_qvfmsubs,
00279 powerpc_qvfnmadd,
00280 powerpc_qvfnmadds,
00281 powerpc_qvfnmsub,
00282 powerpc_qvfnmsubs,
00283 powerpc_qvfxmadd,
00284 powerpc_qvfxmadds,
00285 powerpc_qvfxxnpmadd,
00286 powerpc_qvfxxnpmadds,
00287 powerpc_qvfxxmadd,
00288 powerpc_qvfxxmadds,
00289 powerpc_qvfxxcpnmadd,
00290 powerpc_qvfxxcpnmadds,
00291 powerpc_qvfxmul,
00292 powerpc_qvfxmuls,
00293 powerpc_qvfrsp,
00294 powerpc_qvfctid,
00295 powerpc_qvfctidz,
00296 powerpc_qvfctidu,
00297 powerpc_qvfctiduz,
00298 powerpc_qvfctiw,
00299 powerpc_qvfctiwu,
00300 powerpc_qvfctiwz,
00301 powerpc_qvfctiwuz,
00302 powerpc_qvfcfid,
00303 powerpc_qvfcfidu,
00304 powerpc_qvfcfidus,
00305 powerpc_qvfrin,
00306 powerpc_qvfriz,
00307 powerpc_qvfrip,
00308 powerpc_qvfrim,
00309 powerpc_qvfcmpgt,
00310 powerpc_qvftstnan,
00311 powerpc_qvfcmplt,
00312 powerpc_qvfcmpeq,
00313 powerpc_qvfsel,
00314 powerpc_qvfaligni,
00315 powerpc_qvfperm,
00316 powerpc_qvesplati,
00317 powerpc_qvgpci,
00318 powerpc_qvflogical,
00319 powerpc_qvlstduxi,
00320 powerpc_qvlstdux,
00321 powerpc_fxcxnms,
00322 powerpc_fre,
00323 powerpc_fre_record,
00324 powerpc_fres,
00325 powerpc_fres_record,
00326 powerpc_frsp,
00327 powerpc_frsp_record,
00328 powerpc_frsqrte,
00329 powerpc_frsqrte_record,
00330 powerpc_frsqrtes,
00331 powerpc_frsqrtes_record,
00332 powerpc_fsel,
00333 powerpc_fsel_record,
00334 powerpc_fsqrt,
00335 powerpc_fsqrt_record,
00336 powerpc_fsqrts,
00337 powerpc_fsqrts_record,
00338 powerpc_fsub,
00339 powerpc_fsub_record,
00340 powerpc_fsubs,
00341 powerpc_fsubs_record,
00342 powerpc_icbi,
00343 powerpc_isync,
00344 powerpc_lbz,
00345 powerpc_lbzu,
00346 powerpc_lbzux,
00347 powerpc_lbzx,
00348 powerpc_ld,
00349 powerpc_ldarx,
00350 powerpc_ldu,
00351 powerpc_ldux,
00352 powerpc_ldx,
00353 powerpc_lfd,
00354 powerpc_lfdu,
00355 powerpc_lfdux,
00356 powerpc_lfdx,
00357 powerpc_lfs,
00358 powerpc_lfsu,
00359 powerpc_lfsux,
00360 powerpc_lfsx,
00361 powerpc_lha,
00362 powerpc_lhau,
00363 powerpc_lhaux,
00364 powerpc_lhax,
00365 powerpc_lhbrx,
00366 powerpc_lhz,
00367 powerpc_lhzu,
00368 powerpc_lhzux,
00369 powerpc_lhzx,
00370 powerpc_lmw,
00371 powerpc_lswi,
00372 powerpc_lswx,
00373 powerpc_lwa,
00374 powerpc_lwarx,
00375 powerpc_lwaux,
00376 powerpc_lwax,
00377 powerpc_lwbrx,
00378 powerpc_lwz,
00379 powerpc_lwzu,
00380 powerpc_lwzux,
00381 powerpc_lwzx,
00382 powerpc_mcrf,
00383 powerpc_mcrfs,
00384 powerpc_mcrxr,
00385 powerpc_mfcr,
00386 powerpc_mffs,
00387 powerpc_mffs_record,
00388 powerpc_mfmsr,
00389 powerpc_mfspr,
00390 powerpc_mfsr,
00391 powerpc_mfsrin,
00392 powerpc_mftb,
00393 powerpc_mtcrf,
00394 powerpc_mtfsb0,
00395 powerpc_mtfsb0_record,
00396 powerpc_mtfsb1,
00397 powerpc_mtfsb1_record,
00398 powerpc_mtfsf,
00399 powerpc_mtfsf_record,
00400 powerpc_mtfsfi,
00401 powerpc_mtfsfi_record,
00402 powerpc_mtmsr,
00403 powerpc_mtmsrd,
00404 powerpc_mtspr,
00405 powerpc_mtsr,
00406 powerpc_mtsrd,
00407 powerpc_mtsrdin,
00408 powerpc_mtsrin,
00409 powerpc_mulhd,
00410 powerpc_mulhd_record,
00411 powerpc_mulhdu,
00412 powerpc_mulhdu_record,
00413 powerpc_mulhw,
00414 powerpc_mulhw_record,
00415 powerpc_mulhwu,
00416 powerpc_mulhwu_record,
00417 powerpc_mulld,
00418 powerpc_mulld_record,
00419 powerpc_mulldo,
00420 powerpc_mulldo_record,
00421 powerpc_mulli,
00422 powerpc_mullw,
00423 powerpc_mullw_record,
00424 powerpc_mullwo,
00425 powerpc_mullwo_record,
00426 powerpc_nand,
00427 powerpc_nand_record,
00428 powerpc_neg,
00429 powerpc_neg_record,
00430 powerpc_nego,
00431 powerpc_nego_record,
00432 powerpc_nor,
00433 powerpc_nor_record,
00434 powerpc_or,
00435 powerpc_or_record,
00436 powerpc_orc,
00437 powerpc_orc_record,
00438 powerpc_ori,
00439 powerpc_oris,
00440 powerpc_rfi,
00441 powerpc_rfid,
00442 powerpc_rldcl,
00443 powerpc_rldcl_record,
00444 powerpc_rldcr,
00445 powerpc_rldcr_record,
00446 powerpc_rldic,
00447 powerpc_rldic_record,
00448 powerpc_rldicl,
00449 powerpc_rldicl_record,
00450 powerpc_rldicr,
00451 powerpc_rldicr_record,
00452 powerpc_rldimi,
00453 powerpc_rldimi_record,
00454 powerpc_rlwimi,
00455 powerpc_rlwimi_record,
00456 powerpc_rlwinm,
00457 powerpc_rlwinm_record,
00458 powerpc_rlwnm,
00459 powerpc_rlwnm_record,
00460 powerpc_sc,
00461 powerpc_si,
00462 powerpc_slbia,
00463 powerpc_slbie,
00464 powerpc_sld,
00465 powerpc_sld_record,
00466 powerpc_slw,
00467 powerpc_slw_record,
00468 powerpc_srad,
00469 powerpc_srad_record,
00470 powerpc_sradi,
00471 powerpc_sradi_record,
00472 powerpc_srd,
00473 powerpc_srd_record,
00474 powerpc_sraw,
00475 powerpc_sraw_record,
00476 powerpc_srawi,
00477 powerpc_srawi_record,
00478 powerpc_srw,
00479 powerpc_srw_record,
00480 powerpc_stb,
00481 powerpc_stbu,
00482 powerpc_stbux,
00483 powerpc_stbx,
00484 powerpc_std,
00485 powerpc_stdcx_record,
00486 powerpc_stdu,
00487 powerpc_stdux,
00488 powerpc_stdx,
00489 powerpc_stfd,
00490 powerpc_stfdu,
00491 powerpc_stfdux,
00492 powerpc_stfdx,
00493 powerpc_stfiwx,
00494 powerpc_stfs,
00495 powerpc_stfsu,
00496 powerpc_stfsux,
00497 powerpc_stfsx,
00498 powerpc_sth,
00499 powerpc_sthbrx,
00500 powerpc_sthu,
00501 powerpc_sthux,
00502 powerpc_sthx,
00503 powerpc_stmw,
00504 powerpc_stswi,
00505 powerpc_stswx,
00506 powerpc_stw,
00507 powerpc_stwbrx,
00508 powerpc_stwcx_record,
00509 powerpc_stwu,
00510 powerpc_stwux,
00511 powerpc_stwx,
00512 powerpc_subf,
00513 powerpc_subf_record,
00514 powerpc_subfo,
00515 powerpc_subfo_record,
00516 powerpc_subfc,
00517 powerpc_subfc_record,
00518 powerpc_subfco,
00519 powerpc_subfco_record,
00520 powerpc_subfe,
00521 powerpc_subfe_record,
00522 powerpc_subfeo,
00523 powerpc_subfeo_record,
00524 powerpc_subfic,
00525 powerpc_subfme,
00526 powerpc_subfme_record,
00527 powerpc_subfmeo,
00528 powerpc_subfmeo_record,
00529 powerpc_subfze,
00530 powerpc_subfze_record,
00531 powerpc_subfzeo,
00532 powerpc_subfzeo_record,
00533 powerpc_sync,
00534 powerpc_td,
00535 powerpc_tdi,
00536 powerpc_tlbia,
00537 powerpc_tlbie,
00538 powerpc_tlbsync,
00539 powerpc_tw,
00540 powerpc_twi,
00541 powerpc_xor,
00542 powerpc_xor_record,
00543 powerpc_xori,
00544 powerpc_xoris,
00545 powerpc_last_instruction
00546 };
00547
00548 enum PowerpcRegisterClass
00549 {
00550 powerpc_regclass_unknown,
00551 powerpc_regclass_gpr,
00552 powerpc_regclass_fpr,
00553 powerpc_regclass_cr,
00554 powerpc_regclass_fpscr,
00555 powerpc_regclass_spr,
00556 powerpc_regclass_tbr,
00557 powerpc_regclass_msr,
00558 powerpc_regclass_sr,
00559 powerpc_last_register_class
00560 };
00561
00562 enum PowerpcConditionRegisterAccessGranularity {
00563 powerpc_condreggranularity_whole,
00564 powerpc_condreggranularity_field,
00565 powerpc_condreggranularity_bit
00566 };
00567
00568 enum PowerpcSpecialPurposeRegister {
00569 powerpc_spr_xer = 1,
00570 powerpc_spr_lr = 8,
00571 powerpc_spr_ctr = 9,
00572 powerpc_spr_dsisr = 18,
00573 powerpc_spr_dar = 19,
00574 powerpc_spr_dec = 22
00575 };
00576
00577 enum PowerpcTimeBaseRegister {
00578 powerpc_tbr_tbl = 268,
00579 powerpc_tbr_tbu = 269
00580 };
00581
00582 std::string toString(PowerpcInstructionKind k);
00583
00584 #endif