Zydis  v2.0.0-alpha2
Register.h
Go to the documentation of this file.
1 /***************************************************************************************************
2 
3  Zyan Disassembler Library (Zydis)
4 
5  Original Author : Florian Bernd
6 
7  * Permission is hereby granted, free of charge, to any person obtaining a copy
8  * of this software and associated documentation files (the "Software"), to deal
9  * in the Software without restriction, including without limitation the rights
10  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11  * copies of the Software, and to permit persons to whom the Software is
12  * furnished to do so, subject to the following conditions:
13  *
14  * The above copyright notice and this permission notice shall be included in all
15  * copies or substantial portions of the Software.
16  *
17  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23  * SOFTWARE.
24 
25 ***************************************************************************************************/
26 
32 #ifndef ZYDIS_REGISTER_H
33 #define ZYDIS_REGISTER_H
34 
35 #include <Zydis/Defines.h>
36 #include <Zydis/CommonTypes.h>
37 #include <Zydis/Status.h>
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
43 /* ============================================================================================== */
44 /* Enums and types */
45 /* ============================================================================================== */
46 
47 /* ---------------------------------------------------------------------------------------------- */
48 /* Registers */
49 /* ---------------------------------------------------------------------------------------------- */
50 
54 typedef uint8_t ZydisRegister;
55 
60 {
62  // General purpose registers 8-bit
68  // General purpose registers 16-bit
73  // General purpose registers 32-bit
78  // General purpose registers 64-bit
83  // Floating point legacy registers
86  // Floating point multimedia registers
89  // Floating point vector registers 512-bit
98  // Floating point vector registers 256-bit
107  // Floating point vector registers 128-bit
116  // Flags registers
118  // Instruction-pointer registers
120  // Special registers
122  // Segment registers
125  // Table registers
127  // Test registers
130  // Control registers
135  // Debug registers
140  // Mask registers
143  // Bound registers
146 
155 };
156 
157 /* ---------------------------------------------------------------------------------------------- */
158 /* Register classes */
159 /* ---------------------------------------------------------------------------------------------- */
160 
164 typedef uint8_t ZydisRegisterClass;
165 
170 {
244 };
245 
246 /* ---------------------------------------------------------------------------------------------- */
247 /* Register width */
248 /* ---------------------------------------------------------------------------------------------- */
249 
253 typedef uint16_t ZydisRegisterWidth;
254 
255 /* ---------------------------------------------------------------------------------------------- */
256 
257 /* ============================================================================================== */
258 /* Exported functions */
259 /* ============================================================================================== */
260 
270 ZYDIS_EXPORT ZydisRegister ZydisRegisterEncode(ZydisRegisterClass registerClass, uint8_t id);
271 
279 ZYDIS_EXPORT int16_t ZydisRegisterGetId(ZydisRegister reg);
280 
289 
298 
307 
315 ZYDIS_EXPORT const char* ZydisRegisterGetString(ZydisRegister reg);
316 
317 /* ============================================================================================== */
318 
319 #ifdef __cplusplus
320 }
321 #endif
322 
323 #endif /* ZYDIS_REGISTER_H */
Includes and defines some default datatypes.
General helper and platform detection macros.
uint8_t ZydisRegisterClass
Defines the ZydisRegisterClass datatype.
Definition: Register.h:164
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.
ZydisRegisters
Values that represent zydis registers.
Definition: Register.h:60
@ ZYDIS_REGISTER_GDTR
Definition: Register.h:126
@ ZYDIS_REGISTER_DL
Definition: Register.h:63
@ ZYDIS_REGISTER_ZMM8
Definition: Register.h:92
@ ZYDIS_REGISTER_RDX
Definition: Register.h:79
@ ZYDIS_REGISTER_FLAGS
Definition: Register.h:117
@ ZYDIS_REGISTER_ZMM16
Definition: Register.h:94
@ ZYDIS_REGISTER_MM7
Definition: Register.h:88
@ ZYDIS_REGISTER_ZMM26
Definition: Register.h:96
@ ZYDIS_REGISTER_XMM1
Definition: Register.h:108
@ ZYDIS_REGISTER_RSI
Definition: Register.h:80
@ ZYDIS_REGISTER_IP
Definition: Register.h:119
@ ZYDIS_REGISTER_R13B
Definition: Register.h:67
@ ZYDIS_REGISTER_XMM20
Definition: Register.h:113
@ ZYDIS_REGISTER_DR8
Definition: Register.h:138
@ ZYDIS_REGISTER_FS
Definition: Register.h:124
@ ZYDIS_REGISTER_XMM2
Definition: Register.h:108
@ ZYDIS_REGISTER_R8W
Definition: Register.h:71
@ ZYDIS_REGISTER_CH
Definition: Register.h:64
@ ZYDIS_REGISTER_ZMM6
Definition: Register.h:91
@ ZYDIS_REGISTER_RDI
Definition: Register.h:80
@ ZYDIS_REGISTER_RFLAGS
Definition: Register.h:117
@ ZYDIS_REGISTER_CR6
Definition: Register.h:132
@ ZYDIS_REGISTER_YMM25
Definition: Register.h:105
@ ZYDIS_REGISTER_TR3
Definition: Register.h:128
@ ZYDIS_REGISTER_K1
Definition: Register.h:141
@ ZYDIS_REGISTER_CS
Definition: Register.h:123
@ ZYDIS_REGISTER_K0
Definition: Register.h:141
@ ZYDIS_REGISTER_TR
Definition: Register.h:126
@ ZYDIS_REGISTER_YMM1
Definition: Register.h:99
@ ZYDIS_REGISTER_XMM24
Definition: Register.h:114
@ ZYDIS_REGISTER_YMM29
Definition: Register.h:106
@ ZYDIS_REGISTER_MM3
Definition: Register.h:87
@ ZYDIS_REGISTER_MM5
Definition: Register.h:88
@ ZYDIS_REGISTER_XMM10
Definition: Register.h:110
@ ZYDIS_REGISTER_EAX
Definition: Register.h:74
@ ZYDIS_REGISTER_ES
Definition: Register.h:123
@ ZYDIS_REGISTER_R8B
Definition: Register.h:66
@ ZYDIS_REGISTER_R10B
Definition: Register.h:66
@ ZYDIS_REGISTER_XMM6
Definition: Register.h:109
@ ZYDIS_REGISTER_YMM31
Definition: Register.h:106
@ ZYDIS_REGISTER_ZMM11
Definition: Register.h:92
@ ZYDIS_REGISTER_DR3
Definition: Register.h:136
@ ZYDIS_REGISTER_XMM19
Definition: Register.h:112
@ ZYDIS_REGISTER_R10W
Definition: Register.h:71
@ ZYDIS_REGISTER_BP
Definition: Register.h:70
@ ZYDIS_REGISTER_EDI
Definition: Register.h:75
@ ZYDIS_REGISTER_BH
Definition: Register.h:64
@ ZYDIS_REGISTER_XMM13
Definition: Register.h:111
@ ZYDIS_REGISTER_IDTR
Definition: Register.h:126
@ ZYDIS_REGISTER_AX
Definition: Register.h:69
@ ZYDIS_REGISTER_MAX_VALUE
Maximum value of this enum.
Definition: Register.h:150
@ ZYDIS_REGISTER_YMM18
Definition: Register.h:103
@ ZYDIS_REGISTER_ESI
Definition: Register.h:75
@ ZYDIS_REGISTER_EDX
Definition: Register.h:74
@ ZYDIS_REGISTER_ZMM18
Definition: Register.h:94
@ ZYDIS_REGISTER_R14W
Definition: Register.h:72
@ ZYDIS_REGISTER_K6
Definition: Register.h:142
@ ZYDIS_REGISTER_DR13
Definition: Register.h:139
@ ZYDIS_REGISTER_DH
Definition: Register.h:64
@ ZYDIS_REGISTER_XMM15
Definition: Register.h:111
@ ZYDIS_REGISTER_RSP
Definition: Register.h:80
@ ZYDIS_REGISTER_LDTR
Definition: Register.h:126
@ ZYDIS_REGISTER_ZMM29
Definition: Register.h:97
@ ZYDIS_REGISTER_XMM29
Definition: Register.h:115
@ ZYDIS_REGISTER_TR6
Definition: Register.h:129
@ ZYDIS_REGISTER_DIL
Definition: Register.h:65
@ ZYDIS_REGISTER_R15
Definition: Register.h:82
@ ZYDIS_REGISTER_R9D
Definition: Register.h:76
@ ZYDIS_REGISTER_MM4
Definition: Register.h:88
@ ZYDIS_REGISTER_BPL
Definition: Register.h:65
@ ZYDIS_REGISTER_ZMM0
Definition: Register.h:90
@ ZYDIS_REGISTER_YMM16
Definition: Register.h:103
@ ZYDIS_REGISTER_XMM0
Definition: Register.h:108
@ ZYDIS_REGISTER_R12D
Definition: Register.h:77
@ ZYDIS_REGISTER_RIP
Definition: Register.h:119
@ ZYDIS_REGISTER_CR0
Definition: Register.h:131
@ ZYDIS_REGISTER_TR7
Definition: Register.h:129
@ ZYDIS_REGISTER_SI
Definition: Register.h:70
@ ZYDIS_REGISTER_ZMM21
Definition: Register.h:95
@ ZYDIS_REGISTER_ZMM25
Definition: Register.h:96
@ ZYDIS_REGISTER_BNDCFG
Definition: Register.h:145
@ ZYDIS_REGISTER_CR3
Definition: Register.h:131
@ ZYDIS_REGISTER_XMM25
Definition: Register.h:114
@ ZYDIS_REGISTER_R8D
Definition: Register.h:76
@ ZYDIS_REGISTER_R15W
Definition: Register.h:72
@ ZYDIS_REGISTER_R14D
Definition: Register.h:77
@ ZYDIS_REGISTER_ZMM3
Definition: Register.h:90
@ ZYDIS_REGISTER_CR1
Definition: Register.h:131
@ ZYDIS_REGISTER_XMM26
Definition: Register.h:114
@ ZYDIS_REGISTER_DR10
Definition: Register.h:138
@ ZYDIS_REGISTER_XMM18
Definition: Register.h:112
@ ZYDIS_REGISTER_ZMM27
Definition: Register.h:96
@ ZYDIS_REGISTER_ZMM22
Definition: Register.h:95
@ ZYDIS_REGISTER_ZMM5
Definition: Register.h:91
@ ZYDIS_REGISTER_TR4
Definition: Register.h:129
@ ZYDIS_REGISTER_K3
Definition: Register.h:141
@ ZYDIS_REGISTER_DR14
Definition: Register.h:139
@ ZYDIS_REGISTER_R10
Definition: Register.h:81
@ ZYDIS_REGISTER_DR6
Definition: Register.h:137
@ ZYDIS_REGISTER_ZMM28
Definition: Register.h:97
@ ZYDIS_REGISTER_GS
Definition: Register.h:124
@ ZYDIS_REGISTER_AH
Definition: Register.h:64
@ ZYDIS_REGISTER_R11W
Definition: Register.h:71
@ ZYDIS_REGISTER_R15D
Definition: Register.h:77
@ ZYDIS_REGISTER_XMM27
Definition: Register.h:114
@ ZYDIS_REGISTER_XMM12
Definition: Register.h:111
@ ZYDIS_REGISTER_DR15
Definition: Register.h:139
@ ZYDIS_REGISTER_K4
Definition: Register.h:142
@ ZYDIS_REGISTER_DR2
Definition: Register.h:136
@ ZYDIS_REGISTER_MM6
Definition: Register.h:88
@ ZYDIS_REGISTER_R11
Definition: Register.h:81
@ ZYDIS_REGISTER_CR8
Definition: Register.h:133
@ ZYDIS_REGISTER_EBX
Definition: Register.h:74
@ ZYDIS_REGISTER_XMM21
Definition: Register.h:113
@ ZYDIS_REGISTER_XMM4
Definition: Register.h:109
@ ZYDIS_REGISTER_XMM8
Definition: Register.h:110
@ ZYDIS_REGISTER_CR7
Definition: Register.h:132
@ ZYDIS_REGISTER_YMM2
Definition: Register.h:99
@ ZYDIS_REGISTER_BND2
Definition: Register.h:144
@ ZYDIS_REGISTER_YMM15
Definition: Register.h:102
@ ZYDIS_REGISTER_ZMM13
Definition: Register.h:93
@ ZYDIS_REGISTER_ZMM20
Definition: Register.h:95
@ ZYDIS_REGISTER_R12B
Definition: Register.h:67
@ ZYDIS_REGISTER_CR15
Definition: Register.h:134
@ ZYDIS_REGISTER_PKRU
Definition: Register.h:121
@ ZYDIS_REGISTER_ZMM17
Definition: Register.h:94
@ ZYDIS_REGISTER_ZMM4
Definition: Register.h:91
@ ZYDIS_REGISTER_RBX
Definition: Register.h:79
@ ZYDIS_REGISTER_YMM30
Definition: Register.h:106
@ ZYDIS_REGISTER_YMM28
Definition: Register.h:106
@ ZYDIS_REGISTER_XMM16
Definition: Register.h:112
@ ZYDIS_REGISTER_XMM22
Definition: Register.h:113
@ ZYDIS_REGISTER_R9W
Definition: Register.h:71
@ ZYDIS_REGISTER_RCX
Definition: Register.h:79
@ ZYDIS_REGISTER_DS
Definition: Register.h:123
@ ZYDIS_REGISTER_XMM5
Definition: Register.h:109
@ ZYDIS_REGISTER_CL
Definition: Register.h:63
@ ZYDIS_REGISTER_SPL
Definition: Register.h:65
@ ZYDIS_REGISTER_YMM8
Definition: Register.h:101
@ ZYDIS_REGISTER_CR11
Definition: Register.h:133
@ ZYDIS_REGISTER_ZMM12
Definition: Register.h:93
@ ZYDIS_REGISTER_DR7
Definition: Register.h:137
@ ZYDIS_REGISTER_ST4
Definition: Register.h:85
@ ZYDIS_REGISTER_ZMM10
Definition: Register.h:92
@ ZYDIS_REGISTER_ST2
Definition: Register.h:84
@ ZYDIS_REGISTER_ECX
Definition: Register.h:74
@ ZYDIS_REGISTER_YMM23
Definition: Register.h:104
@ ZYDIS_REGISTER_XMM28
Definition: Register.h:115
@ ZYDIS_REGISTER_TR2
Definition: Register.h:128
@ ZYDIS_REGISTER_YMM9
Definition: Register.h:101
@ ZYDIS_REGISTER_MM0
Definition: Register.h:87
@ ZYDIS_REGISTER_CR9
Definition: Register.h:133
@ ZYDIS_REGISTER_BND1
Definition: Register.h:144
@ ZYDIS_REGISTER_ZMM9
Definition: Register.h:92
@ ZYDIS_REGISTER_R13W
Definition: Register.h:72
@ ZYDIS_REGISTER_CR14
Definition: Register.h:134
@ ZYDIS_REGISTER_ZMM2
Definition: Register.h:90
@ ZYDIS_REGISTER_DR1
Definition: Register.h:136
@ ZYDIS_REGISTER_YMM17
Definition: Register.h:103
@ ZYDIS_REGISTER_R12
Definition: Register.h:82
@ ZYDIS_REGISTER_NONE
Definition: Register.h:61
@ ZYDIS_REGISTER_ZMM15
Definition: Register.h:93
@ ZYDIS_REGISTER_BND3
Definition: Register.h:144
@ ZYDIS_REGISTER_RAX
Definition: Register.h:79
@ ZYDIS_REGISTER_SIL
Definition: Register.h:65
@ ZYDIS_REGISTER_R11B
Definition: Register.h:66
@ ZYDIS_REGISTER_MM1
Definition: Register.h:87
@ ZYDIS_REGISTER_XMM17
Definition: Register.h:112
@ ZYDIS_REGISTER_YMM27
Definition: Register.h:105
@ ZYDIS_REGISTER_R15B
Definition: Register.h:67
@ ZYDIS_REGISTER_EBP
Definition: Register.h:75
@ ZYDIS_REGISTER_RBP
Definition: Register.h:80
@ ZYDIS_REGISTER_ST6
Definition: Register.h:85
@ ZYDIS_REGISTER_DR9
Definition: Register.h:138
@ ZYDIS_REGISTER_ST3
Definition: Register.h:84
@ ZYDIS_REGISTER_MXCSR
Definition: Register.h:121
@ ZYDIS_REGISTER_R14
Definition: Register.h:82
@ ZYDIS_REGISTER_SP
Definition: Register.h:70
@ ZYDIS_REGISTER_AL
Definition: Register.h:63
@ ZYDIS_REGISTER_TR1
Definition: Register.h:128
@ ZYDIS_REGISTER_BND0
Definition: Register.h:144
@ ZYDIS_REGISTER_YMM0
Definition: Register.h:99
@ ZYDIS_REGISTER_YMM12
Definition: Register.h:102
@ ZYDIS_REGISTER_K7
Definition: Register.h:142
@ ZYDIS_REGISTER_YMM14
Definition: Register.h:102
@ ZYDIS_REGISTER_XMM30
Definition: Register.h:115
@ ZYDIS_REGISTER_YMM26
Definition: Register.h:105
@ ZYDIS_REGISTER_YMM21
Definition: Register.h:104
@ ZYDIS_REGISTER_R11D
Definition: Register.h:76
@ ZYDIS_REGISTER_ZMM24
Definition: Register.h:96
@ ZYDIS_REGISTER_ZMM23
Definition: Register.h:95
@ ZYDIS_REGISTER_BNDSTATUS
Definition: Register.h:145
@ ZYDIS_REGISTER_MAX_BITS
Maximum amount of bits occupied by an integer from this enum.
Definition: Register.h:154
@ ZYDIS_REGISTER_R8
Definition: Register.h:81
@ ZYDIS_REGISTER_ST0
Definition: Register.h:84
@ ZYDIS_REGISTER_R9
Definition: Register.h:81
@ ZYDIS_REGISTER_K5
Definition: Register.h:142
@ ZYDIS_REGISTER_YMM24
Definition: Register.h:105
@ ZYDIS_REGISTER_XMM14
Definition: Register.h:111
@ ZYDIS_REGISTER_ZMM1
Definition: Register.h:90
@ ZYDIS_REGISTER_CR5
Definition: Register.h:132
@ ZYDIS_REGISTER_YMM11
Definition: Register.h:101
@ ZYDIS_REGISTER_DR12
Definition: Register.h:139
@ ZYDIS_REGISTER_YMM10
Definition: Register.h:101
@ ZYDIS_REGISTER_MM2
Definition: Register.h:87
@ ZYDIS_REGISTER_DX
Definition: Register.h:69
@ ZYDIS_REGISTER_BX
Definition: Register.h:69
@ ZYDIS_REGISTER_TR0
Definition: Register.h:128
@ ZYDIS_REGISTER_R13
Definition: Register.h:82
@ ZYDIS_REGISTER_ST7
Definition: Register.h:85
@ ZYDIS_REGISTER_XMM23
Definition: Register.h:113
@ ZYDIS_REGISTER_YMM3
Definition: Register.h:99
@ ZYDIS_REGISTER_ST5
Definition: Register.h:85
@ ZYDIS_REGISTER_XMM3
Definition: Register.h:108
@ ZYDIS_REGISTER_R10D
Definition: Register.h:76
@ ZYDIS_REGISTER_K2
Definition: Register.h:141
@ ZYDIS_REGISTER_TR5
Definition: Register.h:129
@ ZYDIS_REGISTER_R14B
Definition: Register.h:67
@ ZYDIS_REGISTER_ZMM7
Definition: Register.h:91
@ ZYDIS_REGISTER_YMM5
Definition: Register.h:100
@ ZYDIS_REGISTER_ZMM31
Definition: Register.h:97
@ ZYDIS_REGISTER_EIP
Definition: Register.h:119
@ ZYDIS_REGISTER_ZMM30
Definition: Register.h:97
@ ZYDIS_REGISTER_XMM11
Definition: Register.h:110
@ ZYDIS_REGISTER_DI
Definition: Register.h:70
@ ZYDIS_REGISTER_R9B
Definition: Register.h:66
@ ZYDIS_REGISTER_XMM7
Definition: Register.h:109
@ ZYDIS_REGISTER_DR0
Definition: Register.h:136
@ ZYDIS_REGISTER_YMM7
Definition: Register.h:100
@ ZYDIS_REGISTER_YMM6
Definition: Register.h:100
@ ZYDIS_REGISTER_CR10
Definition: Register.h:133
@ ZYDIS_REGISTER_R12W
Definition: Register.h:72
@ ZYDIS_REGISTER_XCR0
Definition: Register.h:121
@ ZYDIS_REGISTER_CR4
Definition: Register.h:132
@ ZYDIS_REGISTER_DR4
Definition: Register.h:137
@ ZYDIS_REGISTER_XMM31
Definition: Register.h:115
@ ZYDIS_REGISTER_CR2
Definition: Register.h:131
@ ZYDIS_REGISTER_YMM20
Definition: Register.h:104
@ ZYDIS_REGISTER_CX
Definition: Register.h:69
@ ZYDIS_REGISTER_YMM13
Definition: Register.h:102
@ ZYDIS_REGISTER_CR13
Definition: Register.h:134
@ ZYDIS_REGISTER_ZMM19
Definition: Register.h:94
@ ZYDIS_REGISTER_CR12
Definition: Register.h:134
@ ZYDIS_REGISTER_BL
Definition: Register.h:63
@ ZYDIS_REGISTER_R13D
Definition: Register.h:77
@ ZYDIS_REGISTER_ST1
Definition: Register.h:84
@ ZYDIS_REGISTER_YMM22
Definition: Register.h:104
@ ZYDIS_REGISTER_ESP
Definition: Register.h:75
@ ZYDIS_REGISTER_YMM4
Definition: Register.h:100
@ ZYDIS_REGISTER_YMM19
Definition: Register.h:103
@ ZYDIS_REGISTER_DR5
Definition: Register.h:137
@ ZYDIS_REGISTER_SS
Definition: Register.h:123
@ ZYDIS_REGISTER_ZMM14
Definition: Register.h:93
@ ZYDIS_REGISTER_XMM9
Definition: Register.h:110
@ ZYDIS_REGISTER_DR11
Definition: Register.h:138
@ ZYDIS_REGISTER_EFLAGS
Definition: Register.h:117
ZydisRegisterClasses
Values that represent zydis register-classes.
Definition: Register.h:170
@ ZYDIS_REGCLASS_MMX
Floating point multimedia registers.
Definition: Register.h:195
@ ZYDIS_REGCLASS_IP
Instruction-pointer registers.
Definition: Register.h:215
@ ZYDIS_REGCLASS_CONTROL
Control registers.
Definition: Register.h:227
@ ZYDIS_REGCLASS_GPR8
8-bit general-purpose registers.
Definition: Register.h:175
@ ZYDIS_REGCLASS_SEGMENT
Segment registers.
Definition: Register.h:219
@ ZYDIS_REGCLASS_TEST
Test registers.
Definition: Register.h:223
@ ZYDIS_REGCLASS_X87
Floating point legacy registers.
Definition: Register.h:191
@ ZYDIS_REGCLASS_MAX_VALUE
Maximum value of this enum.
Definition: Register.h:243
@ ZYDIS_REGCLASS_YMM
256-bit vector registers.
Definition: Register.h:203
@ ZYDIS_REGCLASS_GPR64
64-bit general-purpose registers.
Definition: Register.h:187
@ ZYDIS_REGCLASS_BOUND
Bound registers.
Definition: Register.h:239
@ ZYDIS_REGCLASS_GPR32
32-bit general-purpose registers.
Definition: Register.h:183
@ ZYDIS_REGCLASS_INVALID
Definition: Register.h:171
@ ZYDIS_REGCLASS_DEBUG
Debug registers.
Definition: Register.h:231
@ ZYDIS_REGCLASS_FLAGS
Flags registers.
Definition: Register.h:211
@ ZYDIS_REGCLASS_ZMM
512-bit vector registers.
Definition: Register.h:207
@ ZYDIS_REGCLASS_MASK
Mask registers.
Definition: Register.h:235
@ ZYDIS_REGCLASS_GPR16
16-bit general-purpose registers.
Definition: Register.h:179
@ ZYDIS_REGCLASS_XMM
128-bit vector registers.
Definition: Register.h:199
ZYDIS_EXPORT ZydisRegisterWidth ZydisRegisterGetWidth(ZydisRegister reg)
Returns the width of the specified register.
uint16_t ZydisRegisterWidth
Defines the ZydisRegisterWidth datatype.
Definition: Register.h:253
uint8_t ZydisRegister
Defines the ZydisRegister datatype.
Definition: Register.h:54
ZYDIS_EXPORT ZydisRegister ZydisRegisterEncode(ZydisRegisterClass registerClass, uint8_t id)
Returns the register specified by the registerClass and the id.
ZYDIS_EXPORT ZydisRegisterClass ZydisRegisterGetClass(ZydisRegister reg)
Returns the register-class of the specified register.
ZYDIS_EXPORT int16_t ZydisRegisterGetId(ZydisRegister reg)
Returns the id of the specified register.
Status code definitions and check macros.