duckstation

duckstation, but archived from the revision just before upstream changed it to a proprietary software project, this version is the libre one
git clone https://git.neptards.moe/u3shit/duckstation.git
Log | Files | Refs | README | LICENSE

EnumRegister.h (7642B)


      1 /**
      2  * Defines the `ZydisRegister` enum.
      3  */
      4 typedef enum ZydisRegister_
      5 {
      6     ZYDIS_REGISTER_NONE,
      7 
      8     // General purpose registers  8-bit
      9     ZYDIS_REGISTER_AL,
     10     ZYDIS_REGISTER_CL,
     11     ZYDIS_REGISTER_DL,
     12     ZYDIS_REGISTER_BL,
     13     ZYDIS_REGISTER_AH,
     14     ZYDIS_REGISTER_CH,
     15     ZYDIS_REGISTER_DH,
     16     ZYDIS_REGISTER_BH,
     17     ZYDIS_REGISTER_SPL,
     18     ZYDIS_REGISTER_BPL,
     19     ZYDIS_REGISTER_SIL,
     20     ZYDIS_REGISTER_DIL,
     21     ZYDIS_REGISTER_R8B,
     22     ZYDIS_REGISTER_R9B,
     23     ZYDIS_REGISTER_R10B,
     24     ZYDIS_REGISTER_R11B,
     25     ZYDIS_REGISTER_R12B,
     26     ZYDIS_REGISTER_R13B,
     27     ZYDIS_REGISTER_R14B,
     28     ZYDIS_REGISTER_R15B,
     29 
     30     // General purpose registers 16-bit
     31     ZYDIS_REGISTER_AX,
     32     ZYDIS_REGISTER_CX,
     33     ZYDIS_REGISTER_DX,
     34     ZYDIS_REGISTER_BX,
     35     ZYDIS_REGISTER_SP,
     36     ZYDIS_REGISTER_BP,
     37     ZYDIS_REGISTER_SI,
     38     ZYDIS_REGISTER_DI,
     39     ZYDIS_REGISTER_R8W,
     40     ZYDIS_REGISTER_R9W,
     41     ZYDIS_REGISTER_R10W,
     42     ZYDIS_REGISTER_R11W,
     43     ZYDIS_REGISTER_R12W,
     44     ZYDIS_REGISTER_R13W,
     45     ZYDIS_REGISTER_R14W,
     46     ZYDIS_REGISTER_R15W,
     47 
     48     // General purpose registers 32-bit
     49     ZYDIS_REGISTER_EAX,
     50     ZYDIS_REGISTER_ECX,
     51     ZYDIS_REGISTER_EDX,
     52     ZYDIS_REGISTER_EBX,
     53     ZYDIS_REGISTER_ESP,
     54     ZYDIS_REGISTER_EBP,
     55     ZYDIS_REGISTER_ESI,
     56     ZYDIS_REGISTER_EDI,
     57     ZYDIS_REGISTER_R8D,
     58     ZYDIS_REGISTER_R9D,
     59     ZYDIS_REGISTER_R10D,
     60     ZYDIS_REGISTER_R11D,
     61     ZYDIS_REGISTER_R12D,
     62     ZYDIS_REGISTER_R13D,
     63     ZYDIS_REGISTER_R14D,
     64     ZYDIS_REGISTER_R15D,
     65 
     66     // General purpose registers 64-bit
     67     ZYDIS_REGISTER_RAX,
     68     ZYDIS_REGISTER_RCX,
     69     ZYDIS_REGISTER_RDX,
     70     ZYDIS_REGISTER_RBX,
     71     ZYDIS_REGISTER_RSP,
     72     ZYDIS_REGISTER_RBP,
     73     ZYDIS_REGISTER_RSI,
     74     ZYDIS_REGISTER_RDI,
     75     ZYDIS_REGISTER_R8,
     76     ZYDIS_REGISTER_R9,
     77     ZYDIS_REGISTER_R10,
     78     ZYDIS_REGISTER_R11,
     79     ZYDIS_REGISTER_R12,
     80     ZYDIS_REGISTER_R13,
     81     ZYDIS_REGISTER_R14,
     82     ZYDIS_REGISTER_R15,
     83 
     84     // Floating point legacy registers
     85     ZYDIS_REGISTER_ST0,
     86     ZYDIS_REGISTER_ST1,
     87     ZYDIS_REGISTER_ST2,
     88     ZYDIS_REGISTER_ST3,
     89     ZYDIS_REGISTER_ST4,
     90     ZYDIS_REGISTER_ST5,
     91     ZYDIS_REGISTER_ST6,
     92     ZYDIS_REGISTER_ST7,
     93     ZYDIS_REGISTER_X87CONTROL,
     94     ZYDIS_REGISTER_X87STATUS,
     95     ZYDIS_REGISTER_X87TAG,
     96 
     97     // Floating point multimedia registers
     98     ZYDIS_REGISTER_MM0,
     99     ZYDIS_REGISTER_MM1,
    100     ZYDIS_REGISTER_MM2,
    101     ZYDIS_REGISTER_MM3,
    102     ZYDIS_REGISTER_MM4,
    103     ZYDIS_REGISTER_MM5,
    104     ZYDIS_REGISTER_MM6,
    105     ZYDIS_REGISTER_MM7,
    106 
    107     // Floating point vector registers 128-bit
    108     ZYDIS_REGISTER_XMM0,
    109     ZYDIS_REGISTER_XMM1,
    110     ZYDIS_REGISTER_XMM2,
    111     ZYDIS_REGISTER_XMM3,
    112     ZYDIS_REGISTER_XMM4,
    113     ZYDIS_REGISTER_XMM5,
    114     ZYDIS_REGISTER_XMM6,
    115     ZYDIS_REGISTER_XMM7,
    116     ZYDIS_REGISTER_XMM8,
    117     ZYDIS_REGISTER_XMM9,
    118     ZYDIS_REGISTER_XMM10,
    119     ZYDIS_REGISTER_XMM11,
    120     ZYDIS_REGISTER_XMM12,
    121     ZYDIS_REGISTER_XMM13,
    122     ZYDIS_REGISTER_XMM14,
    123     ZYDIS_REGISTER_XMM15,
    124     ZYDIS_REGISTER_XMM16,
    125     ZYDIS_REGISTER_XMM17,
    126     ZYDIS_REGISTER_XMM18,
    127     ZYDIS_REGISTER_XMM19,
    128     ZYDIS_REGISTER_XMM20,
    129     ZYDIS_REGISTER_XMM21,
    130     ZYDIS_REGISTER_XMM22,
    131     ZYDIS_REGISTER_XMM23,
    132     ZYDIS_REGISTER_XMM24,
    133     ZYDIS_REGISTER_XMM25,
    134     ZYDIS_REGISTER_XMM26,
    135     ZYDIS_REGISTER_XMM27,
    136     ZYDIS_REGISTER_XMM28,
    137     ZYDIS_REGISTER_XMM29,
    138     ZYDIS_REGISTER_XMM30,
    139     ZYDIS_REGISTER_XMM31,
    140 
    141     // Floating point vector registers 256-bit
    142     ZYDIS_REGISTER_YMM0,
    143     ZYDIS_REGISTER_YMM1,
    144     ZYDIS_REGISTER_YMM2,
    145     ZYDIS_REGISTER_YMM3,
    146     ZYDIS_REGISTER_YMM4,
    147     ZYDIS_REGISTER_YMM5,
    148     ZYDIS_REGISTER_YMM6,
    149     ZYDIS_REGISTER_YMM7,
    150     ZYDIS_REGISTER_YMM8,
    151     ZYDIS_REGISTER_YMM9,
    152     ZYDIS_REGISTER_YMM10,
    153     ZYDIS_REGISTER_YMM11,
    154     ZYDIS_REGISTER_YMM12,
    155     ZYDIS_REGISTER_YMM13,
    156     ZYDIS_REGISTER_YMM14,
    157     ZYDIS_REGISTER_YMM15,
    158     ZYDIS_REGISTER_YMM16,
    159     ZYDIS_REGISTER_YMM17,
    160     ZYDIS_REGISTER_YMM18,
    161     ZYDIS_REGISTER_YMM19,
    162     ZYDIS_REGISTER_YMM20,
    163     ZYDIS_REGISTER_YMM21,
    164     ZYDIS_REGISTER_YMM22,
    165     ZYDIS_REGISTER_YMM23,
    166     ZYDIS_REGISTER_YMM24,
    167     ZYDIS_REGISTER_YMM25,
    168     ZYDIS_REGISTER_YMM26,
    169     ZYDIS_REGISTER_YMM27,
    170     ZYDIS_REGISTER_YMM28,
    171     ZYDIS_REGISTER_YMM29,
    172     ZYDIS_REGISTER_YMM30,
    173     ZYDIS_REGISTER_YMM31,
    174 
    175     // Floating point vector registers 512-bit
    176     ZYDIS_REGISTER_ZMM0,
    177     ZYDIS_REGISTER_ZMM1,
    178     ZYDIS_REGISTER_ZMM2,
    179     ZYDIS_REGISTER_ZMM3,
    180     ZYDIS_REGISTER_ZMM4,
    181     ZYDIS_REGISTER_ZMM5,
    182     ZYDIS_REGISTER_ZMM6,
    183     ZYDIS_REGISTER_ZMM7,
    184     ZYDIS_REGISTER_ZMM8,
    185     ZYDIS_REGISTER_ZMM9,
    186     ZYDIS_REGISTER_ZMM10,
    187     ZYDIS_REGISTER_ZMM11,
    188     ZYDIS_REGISTER_ZMM12,
    189     ZYDIS_REGISTER_ZMM13,
    190     ZYDIS_REGISTER_ZMM14,
    191     ZYDIS_REGISTER_ZMM15,
    192     ZYDIS_REGISTER_ZMM16,
    193     ZYDIS_REGISTER_ZMM17,
    194     ZYDIS_REGISTER_ZMM18,
    195     ZYDIS_REGISTER_ZMM19,
    196     ZYDIS_REGISTER_ZMM20,
    197     ZYDIS_REGISTER_ZMM21,
    198     ZYDIS_REGISTER_ZMM22,
    199     ZYDIS_REGISTER_ZMM23,
    200     ZYDIS_REGISTER_ZMM24,
    201     ZYDIS_REGISTER_ZMM25,
    202     ZYDIS_REGISTER_ZMM26,
    203     ZYDIS_REGISTER_ZMM27,
    204     ZYDIS_REGISTER_ZMM28,
    205     ZYDIS_REGISTER_ZMM29,
    206     ZYDIS_REGISTER_ZMM30,
    207     ZYDIS_REGISTER_ZMM31,
    208 
    209     // Matrix registers
    210     ZYDIS_REGISTER_TMM0,
    211     ZYDIS_REGISTER_TMM1,
    212     ZYDIS_REGISTER_TMM2,
    213     ZYDIS_REGISTER_TMM3,
    214     ZYDIS_REGISTER_TMM4,
    215     ZYDIS_REGISTER_TMM5,
    216     ZYDIS_REGISTER_TMM6,
    217     ZYDIS_REGISTER_TMM7,
    218 
    219     // Flags registers
    220     ZYDIS_REGISTER_FLAGS,
    221     ZYDIS_REGISTER_EFLAGS,
    222     ZYDIS_REGISTER_RFLAGS,
    223 
    224     // Instruction-pointer registers
    225     ZYDIS_REGISTER_IP,
    226     ZYDIS_REGISTER_EIP,
    227     ZYDIS_REGISTER_RIP,
    228 
    229     // Segment registers
    230     ZYDIS_REGISTER_ES,
    231     ZYDIS_REGISTER_CS,
    232     ZYDIS_REGISTER_SS,
    233     ZYDIS_REGISTER_DS,
    234     ZYDIS_REGISTER_FS,
    235     ZYDIS_REGISTER_GS,
    236 
    237     // Table registers
    238     ZYDIS_REGISTER_GDTR,
    239     ZYDIS_REGISTER_LDTR,
    240     ZYDIS_REGISTER_IDTR,
    241     ZYDIS_REGISTER_TR,
    242 
    243     // Test registers
    244     ZYDIS_REGISTER_TR0,
    245     ZYDIS_REGISTER_TR1,
    246     ZYDIS_REGISTER_TR2,
    247     ZYDIS_REGISTER_TR3,
    248     ZYDIS_REGISTER_TR4,
    249     ZYDIS_REGISTER_TR5,
    250     ZYDIS_REGISTER_TR6,
    251     ZYDIS_REGISTER_TR7,
    252 
    253     // Control registers
    254     ZYDIS_REGISTER_CR0,
    255     ZYDIS_REGISTER_CR1,
    256     ZYDIS_REGISTER_CR2,
    257     ZYDIS_REGISTER_CR3,
    258     ZYDIS_REGISTER_CR4,
    259     ZYDIS_REGISTER_CR5,
    260     ZYDIS_REGISTER_CR6,
    261     ZYDIS_REGISTER_CR7,
    262     ZYDIS_REGISTER_CR8,
    263     ZYDIS_REGISTER_CR9,
    264     ZYDIS_REGISTER_CR10,
    265     ZYDIS_REGISTER_CR11,
    266     ZYDIS_REGISTER_CR12,
    267     ZYDIS_REGISTER_CR13,
    268     ZYDIS_REGISTER_CR14,
    269     ZYDIS_REGISTER_CR15,
    270 
    271     // Debug registers
    272     ZYDIS_REGISTER_DR0,
    273     ZYDIS_REGISTER_DR1,
    274     ZYDIS_REGISTER_DR2,
    275     ZYDIS_REGISTER_DR3,
    276     ZYDIS_REGISTER_DR4,
    277     ZYDIS_REGISTER_DR5,
    278     ZYDIS_REGISTER_DR6,
    279     ZYDIS_REGISTER_DR7,
    280     ZYDIS_REGISTER_DR8,
    281     ZYDIS_REGISTER_DR9,
    282     ZYDIS_REGISTER_DR10,
    283     ZYDIS_REGISTER_DR11,
    284     ZYDIS_REGISTER_DR12,
    285     ZYDIS_REGISTER_DR13,
    286     ZYDIS_REGISTER_DR14,
    287     ZYDIS_REGISTER_DR15,
    288 
    289     // Mask registers
    290     ZYDIS_REGISTER_K0,
    291     ZYDIS_REGISTER_K1,
    292     ZYDIS_REGISTER_K2,
    293     ZYDIS_REGISTER_K3,
    294     ZYDIS_REGISTER_K4,
    295     ZYDIS_REGISTER_K5,
    296     ZYDIS_REGISTER_K6,
    297     ZYDIS_REGISTER_K7,
    298 
    299     // Bound registers
    300     ZYDIS_REGISTER_BND0,
    301     ZYDIS_REGISTER_BND1,
    302     ZYDIS_REGISTER_BND2,
    303     ZYDIS_REGISTER_BND3,
    304     ZYDIS_REGISTER_BNDCFG,
    305     ZYDIS_REGISTER_BNDSTATUS,
    306 
    307     // Uncategorized
    308     ZYDIS_REGISTER_MXCSR,
    309     ZYDIS_REGISTER_PKRU,
    310     ZYDIS_REGISTER_XCR0,
    311     ZYDIS_REGISTER_UIF,
    312 
    313     /**
    314      * Maximum value of this enum.
    315      */
    316     ZYDIS_REGISTER_MAX_VALUE = ZYDIS_REGISTER_UIF,
    317     /**
    318      * The minimum number of bits required to represent all values of this enum.
    319      */
    320     ZYDIS_REGISTER_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_REGISTER_MAX_VALUE)
    321 } ZydisRegister;