32 #ifndef ZYDIS_REGISTER_H
33 #define ZYDIS_REGISTER_H
Includes and defines some default datatypes.
uint8_t ZydisU8
Definition: CommonTypes.h:45
int16_t ZydisI16
Definition: CommonTypes.h:50
uint16_t ZydisU16
Definition: CommonTypes.h:46
General helper and platform detection macros.
ZYDIS_EXPORT ZydisI16 ZydisRegisterGetId(ZydisRegister reg)
Returns the id of the specified register.
ZydisU8 ZydisRegisterClass
Defines the ZydisRegisterClass datatype.
Definition: Register.h:165
ZYDIS_EXPORT ZydisRegisterWidth ZydisRegisterGetWidth64(ZydisRegister reg)
Returns the width of the specified register in 64-bit mode.
ZYDIS_EXPORT const char * ZydisRegisterGetString(ZydisRegister reg)
Returns the specified register string.
ZYDIS_EXPORT ZydisRegister ZydisRegisterEncode(ZydisRegisterClass registerClass, ZydisU8 id)
Returns the register specified by the registerClass and the id.
ZYDIS_EXPORT const ZydisStaticString * ZydisRegisterGetStaticString(ZydisRegister reg)
Returns the specified register string as ZydisStaticString.
ZydisRegisters
Values that represent zydis registers.
Definition: Register.h:60
@ ZYDIS_REGISTER_GDTR
Definition: Register.h:125
@ ZYDIS_REGISTER_DL
Definition: Register.h:64
@ ZYDIS_REGISTER_ZMM8
Definition: Register.h:111
@ ZYDIS_REGISTER_RDX
Definition: Register.h:80
@ ZYDIS_REGISTER_FLAGS
Definition: Register.h:118
@ ZYDIS_REGISTER_ZMM16
Definition: Register.h:113
@ ZYDIS_REGISTER_MM7
Definition: Register.h:89
@ ZYDIS_REGISTER_ZMM26
Definition: Register.h:115
@ ZYDIS_REGISTER_XMM1
Definition: Register.h:91
@ ZYDIS_REGISTER_RSI
Definition: Register.h:81
@ ZYDIS_REGISTER_IP
Definition: Register.h:120
@ ZYDIS_REGISTER_R13B
Definition: Register.h:68
@ ZYDIS_REGISTER_XMM20
Definition: Register.h:96
@ ZYDIS_REGISTER_DR8
Definition: Register.h:137
@ ZYDIS_REGISTER_FS
Definition: Register.h:123
@ ZYDIS_REGISTER_XMM2
Definition: Register.h:91
@ ZYDIS_REGISTER_R8W
Definition: Register.h:72
@ ZYDIS_REGISTER_CH
Definition: Register.h:65
@ ZYDIS_REGISTER_ZMM6
Definition: Register.h:110
@ ZYDIS_REGISTER_RDI
Definition: Register.h:81
@ ZYDIS_REGISTER_RFLAGS
Definition: Register.h:118
@ ZYDIS_REGISTER_CR6
Definition: Register.h:131
@ ZYDIS_REGISTER_YMM25
Definition: Register.h:106
@ ZYDIS_REGISTER_TR3
Definition: Register.h:127
@ ZYDIS_REGISTER_K1
Definition: Register.h:140
@ ZYDIS_REGISTER_CS
Definition: Register.h:122
@ ZYDIS_REGISTER_K0
Definition: Register.h:140
@ ZYDIS_REGISTER_TR
Definition: Register.h:125
@ ZYDIS_REGISTER_YMM1
Definition: Register.h:100
@ ZYDIS_REGISTER_XMM24
Definition: Register.h:97
@ ZYDIS_REGISTER_YMM29
Definition: Register.h:107
@ ZYDIS_REGISTER_MM3
Definition: Register.h:88
@ ZYDIS_REGISTER_MM5
Definition: Register.h:89
@ ZYDIS_REGISTER_XMM10
Definition: Register.h:93
@ ZYDIS_REGISTER_EAX
Definition: Register.h:75
@ ZYDIS_REGISTER_ES
Definition: Register.h:122
@ ZYDIS_REGISTER_R8B
Definition: Register.h:67
@ ZYDIS_REGISTER_R10B
Definition: Register.h:67
@ ZYDIS_REGISTER_XMM6
Definition: Register.h:92
@ ZYDIS_REGISTER_YMM31
Definition: Register.h:107
@ ZYDIS_REGISTER_ZMM11
Definition: Register.h:111
@ ZYDIS_REGISTER_DR3
Definition: Register.h:135
@ ZYDIS_REGISTER_XMM19
Definition: Register.h:95
@ ZYDIS_REGISTER_R10W
Definition: Register.h:72
@ ZYDIS_REGISTER_BP
Definition: Register.h:71
@ ZYDIS_REGISTER_EDI
Definition: Register.h:76
@ ZYDIS_REGISTER_BH
Definition: Register.h:65
@ ZYDIS_REGISTER_XMM13
Definition: Register.h:94
@ ZYDIS_REGISTER_IDTR
Definition: Register.h:125
@ ZYDIS_REGISTER_AX
Definition: Register.h:70
@ ZYDIS_REGISTER_MAX_VALUE
Maximum value of this enum.
Definition: Register.h:151
@ ZYDIS_REGISTER_YMM18
Definition: Register.h:104
@ ZYDIS_REGISTER_ESI
Definition: Register.h:76
@ ZYDIS_REGISTER_EDX
Definition: Register.h:75
@ ZYDIS_REGISTER_ZMM18
Definition: Register.h:113
@ ZYDIS_REGISTER_R14W
Definition: Register.h:73
@ ZYDIS_REGISTER_K6
Definition: Register.h:141
@ ZYDIS_REGISTER_DR13
Definition: Register.h:138
@ ZYDIS_REGISTER_DH
Definition: Register.h:65
@ ZYDIS_REGISTER_XMM15
Definition: Register.h:94
@ ZYDIS_REGISTER_RSP
Definition: Register.h:81
@ ZYDIS_REGISTER_LDTR
Definition: Register.h:125
@ ZYDIS_REGISTER_ZMM29
Definition: Register.h:116
@ ZYDIS_REGISTER_XMM29
Definition: Register.h:98
@ ZYDIS_REGISTER_TR6
Definition: Register.h:128
@ ZYDIS_REGISTER_DIL
Definition: Register.h:66
@ ZYDIS_REGISTER_R15
Definition: Register.h:83
@ ZYDIS_REGISTER_R9D
Definition: Register.h:77
@ ZYDIS_REGISTER_MM4
Definition: Register.h:89
@ ZYDIS_REGISTER_BPL
Definition: Register.h:66
@ ZYDIS_REGISTER_ZMM0
Definition: Register.h:109
@ ZYDIS_REGISTER_YMM16
Definition: Register.h:104
@ ZYDIS_REGISTER_XMM0
Definition: Register.h:91
@ ZYDIS_REGISTER_R12D
Definition: Register.h:78
@ ZYDIS_REGISTER_RIP
Definition: Register.h:120
@ ZYDIS_REGISTER_CR0
Definition: Register.h:130
@ ZYDIS_REGISTER_TR7
Definition: Register.h:128
@ ZYDIS_REGISTER_SI
Definition: Register.h:71
@ ZYDIS_REGISTER_ZMM21
Definition: Register.h:114
@ ZYDIS_REGISTER_ZMM25
Definition: Register.h:115
@ ZYDIS_REGISTER_BNDCFG
Definition: Register.h:144
@ ZYDIS_REGISTER_CR3
Definition: Register.h:130
@ ZYDIS_REGISTER_XMM25
Definition: Register.h:97
@ ZYDIS_REGISTER_R8D
Definition: Register.h:77
@ ZYDIS_REGISTER_R15W
Definition: Register.h:73
@ ZYDIS_REGISTER_R14D
Definition: Register.h:78
@ ZYDIS_REGISTER_ZMM3
Definition: Register.h:109
@ ZYDIS_REGISTER_CR1
Definition: Register.h:130
@ ZYDIS_REGISTER_XMM26
Definition: Register.h:97
@ ZYDIS_REGISTER_DR10
Definition: Register.h:137
@ ZYDIS_REGISTER_XMM18
Definition: Register.h:95
@ ZYDIS_REGISTER_ZMM27
Definition: Register.h:115
@ ZYDIS_REGISTER_ZMM22
Definition: Register.h:114
@ ZYDIS_REGISTER_ZMM5
Definition: Register.h:110
@ ZYDIS_REGISTER_TR4
Definition: Register.h:128
@ ZYDIS_REGISTER_K3
Definition: Register.h:140
@ ZYDIS_REGISTER_DR14
Definition: Register.h:138
@ ZYDIS_REGISTER_R10
Definition: Register.h:82
@ ZYDIS_REGISTER_DR6
Definition: Register.h:136
@ ZYDIS_REGISTER_ZMM28
Definition: Register.h:116
@ ZYDIS_REGISTER_GS
Definition: Register.h:123
@ ZYDIS_REGISTER_AH
Definition: Register.h:65
@ ZYDIS_REGISTER_R11W
Definition: Register.h:72
@ ZYDIS_REGISTER_R15D
Definition: Register.h:78
@ ZYDIS_REGISTER_XMM27
Definition: Register.h:97
@ ZYDIS_REGISTER_XMM12
Definition: Register.h:94
@ ZYDIS_REGISTER_DR15
Definition: Register.h:138
@ ZYDIS_REGISTER_K4
Definition: Register.h:141
@ ZYDIS_REGISTER_DR2
Definition: Register.h:135
@ ZYDIS_REGISTER_MM6
Definition: Register.h:89
@ ZYDIS_REGISTER_R11
Definition: Register.h:82
@ ZYDIS_REGISTER_CR8
Definition: Register.h:132
@ ZYDIS_REGISTER_EBX
Definition: Register.h:75
@ ZYDIS_REGISTER_XMM21
Definition: Register.h:96
@ ZYDIS_REGISTER_XMM4
Definition: Register.h:92
@ ZYDIS_REGISTER_XMM8
Definition: Register.h:93
@ ZYDIS_REGISTER_CR7
Definition: Register.h:131
@ ZYDIS_REGISTER_YMM2
Definition: Register.h:100
@ ZYDIS_REGISTER_BND2
Definition: Register.h:143
@ ZYDIS_REGISTER_YMM15
Definition: Register.h:103
@ ZYDIS_REGISTER_ZMM13
Definition: Register.h:112
@ ZYDIS_REGISTER_ZMM20
Definition: Register.h:114
@ ZYDIS_REGISTER_R12B
Definition: Register.h:68
@ ZYDIS_REGISTER_CR15
Definition: Register.h:133
@ ZYDIS_REGISTER_PKRU
Definition: Register.h:146
@ ZYDIS_REGISTER_ZMM17
Definition: Register.h:113
@ ZYDIS_REGISTER_ZMM4
Definition: Register.h:110
@ ZYDIS_REGISTER_RBX
Definition: Register.h:80
@ ZYDIS_REGISTER_YMM30
Definition: Register.h:107
@ ZYDIS_REGISTER_YMM28
Definition: Register.h:107
@ ZYDIS_REGISTER_XMM16
Definition: Register.h:95
@ ZYDIS_REGISTER_XMM22
Definition: Register.h:96
@ ZYDIS_REGISTER_R9W
Definition: Register.h:72
@ ZYDIS_REGISTER_RCX
Definition: Register.h:80
@ ZYDIS_REGISTER_DS
Definition: Register.h:122
@ ZYDIS_REGISTER_XMM5
Definition: Register.h:92
@ ZYDIS_REGISTER_CL
Definition: Register.h:64
@ ZYDIS_REGISTER_SPL
Definition: Register.h:66
@ ZYDIS_REGISTER_YMM8
Definition: Register.h:102
@ ZYDIS_REGISTER_CR11
Definition: Register.h:132
@ ZYDIS_REGISTER_ZMM12
Definition: Register.h:112
@ ZYDIS_REGISTER_DR7
Definition: Register.h:136
@ ZYDIS_REGISTER_ST4
Definition: Register.h:86
@ ZYDIS_REGISTER_ZMM10
Definition: Register.h:111
@ ZYDIS_REGISTER_ST2
Definition: Register.h:85
@ ZYDIS_REGISTER_ECX
Definition: Register.h:75
@ ZYDIS_REGISTER_YMM23
Definition: Register.h:105
@ ZYDIS_REGISTER_XMM28
Definition: Register.h:98
@ ZYDIS_REGISTER_TR2
Definition: Register.h:127
@ ZYDIS_REGISTER_YMM9
Definition: Register.h:102
@ ZYDIS_REGISTER_MM0
Definition: Register.h:88
@ ZYDIS_REGISTER_CR9
Definition: Register.h:132
@ ZYDIS_REGISTER_BND1
Definition: Register.h:143
@ ZYDIS_REGISTER_ZMM9
Definition: Register.h:111
@ ZYDIS_REGISTER_R13W
Definition: Register.h:73
@ ZYDIS_REGISTER_CR14
Definition: Register.h:133
@ ZYDIS_REGISTER_ZMM2
Definition: Register.h:109
@ ZYDIS_REGISTER_DR1
Definition: Register.h:135
@ ZYDIS_REGISTER_YMM17
Definition: Register.h:104
@ ZYDIS_REGISTER_R12
Definition: Register.h:83
@ ZYDIS_REGISTER_NONE
Definition: Register.h:61
@ ZYDIS_REGISTER_ZMM15
Definition: Register.h:112
@ ZYDIS_REGISTER_BND3
Definition: Register.h:143
@ ZYDIS_REGISTER_RAX
Definition: Register.h:80
@ ZYDIS_REGISTER_SIL
Definition: Register.h:66
@ ZYDIS_REGISTER_R11B
Definition: Register.h:67
@ ZYDIS_REGISTER_MM1
Definition: Register.h:88
@ ZYDIS_REGISTER_XMM17
Definition: Register.h:95
@ ZYDIS_REGISTER_YMM27
Definition: Register.h:106
@ ZYDIS_REGISTER_R15B
Definition: Register.h:68
@ ZYDIS_REGISTER_EBP
Definition: Register.h:76
@ ZYDIS_REGISTER_RBP
Definition: Register.h:81
@ ZYDIS_REGISTER_ST6
Definition: Register.h:86
@ ZYDIS_REGISTER_DR9
Definition: Register.h:137
@ ZYDIS_REGISTER_ST3
Definition: Register.h:85
@ ZYDIS_REGISTER_MXCSR
Definition: Register.h:146
@ ZYDIS_REGISTER_R14
Definition: Register.h:83
@ ZYDIS_REGISTER_SP
Definition: Register.h:71
@ ZYDIS_REGISTER_AL
Definition: Register.h:64
@ ZYDIS_REGISTER_TR1
Definition: Register.h:127
@ ZYDIS_REGISTER_BND0
Definition: Register.h:143
@ ZYDIS_REGISTER_YMM0
Definition: Register.h:100
@ ZYDIS_REGISTER_YMM12
Definition: Register.h:103
@ ZYDIS_REGISTER_K7
Definition: Register.h:141
@ ZYDIS_REGISTER_YMM14
Definition: Register.h:103
@ ZYDIS_REGISTER_XMM30
Definition: Register.h:98
@ ZYDIS_REGISTER_YMM26
Definition: Register.h:106
@ ZYDIS_REGISTER_YMM21
Definition: Register.h:105
@ ZYDIS_REGISTER_R11D
Definition: Register.h:77
@ ZYDIS_REGISTER_ZMM24
Definition: Register.h:115
@ ZYDIS_REGISTER_ZMM23
Definition: Register.h:114
@ ZYDIS_REGISTER_BNDSTATUS
Definition: Register.h:144
@ ZYDIS_REGISTER_R8
Definition: Register.h:82
@ ZYDIS_REGISTER_ST0
Definition: Register.h:85
@ ZYDIS_REGISTER_R9
Definition: Register.h:82
@ ZYDIS_REGISTER_K5
Definition: Register.h:141
@ ZYDIS_REGISTER_YMM24
Definition: Register.h:106
@ ZYDIS_REGISTER_XMM14
Definition: Register.h:94
@ ZYDIS_REGISTER_ZMM1
Definition: Register.h:109
@ ZYDIS_REGISTER_CR5
Definition: Register.h:131
@ ZYDIS_REGISTER_YMM11
Definition: Register.h:102
@ ZYDIS_REGISTER_DR12
Definition: Register.h:138
@ ZYDIS_REGISTER_YMM10
Definition: Register.h:102
@ ZYDIS_REGISTER_MM2
Definition: Register.h:88
@ ZYDIS_REGISTER_DX
Definition: Register.h:70
@ ZYDIS_REGISTER_BX
Definition: Register.h:70
@ ZYDIS_REGISTER_TR0
Definition: Register.h:127
@ ZYDIS_REGISTER_R13
Definition: Register.h:83
@ ZYDIS_REGISTER_ST7
Definition: Register.h:86
@ ZYDIS_REGISTER_XMM23
Definition: Register.h:96
@ ZYDIS_REGISTER_YMM3
Definition: Register.h:100
@ ZYDIS_REGISTER_ST5
Definition: Register.h:86
@ ZYDIS_REGISTER_XMM3
Definition: Register.h:91
@ ZYDIS_REGISTER_R10D
Definition: Register.h:77
@ ZYDIS_REGISTER_K2
Definition: Register.h:140
@ ZYDIS_REGISTER_TR5
Definition: Register.h:128
@ ZYDIS_REGISTER_R14B
Definition: Register.h:68
@ ZYDIS_REGISTER_ZMM7
Definition: Register.h:110
@ ZYDIS_REGISTER_YMM5
Definition: Register.h:101
@ ZYDIS_REGISTER_ZMM31
Definition: Register.h:116
@ ZYDIS_REGISTER_EIP
Definition: Register.h:120
@ ZYDIS_REGISTER_ZMM30
Definition: Register.h:116
@ ZYDIS_REGISTER_XMM11
Definition: Register.h:93
@ ZYDIS_REGISTER_DI
Definition: Register.h:71
@ ZYDIS_REGISTER_R9B
Definition: Register.h:67
@ ZYDIS_REGISTER_XMM7
Definition: Register.h:92
@ ZYDIS_REGISTER_DR0
Definition: Register.h:135
@ ZYDIS_REGISTER_YMM7
Definition: Register.h:101
@ ZYDIS_REGISTER_YMM6
Definition: Register.h:101
@ ZYDIS_REGISTER_CR10
Definition: Register.h:132
@ ZYDIS_REGISTER_R12W
Definition: Register.h:73
@ ZYDIS_REGISTER_XCR0
Definition: Register.h:146
@ ZYDIS_REGISTER_CR4
Definition: Register.h:131
@ ZYDIS_REGISTER_DR4
Definition: Register.h:136
@ ZYDIS_REGISTER_XMM31
Definition: Register.h:98
@ ZYDIS_REGISTER_CR2
Definition: Register.h:130
@ ZYDIS_REGISTER_YMM20
Definition: Register.h:105
@ ZYDIS_REGISTER_CX
Definition: Register.h:70
@ ZYDIS_REGISTER_YMM13
Definition: Register.h:103
@ ZYDIS_REGISTER_CR13
Definition: Register.h:133
@ ZYDIS_REGISTER_ZMM19
Definition: Register.h:113
@ ZYDIS_REGISTER_CR12
Definition: Register.h:133
@ ZYDIS_REGISTER_BL
Definition: Register.h:64
@ ZYDIS_REGISTER_R13D
Definition: Register.h:78
@ ZYDIS_REGISTER_ST1
Definition: Register.h:85
@ ZYDIS_REGISTER_YMM22
Definition: Register.h:105
@ ZYDIS_REGISTER_ESP
Definition: Register.h:76
@ ZYDIS_REGISTER_YMM4
Definition: Register.h:101
@ ZYDIS_REGISTER_YMM19
Definition: Register.h:104
@ ZYDIS_REGISTER_DR5
Definition: Register.h:136
@ ZYDIS_REGISTER_SS
Definition: Register.h:122
@ ZYDIS_REGISTER_ZMM14
Definition: Register.h:112
@ ZYDIS_REGISTER_MIN_BITS
Minimum amount of bits required to store a value of this enum.
Definition: Register.h:155
@ ZYDIS_REGISTER_XMM9
Definition: Register.h:93
@ ZYDIS_REGISTER_DR11
Definition: Register.h:137
@ ZYDIS_REGISTER_EFLAGS
Definition: Register.h:118
ZydisRegisterClasses
Values that represent zydis register-classes.
Definition: Register.h:171
@ ZYDIS_REGCLASS_MMX
Floating point multimedia registers.
Definition: Register.h:196
@ ZYDIS_REGCLASS_IP
Instruction-pointer registers.
Definition: Register.h:216
@ ZYDIS_REGCLASS_CONTROL
Control registers.
Definition: Register.h:228
@ ZYDIS_REGCLASS_GPR8
8-bit general-purpose registers.
Definition: Register.h:176
@ ZYDIS_REGCLASS_SEGMENT
Segment registers.
Definition: Register.h:220
@ ZYDIS_REGCLASS_TEST
Test registers.
Definition: Register.h:224
@ ZYDIS_REGCLASS_X87
Floating point legacy registers.
Definition: Register.h:192
@ ZYDIS_REGCLASS_MAX_VALUE
Maximum value of this enum.
Definition: Register.h:244
@ ZYDIS_REGCLASS_YMM
256-bit vector registers.
Definition: Register.h:204
@ ZYDIS_REGCLASS_GPR64
64-bit general-purpose registers.
Definition: Register.h:188
@ ZYDIS_REGCLASS_BOUND
Bound registers.
Definition: Register.h:240
@ ZYDIS_REGCLASS_GPR32
32-bit general-purpose registers.
Definition: Register.h:184
@ ZYDIS_REGCLASS_INVALID
Definition: Register.h:172
@ ZYDIS_REGCLASS_DEBUG
Debug registers.
Definition: Register.h:232
@ ZYDIS_REGCLASS_FLAGS
Flags registers.
Definition: Register.h:212
@ ZYDIS_REGCLASS_ZMM
512-bit vector registers.
Definition: Register.h:208
@ ZYDIS_REGCLASS_MASK
Mask registers.
Definition: Register.h:236
@ ZYDIS_REGCLASS_GPR16
16-bit general-purpose registers.
Definition: Register.h:180
@ ZYDIS_REGCLASS_XMM
128-bit vector registers.
Definition: Register.h:200
ZydisU16 ZydisRegisterWidth
Defines the ZydisRegisterWidth datatype.
Definition: Register.h:254
ZYDIS_EXPORT ZydisRegisterWidth ZydisRegisterGetWidth(ZydisRegister reg)
Returns the width of the specified register.
ZYDIS_EXPORT ZydisRegisterClass ZydisRegisterGetClass(ZydisRegister reg)
Returns the register-class of the specified register.
ZydisU8 ZydisRegister
Defines the ZydisRegister datatype.
Definition: Register.h:54
Defines the ZydisStaticString struct.
Definition: String.h:73