powerpcInstructionEnum.h

Go to the documentation of this file.
00001 #ifndef ROSE_POWERPC_INSTRUCTION_ENUM_H
00002 #define ROSE_POWERPC_INSTRUCTION_ENUM_H
00003 
00004 #include <string>
00005 
00006 // DQ (10/11/2008): Started work to support PowerPC Instruction Set for BGL Performance Tool
00007 // JJW (10/12/2008): Cleaned up so automatic enum printer generator would work
00008 enum PowerpcInstructionKind
00009    {
00010      powerpc_unknown_instruction = 0,
00011      powerpc_add,  // Add 
00012      powerpc_add_record,  // Add 
00013      powerpc_addo,  // Add 
00014      powerpc_addo_record,  // Add 
00015      powerpc_addc, // Add Carrying 
00016      powerpc_addc_record, // Add Carrying 
00017      powerpc_addco, // Add Carrying 
00018      powerpc_addco_record, // Add Carrying 
00019      powerpc_adde,         // Add Extended 
00020      powerpc_adde_record,  // Add Extended 
00021      powerpc_addeo,        // Add Extended 
00022      powerpc_addeo_record, // Add Extended 
00023      powerpc_addi,       // Add Immediate 
00024      powerpc_addic,      // Add Immediate Carrying 
00025      powerpc_addic_record, // Add Immediate Carrying and Record 
00026      powerpc_addis, // Add Immediate Shifted 
00027      powerpc_addme, // Add to Minus One Extended 
00028      powerpc_addme_record, // Add to Minus One Extended 
00029      powerpc_addmeo, // Add to Minus One Extended 
00030      powerpc_addmeo_record, // Add to Minus One Extended 
00031      powerpc_addze, // Add to Zero Extended 
00032      powerpc_addze_record, // Add to Zero Extended 
00033      powerpc_addzeo, // Add to Zero Extended 
00034      powerpc_addzeo_record, // Add to Zero Extended 
00035      powerpc_and, // AND 
00036      powerpc_and_record, // AND 
00037      powerpc_andc, // AND with Complement 
00038      powerpc_andc_record, // AND with Complement 
00039      powerpc_andi_record, // AND Immediate 
00040      powerpc_andis_record, // AND Immediate Shifted 
00041      powerpc_b, // Branch 
00042      powerpc_ba, // Branch 
00043      powerpc_bl, // Branch 
00044      powerpc_bla, // Branch 
00045      powerpc_bc, // Branch Conditional 
00046      powerpc_bca, // Branch Conditional 
00047      powerpc_bcl, // Branch Conditional 
00048      powerpc_bcla, // Branch Conditional 
00049      powerpc_bcctr, // Branch Conditional to Count Register 
00050      powerpc_bcctrl, // Branch Conditional to Count Register 
00051      powerpc_bclr, // Branch Conditional Link Register 
00052      powerpc_bclrl, // Branch Conditional Link Register 
00053      powerpc_cmp, // Compare 
00054      powerpc_cmpi, // Compare Immediate 
00055      powerpc_cmpl, // Compare Logical 
00056      powerpc_cmpli, // Compare Logical Immediate 
00057      powerpc_cntlzd, // Count Leading Zeros Doubleword 
00058      powerpc_cntlzd_record, // Count Leading Zeros Doubleword 
00059      powerpc_cntlzw, // Count Leading Zeros Word 
00060      powerpc_cntlzw_record, // Count Leading Zeros Word 
00061      powerpc_crand, // Condition Register AND 
00062      powerpc_crandc, // Condition Register AND with Complement 
00063      powerpc_creqv, // Condition Register Equivalent 
00064      powerpc_crnand, // Condition Register NAND 
00065      powerpc_crnor, // Condition Register NOR 
00066      powerpc_cror, // Condition Register OR 
00067      powerpc_crorc, // Condition Register OR with Complement 
00068      powerpc_crxor, // Condition Register XOR 
00069      powerpc_dcbf, // Data Cache Block Flush 
00070      powerpc_dcba, // Data Cache Block Allocate 
00071      powerpc_dcbi, // Data Cache Block Invalidate 
00072      powerpc_dcbst, // Data Cache Block Store 
00073      powerpc_dcbt, // Data Cache Block Touch 
00074      powerpc_dcbtst, // Data Cache Block Touch for Store 
00075      powerpc_dcbz, // Data Cache Block Set to Zero 
00076      powerpc_divd, // Divide Doubleword 
00077      powerpc_divd_record, // Divide Doubleword 
00078      powerpc_divdo, // Divide Doubleword 
00079      powerpc_divdo_record, // Divide Doubleword 
00080      powerpc_divdu, // Divide Doubleword Unsigned 
00081      powerpc_divdu_record, // Divide Doubleword Unsigned 
00082      powerpc_divduo, // Divide Doubleword Unsigned 
00083      powerpc_divduo_record, // Divide Doubleword Unsigned 
00084      powerpc_divw, // Divide Word 
00085      powerpc_divw_record, // Divide Word 
00086      powerpc_divwo, // Divide Word 
00087      powerpc_divwo_record, // Divide Word 
00088      powerpc_divwu, // Divide Word Unsigned 
00089      powerpc_divwu_record, // Divide Word Unsigned 
00090      powerpc_divwuo, // Divide Word Unsigned 
00091      powerpc_divwuo_record, // Divide Word Unsigned 
00092      powerpc_dst, // Data Stream Touch
00093      powerpc_dstt, // Data Stream Touch
00094      powerpc_dstst, // Data Stream Touch for store
00095      powerpc_dststt, // Data Stream Touch for store
00096      powerpc_dss, // Data Stream Stop
00097      powerpc_dssall, // Data Stream Stop All
00098      powerpc_eciwx, // External Control in Word Indexed (opt.) 
00099      powerpc_ecowx, // External Control out Word Indexed (opt.) 
00100      powerpc_eieio, // Enforce In-order Execution of I/O 
00101      powerpc_eqv, // Equivalent 
00102      powerpc_eqv_record, // Equivalent 
00103      powerpc_extsb, // Extend Sign Byte 
00104      powerpc_extsb_record, // Extend Sign Byte 
00105      powerpc_extsh, // Extend Sign Halfword 
00106      powerpc_extsh_record, // Extend Sign Halfword 
00107      powerpc_extsw, // Extend Sign Word 
00108      powerpc_extsw_record, // Extend Sign Word 
00109      powerpc_fabs, // Floating Absolute Value 
00110      powerpc_fabs_record, // Floating Absolute Value 
00111      powerpc_fadd, // Floating Add 
00112      powerpc_fadd_record, // Floating Add 
00113      powerpc_fadds, // Floating Add Single 
00114      powerpc_fadds_record, // Floating Add Single 
00115      powerpc_fcfid, // Floating Convert from Integer Doubleword 
00116      powerpc_fcfid_record, // Floating Convert from Integer Doubleword 
00117      powerpc_fcmpo, // Floating Compare Ordered 
00118      powerpc_fcmpu, // Floating Compare Unordered 
00119      powerpc_fctid, // Floating Convert to Integer Doubleword 
00120      powerpc_fctid_record, // Floating Convert to Integer Doubleword 
00121      powerpc_fctidz, // Floating Convert to Integer Doubleword with Round Toward Zero 
00122      powerpc_fctidz_record, // Floating Convert to Integer Doubleword with Round Toward Zero 
00123      powerpc_fctiw, // Floating Convert to Integer Word 
00124      powerpc_fctiw_record, // Floating Convert to Integer Word 
00125      powerpc_fctiwz, // Floating Convert to Integer Word with Round to Zero 
00126      powerpc_fctiwz_record, // Floating Convert to Integer Word with Round to Zero 
00127      powerpc_fdiv, // Floating Divide 
00128      powerpc_fdiv_record, // Floating Divide 
00129      powerpc_fdivs, // Floating Divide Single 
00130      powerpc_fdivs_record, // Floating Divide Single 
00131      powerpc_fmadd, // Floating Multiply-Add 
00132      powerpc_fmadd_record, // Floating Multiply-Add 
00133      powerpc_fmadds, // Floating Multiply-Add Single 
00134      powerpc_fmadds_record, // Floating Multiply-Add Single 
00135      powerpc_fmr, // Floating Move Register 
00136      powerpc_fmr_record, // Floating Move Register 
00137      powerpc_fmsub, // Floating Multiply-Subtract 
00138      powerpc_fmsub_record, // Floating Multiply-Subtract 
00139      powerpc_fmsubs, // Floating Multiply-Subtract Single 
00140      powerpc_fmsubs_record, // Floating Multiply-Subtract Single 
00141      powerpc_fmul, // Floating Multiply 
00142      powerpc_fmul_record, // Floating Multiply 
00143      powerpc_fmuls, // Floating Multiply Single 
00144      powerpc_fmuls_record, // Floating Multiply Single 
00145      powerpc_fnabs, // Floating Negative Absolute Value 
00146      powerpc_fnabs_record, // Floating Negative Absolute Value 
00147      powerpc_fneg, // Floating Negate 
00148      powerpc_fneg_record, // Floating Negate 
00149      powerpc_fnmadd, // Floating Negative Multiply-Add 
00150      powerpc_fnmadd_record, // Floating Negative Multiply-Add 
00151      powerpc_fnmadds, // Floating Negative Multiply-Add Single 
00152      powerpc_fnmadds_record, // Floating Negative Multiply-Add Single 
00153      powerpc_fnmsub, // Floating Negative Multiply-Subtract 
00154      powerpc_fnmsub_record, // Floating Negative Multiply-Subtract 
00155      powerpc_fnmsubs, // Floating Negative Multiply-Subtract Single 
00156      powerpc_fnmsubs_record, // Floating Negative Multiply-Subtract Single
00157      powerpc_fpmul,  // FP2 Floating Parallel Multiply (BGL specific)
00158      powerpc_fxmul,  // FP2 Floating Cross Multiply (BGL specific)
00159      powerpc_fxpmul, // FP2 Floating Cross Copy-Primary Multiply (BGL specific)
00160      powerpc_fxsmul, // FP2 Floating Cross Copy-Secondary Multiply (BGL specific)
00161      powerpc_fpadd,  // FP2 Floating Parallel Add (BGL specific)
00162      powerpc_fpsub,  // FP2 Floating Parallel Subtract (BGL specific)
00163      powerpc_fpre,   // FP2 Floating Parallel Reciprocal Estimate (BGL specific)
00164      powerpc_fprsqrte, // FP2 Floating Parallel Reciprocal Square Root Estimate (BGL specific)
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, // Last FP2 specific enum value
00322      powerpc_fre, // Floating Reciprocal Estimate Single (optional) 
00323      powerpc_fre_record, // Floating Reciprocal Estimate Single (optional) 
00324      powerpc_fres, // Floating Reciprocal Estimate Single (optional) 
00325      powerpc_fres_record, // Floating Reciprocal Estimate Single (optional) 
00326      powerpc_frsp, // Floating Round to Single Precision 
00327      powerpc_frsp_record, // Floating Round to Single Precision 
00328      powerpc_frsqrte, // Floating Reciprocal Square Root Estimate (optional) 
00329      powerpc_frsqrte_record, // Floating Reciprocal Square Root Estimate (optional) 
00330      powerpc_frsqrtes, // Floating Reciprocal Square Root Estimate (optional) 
00331      powerpc_frsqrtes_record, // Floating Reciprocal Square Root Estimate (optional) 
00332      powerpc_fsel, // Floating-Point Select (optional) 
00333      powerpc_fsel_record, // Floating-Point Select (optional) 
00334      powerpc_fsqrt, // Floating-Point Square Root (optional)
00335      powerpc_fsqrt_record, // Floating-Point Square Root (optional)
00336      powerpc_fsqrts, // Floating-Point Square Root (optional)
00337      powerpc_fsqrts_record, // Floating-Point Square Root (optional)
00338      powerpc_fsub, // Floating Subtract 
00339      powerpc_fsub_record, // Floating Subtract 
00340      powerpc_fsubs, // Floating Subtract Single 
00341      powerpc_fsubs_record, // Floating Subtract Single 
00342      powerpc_icbi, // Instruction Cache Block Invalidate 
00343      powerpc_isync, // Instruction Synchronize 
00344      powerpc_lbz, // Load Byte and Zero 
00345      powerpc_lbzu, // Load Byte and Zero with Update 
00346      powerpc_lbzux, // Load Byte and Zero with Update Indexed 
00347      powerpc_lbzx, // Load Byte and Zero Indexed 
00348      powerpc_ld, // Load Doubleword 
00349      powerpc_ldarx, // Load Doubleword and Reserve Indexed 
00350      powerpc_ldu, // Load Doubleword with Update 
00351      powerpc_ldux, // Load Doubleword with Update Indexed 
00352      powerpc_ldx, // Load Doubleword Indexed 
00353      powerpc_lfd, // Load Floating-Point Double 
00354      powerpc_lfdu, // Load Floating-Point Double with Update 
00355      powerpc_lfdux, // Load Floating-Point Double with Update Indexed 
00356      powerpc_lfdx, // Load Floating-Point Double Indexed 
00357      powerpc_lfs, // Load Floating-Point Single 
00358      powerpc_lfsu, // Load Floating-Point Single with Update 
00359      powerpc_lfsux, // Load Floating-Point Single with Update Indexed 
00360      powerpc_lfsx, // Load Floating-Point Single Indexed 
00361      powerpc_lha, // Load Half Algebraic 
00362      powerpc_lhau, // Load Half Algebraic with Update 
00363      powerpc_lhaux, // Load Half Algebraic with Update Indexed 
00364      powerpc_lhax, // Load Half Algebraic Indexed 
00365      powerpc_lhbrx, // Load Half Byte-Reversed Indexed 
00366      powerpc_lhz, // Load Half and Zero 
00367      powerpc_lhzu, // Load Half and Zero with Update 
00368      powerpc_lhzux, // Load Half and Zero with Update Indexed 
00369      powerpc_lhzx, // Load Half and Zero Indexed 
00370      powerpc_lmw, // Load Multiple Word 
00371      powerpc_lswi, // Load String Word Immediate 
00372      powerpc_lswx, // Load String Word Indexed 
00373      powerpc_lwa, // Load Word Algebraic 
00374      powerpc_lwarx, // Load Word and Reserve Indexed 
00375      powerpc_lwaux, // Load Word Algebraic with Update Indexed 
00376      powerpc_lwax, // Load Word Algebraic Indexed 
00377      powerpc_lwbrx, // Load Word Byte-Reversed Indexed 
00378      powerpc_lwz, // Load Word and Zero 
00379      powerpc_lwzu, // Load Word with Zero Update 
00380      powerpc_lwzux, // Load Word and Zero with Update Indexed 
00381      powerpc_lwzx, // Load Word and Zero Indexed 
00382      powerpc_mcrf, // Move Condition Register Field 
00383      powerpc_mcrfs, // Move to Condition Register from FPSCR 
00384      powerpc_mcrxr, // Move to Condition Register from XER 
00385      powerpc_mfcr, // Move from Condition Register 
00386      powerpc_mffs, // Move from FPSCR 
00387      powerpc_mffs_record, // Move from FPSCR 
00388      powerpc_mfmsr, // Move from Machine State Register 
00389      powerpc_mfspr, // Move from Special-Purpose Register 
00390      powerpc_mfsr, // Move from Segment Register 
00391      powerpc_mfsrin, // Move from Segment Register Indirect 
00392      powerpc_mftb, // Move from Time Base
00393      powerpc_mtcrf, // Move to Condition Register Fields 
00394      powerpc_mtfsb0, // Move to FPSCR Bit 0 
00395      powerpc_mtfsb0_record, // Move to FPSCR Bit 0 
00396      powerpc_mtfsb1, // Move to FPSCR Bit 1 
00397      powerpc_mtfsb1_record, // Move to FPSCR Bit 1 
00398      powerpc_mtfsf, // Move to FPSCR Fields 
00399      powerpc_mtfsf_record, // Move to FPSCR Fields 
00400      powerpc_mtfsfi, // Move to FPSCR Field Immediate 
00401      powerpc_mtfsfi_record, // Move to FPSCR Field Immediate 
00402      powerpc_mtmsr, // Move to Machine State Register 
00403      powerpc_mtmsrd, // Move to Machine State Register 
00404      powerpc_mtspr, // Move to Special-Purpose Register 
00405      powerpc_mtsr, // Move to Segment Register 
00406      powerpc_mtsrd, // Move to Segment Register 
00407      powerpc_mtsrdin, // Move to Segment Register Indirect
00408      powerpc_mtsrin, // Move to Segment Register Indirect 
00409      powerpc_mulhd, // Multiply High Doubleword 
00410      powerpc_mulhd_record, // Multiply High Doubleword 
00411      powerpc_mulhdu, // Multiply High Doubleword Unsigned 
00412      powerpc_mulhdu_record, // Multiply High Doubleword Unsigned 
00413      powerpc_mulhw, // Multiply High Word 
00414      powerpc_mulhw_record, // Multiply High Word 
00415      powerpc_mulhwu, // Multiply High Word Unsigned 
00416      powerpc_mulhwu_record, // Multiply High Word Unsigned 
00417      powerpc_mulld, // Multiply Low Doubleword 
00418      powerpc_mulld_record, // Multiply Low Doubleword 
00419      powerpc_mulldo, // Multiply Low Doubleword 
00420      powerpc_mulldo_record, // Multiply Low Doubleword 
00421      powerpc_mulli, // Multiply Low Immediate 
00422      powerpc_mullw, // Multiply Low Word 
00423      powerpc_mullw_record, // Multiply Low Word 
00424      powerpc_mullwo, // Multiply Low Word 
00425      powerpc_mullwo_record, // Multiply Low Word 
00426      powerpc_nand, // NAND 
00427      powerpc_nand_record, // NAND 
00428      powerpc_neg, // Negate 
00429      powerpc_neg_record, // Negate 
00430      powerpc_nego, // Negate 
00431      powerpc_nego_record, // Negate 
00432      powerpc_nor, // NOR 
00433      powerpc_nor_record, // NOR 
00434      powerpc_or, // OR 
00435      powerpc_or_record, // OR 
00436      powerpc_orc, // OR with Complement 
00437      powerpc_orc_record, // OR with Complement 
00438      powerpc_ori, // OR Immediate 
00439      powerpc_oris, // OR Immediate Shifted 
00440      powerpc_rfi, // Return from Interrupt 
00441      powerpc_rfid, // Return from Interrupt 
00442      powerpc_rldcl, // Rotate Left Doubleword then Clear Left 
00443      powerpc_rldcl_record, // Rotate Left Doubleword then Clear Left 
00444      powerpc_rldcr, // Rotate Left Doubleword then Clear Right 
00445      powerpc_rldcr_record, // Rotate Left Doubleword then Clear Right 
00446      powerpc_rldic, // Rotate Left Doubleword Immediate then Clear 
00447      powerpc_rldic_record, // Rotate Left Doubleword Immediate then Clear 
00448      powerpc_rldicl, // Rotate Left Doubleword Immediate then Clear Left 
00449      powerpc_rldicl_record, // Rotate Left Doubleword Immediate then Clear Left 
00450      powerpc_rldicr, // Rotate Left Doubleword Immediate then Clear Right 
00451      powerpc_rldicr_record, // Rotate Left Doubleword Immediate then Clear Right 
00452      powerpc_rldimi, // Rotate Left Doubleword Immediate then Mask Insert 
00453      powerpc_rldimi_record, // Rotate Left Doubleword Immediate then Mask Insert 
00454      powerpc_rlwimi, // Rotate Left Word Immediate then Mask Insert 
00455      powerpc_rlwimi_record, // Rotate Left Word Immediate then Mask Insert 
00456      powerpc_rlwinm, // Rotate Left Word Immediate then AND with Mask 
00457      powerpc_rlwinm_record, // Rotate Left Word Immediate then AND with Mask 
00458      powerpc_rlwnm, // Rotate Left Word then AND with Mask 
00459      powerpc_rlwnm_record, // Rotate Left Word then AND with Mask 
00460      powerpc_sc, // System Call 
00461      powerpc_si, // Subtract Immediate
00462      powerpc_slbia, // SLB Invalidate All 
00463      powerpc_slbie, // SLB Invalidate Entry 
00464      powerpc_sld, // Shift Left Doubleword 
00465      powerpc_sld_record, // Shift Left Doubleword 
00466      powerpc_slw, // Shift Left Word 
00467      powerpc_slw_record, // Shift Left Word 
00468      powerpc_srad, // Shift Right Algebraic Doubleword 
00469      powerpc_srad_record, // Shift Right Algebraic Doubleword 
00470      powerpc_sradi, // Shift Right Algebraic Doubleword Immediate 
00471      powerpc_sradi_record, // Shift Right Algebraic Doubleword Immediate 
00472      powerpc_srd, // Shift Right Doubleword 
00473      powerpc_srd_record, // Shift Right Doubleword 
00474      powerpc_sraw, // Shift Right Algebraic Word 
00475      powerpc_sraw_record, // Shift Right Algebraic Word 
00476      powerpc_srawi, // Shift Right Algebraic Word Immediate 
00477      powerpc_srawi_record, // Shift Right Algebraic Word Immediate 
00478      powerpc_srw, // Shift Right Word 
00479      powerpc_srw_record, // Shift Right Word 
00480      powerpc_stb, // Store Byte 
00481      powerpc_stbu, // Store Byte with Update 
00482      powerpc_stbux, // Store Byte with Update Indexed 
00483      powerpc_stbx, // Store Byte Indexed 
00484      powerpc_std, // Store Doubleword 
00485      powerpc_stdcx_record, // Store Doubleword Conditional Indexed 
00486      powerpc_stdu, // Store Doubleword with Update 
00487      powerpc_stdux, // Store Doubleword with Update Indexed 
00488      powerpc_stdx, // Store Doubleword Indexed 
00489      powerpc_stfd, // Store Floating-Point Double 
00490      powerpc_stfdu, // Store Floating-Point Double with Update 
00491      powerpc_stfdux, // Store Floating-Point Double with Update Indexed 
00492      powerpc_stfdx, // Store Floating-Point Double Indexed 
00493      powerpc_stfiwx, // Store Floating-Point as Integer Word Indexed (optional) 
00494      powerpc_stfs, // Store Floating-Point Single 
00495      powerpc_stfsu, // Store Floating-Point Single with Update 
00496      powerpc_stfsux, // Store Floating-Point Single with Update Indexed 
00497      powerpc_stfsx, // Store Floating-Point Single Indexed 
00498      powerpc_sth, // Store Half 
00499      powerpc_sthbrx, // Store Half Byte-Reverse Indexed 
00500      powerpc_sthu, // Store Half with Update 
00501      powerpc_sthux, // Store Half with Update Indexed 
00502      powerpc_sthx, // Store Half Indexed 
00503      powerpc_stmw, // Store Multiple Word 
00504      powerpc_stswi, // Store String Word Immediate 
00505      powerpc_stswx, // Store String Word Indexed 
00506      powerpc_stw, // Store 
00507      powerpc_stwbrx, // Store Word Byte-Reversed Indexed 
00508      powerpc_stwcx_record, // Store Word Conditional Indexed 
00509      powerpc_stwu, // Store Word with Update 
00510      powerpc_stwux, // Store Word with Update Indexed 
00511      powerpc_stwx, // Store Word Indexed 
00512      powerpc_subf, // Subtract from 
00513      powerpc_subf_record, // Subtract from 
00514      powerpc_subfo, // Subtract from 
00515      powerpc_subfo_record, // Subtract from 
00516      powerpc_subfc, // Subtract from Carrying 
00517      powerpc_subfc_record, // Subtract from Carrying 
00518      powerpc_subfco, // Subtract from Carrying 
00519      powerpc_subfco_record, // Subtract from Carrying 
00520      powerpc_subfe, // Subtract from Extended 
00521      powerpc_subfe_record, // Subtract from Extended 
00522      powerpc_subfeo, // Subtract from Extended 
00523      powerpc_subfeo_record, // Subtract from Extended 
00524      powerpc_subfic, // Subtract from Immediate Carrying 
00525      powerpc_subfme, // Subtract from Minus One Extended 
00526      powerpc_subfme_record, // Subtract from Minus One Extended 
00527      powerpc_subfmeo, // Subtract from Minus One Extended 
00528      powerpc_subfmeo_record, // Subtract from Minus One Extended 
00529      powerpc_subfze, // Subtract from Zero Extended 
00530      powerpc_subfze_record, // Subtract from Zero Extended 
00531      powerpc_subfzeo, // Subtract from Zero Extended 
00532      powerpc_subfzeo_record, // Subtract from Zero Extended 
00533      powerpc_sync, // Synchronize 
00534      powerpc_td, // Trap Doubleword 
00535      powerpc_tdi, // Trap Doubleword Immediate 
00536      powerpc_tlbia, // Translation Look-aside Buffer Invalidate All (optional) 
00537      powerpc_tlbie, // Translation Look-aside Buffer Invalidate Entry (optional) 
00538      powerpc_tlbsync, // Translation Look-aside Buffer Synchronize (optional) 
00539      powerpc_tw, // Trap Word 
00540      powerpc_twi, // Trap Word Immediate 
00541      powerpc_xor, // XOR 
00542      powerpc_xor_record, // XOR 
00543      powerpc_xori, // XOR Immediate 
00544      powerpc_xoris, // XOR Immediate Shift 
00545      powerpc_last_instruction
00546    };
00547 
00548 enum PowerpcRegisterClass
00549    {
00550      powerpc_regclass_unknown,
00551      powerpc_regclass_gpr, // General Purpose Register
00552      powerpc_regclass_fpr, // Floating-Point Register
00553      powerpc_regclass_cr,  // Condition Register (only particular fields or bits may be used)
00554      powerpc_regclass_fpscr, // Floating point status and control register
00555      powerpc_regclass_spr, // Special-purpose register (0..1023)
00556      powerpc_regclass_tbr, // Time base register (0..1023)
00557      powerpc_regclass_msr, // Machine state register
00558      powerpc_regclass_sr, // Segment register
00559      powerpc_last_register_class // last enum value
00560 };
00561 
00562 enum PowerpcConditionRegisterAccessGranularity {
00563   powerpc_condreggranularity_whole, // Whole CR (or unknown or not using a CR)
00564   powerpc_condreggranularity_field, // Four-bit field
00565   powerpc_condreggranularity_bit // Single bit
00566 };
00567 
00568 enum PowerpcSpecialPurposeRegister { // These must match the processor's numbers
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 // FIXME: fill in the rest of these
00575 };
00576 
00577 enum PowerpcTimeBaseRegister { // These must match the processor's numbers
00578   powerpc_tbr_tbl = 268,
00579   powerpc_tbr_tbu = 269
00580 };
00581 
00582 std::string toString(PowerpcInstructionKind k);
00583 
00584 #endif /* ROSE_POWERPC_INSTRUCTION_ENUM_H */
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 12 Jul 2013 for SymtabAPI by  doxygen 1.6.1