InstructionEnumsX86.h

Go to the documentation of this file.
00001 /* Enum constants for Intel x86 architectures */
00002 
00003 #ifndef ROSE_ENUMS_X86
00004 #define ROSE_ENUMS_X86
00005 
00006 #include "AssemblerX86Init.h"   /* A big enum whose members are all possible x86 instructions. */
00007 
00009 enum X86InstructionSize 
00010 {
00011   x86_insnsize_none,
00012   x86_insnsize_16,              
00013   x86_insnsize_32,              
00014   x86_insnsize_64               
00015 };
00016 
00018 enum X86RegisterClass 
00019 {
00020   x86_regclass_gpr,             
00021   x86_regclass_segment,         
00022   x86_regclass_cr,              
00023   x86_regclass_dr,              
00024   x86_regclass_st,              
00025   x86_regclass_mm,              
00026   x86_regclass_xmm,             
00027   x86_regclass_ip,              
00028   x86_regclass_flags            
00029 };
00030 
00032 enum X86SegmentRegister 
00033 {
00034     x86_segreg_es       = 0,    // Numbering is based on Intel documentation
00035     x86_segreg_cs       = 1,
00036     x86_segreg_ss       = 2,
00037     x86_segreg_ds       = 3,
00038     x86_segreg_fs       = 4,
00039     x86_segreg_gs       = 5,
00040     x86_segreg_none = 16 /* For unspecified segment overrides */
00041 };
00042 
00044 enum X86GeneralPurposeRegister 
00045 {
00046     x86_gpr_ax          = 0,    // Numbering is based on Intel documentation
00047     x86_gpr_cx          = 1,
00048     x86_gpr_dx          = 2,
00049     x86_gpr_bx          = 3,
00050     x86_gpr_sp          = 4,
00051     x86_gpr_bp          = 5,
00052     x86_gpr_si          = 6,
00053     x86_gpr_di          = 7,
00054     x86_gpr_r8          = 8,
00055     x86_gpr_r9          = 9,
00056     x86_gpr_r10         = 10,
00057     x86_gpr_r11         = 11,
00058     x86_gpr_r12         = 12,
00059     x86_gpr_r13         = 13,
00060     x86_gpr_r14         = 14,
00061     x86_gpr_r15         = 15,
00062 };
00063 
00065 enum X86Flag 
00066 {
00067     x86_flag_cf         = 0,
00068     x86_flag_pf         = 2,
00069     x86_flag_af         = 4,
00070     x86_flag_zf         = 6,
00071     x86_flag_sf         = 7,
00072     x86_flag_tf         = 8,
00073     x86_flag_if         = 9,
00074     x86_flag_df         = 10,
00075     x86_flag_of         = 11,
00076     x86_flag_iopl       = 12,   /* 2 bits, 12 and 13 */
00077     x86_flag_nt         = 14,
00078     x86_flag_rf         = 16,
00079     x86_flag_vm         = 17,
00080     x86_flag_ac         = 18,
00081     x86_flag_vif        = 19,
00082     x86_flag_vip        = 20,
00083     x86_flag_id         = 21
00084 };
00085 
00087 enum X86BranchPrediction 
00088 {
00089     x86_branch_prediction_none,
00090     x86_branch_prediction_taken,
00091     x86_branch_prediction_not_taken
00092 };
00093 
00095 enum X86RepeatPrefix 
00096 {
00097     x86_repeat_none,            
00098     x86_repeat_repne,           
00099     x86_repeat_repe             
00100 };
00101 
00102 #if 0
00103 
00106 enum X86PositionInRegister {
00107     x86_regpos_unknown,         
00108     x86_regpos_low_byte,        
00109     x86_regpos_high_byte,       
00110     x86_regpos_word,            
00111     x86_regpos_dword,           
00112     x86_regpos_qword,           
00113     x86_regpos_all              
00114 };
00115 #endif
00116 
00117 #endif

Generated on Wed May 16 06:18:11 2012 for ROSE by  doxygen 1.4.7