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;