1 /**
2  * @brief   Defines the `ZydisInstructionCategory` enum.
3  */
4 typedef enum ZydisInstructionCategory_
5 {
6     ZYDIS_CATEGORY_INVALID,
7     ZYDIS_CATEGORY_ADOX_ADCX,
8     ZYDIS_CATEGORY_AES,
9     ZYDIS_CATEGORY_AMD3DNOW,
10     ZYDIS_CATEGORY_AVX,
11     ZYDIS_CATEGORY_AVX2,
12     ZYDIS_CATEGORY_AVX2GATHER,
13     ZYDIS_CATEGORY_AVX512,
14     ZYDIS_CATEGORY_AVX512_4FMAPS,
15     ZYDIS_CATEGORY_AVX512_4VNNIW,
16     ZYDIS_CATEGORY_AVX512_BITALG,
17     ZYDIS_CATEGORY_AVX512_VBMI,
18     ZYDIS_CATEGORY_AVX512_VP2INTERSECT,
19     ZYDIS_CATEGORY_BINARY,
20     ZYDIS_CATEGORY_BITBYTE,
21     ZYDIS_CATEGORY_BLEND,
22     ZYDIS_CATEGORY_BMI1,
23     ZYDIS_CATEGORY_BMI2,
24     ZYDIS_CATEGORY_BROADCAST,
25     ZYDIS_CATEGORY_CALL,
26     ZYDIS_CATEGORY_CET,
27     ZYDIS_CATEGORY_CLDEMOTE,
28     ZYDIS_CATEGORY_CLFLUSHOPT,
29     ZYDIS_CATEGORY_CLWB,
30     ZYDIS_CATEGORY_CLZERO,
31     ZYDIS_CATEGORY_CMOV,
32     ZYDIS_CATEGORY_COMPRESS,
33     ZYDIS_CATEGORY_COND_BR,
34     ZYDIS_CATEGORY_CONFLICT,
35     ZYDIS_CATEGORY_CONVERT,
36     ZYDIS_CATEGORY_DATAXFER,
37     ZYDIS_CATEGORY_DECIMAL,
38     ZYDIS_CATEGORY_ENQCMD,
39     ZYDIS_CATEGORY_EXPAND,
40     ZYDIS_CATEGORY_FCMOV,
41     ZYDIS_CATEGORY_FLAGOP,
42     ZYDIS_CATEGORY_FMA4,
43     ZYDIS_CATEGORY_GATHER,
44     ZYDIS_CATEGORY_GFNI,
45     ZYDIS_CATEGORY_IFMA,
46     ZYDIS_CATEGORY_INTERRUPT,
47     ZYDIS_CATEGORY_IO,
48     ZYDIS_CATEGORY_IOSTRINGOP,
49     ZYDIS_CATEGORY_KMASK,
50     ZYDIS_CATEGORY_KNC,
51     ZYDIS_CATEGORY_KNCMASK,
52     ZYDIS_CATEGORY_KNCSCALAR,
53     ZYDIS_CATEGORY_LOGICAL,
54     ZYDIS_CATEGORY_LOGICAL_FP,
55     ZYDIS_CATEGORY_LZCNT,
56     ZYDIS_CATEGORY_MISC,
57     ZYDIS_CATEGORY_MMX,
58     ZYDIS_CATEGORY_MOVDIR,
59     ZYDIS_CATEGORY_MPX,
60     ZYDIS_CATEGORY_NOP,
61     ZYDIS_CATEGORY_PADLOCK,
62     ZYDIS_CATEGORY_PCLMULQDQ,
63     ZYDIS_CATEGORY_PCONFIG,
64     ZYDIS_CATEGORY_PKU,
65     ZYDIS_CATEGORY_POP,
66     ZYDIS_CATEGORY_PREFETCH,
67     ZYDIS_CATEGORY_PREFETCHWT1,
68     ZYDIS_CATEGORY_PT,
69     ZYDIS_CATEGORY_PUSH,
70     ZYDIS_CATEGORY_RDPID,
71     ZYDIS_CATEGORY_RDPRU,
72     ZYDIS_CATEGORY_RDRAND,
73     ZYDIS_CATEGORY_RDSEED,
74     ZYDIS_CATEGORY_RDWRFSGS,
75     ZYDIS_CATEGORY_RET,
76     ZYDIS_CATEGORY_ROTATE,
77     ZYDIS_CATEGORY_SCATTER,
78     ZYDIS_CATEGORY_SEGOP,
79     ZYDIS_CATEGORY_SEMAPHORE,
80     ZYDIS_CATEGORY_SETCC,
81     ZYDIS_CATEGORY_SGX,
82     ZYDIS_CATEGORY_SHA,
83     ZYDIS_CATEGORY_SHIFT,
84     ZYDIS_CATEGORY_SMAP,
85     ZYDIS_CATEGORY_SSE,
86     ZYDIS_CATEGORY_STRINGOP,
87     ZYDIS_CATEGORY_STTNI,
88     ZYDIS_CATEGORY_SYSCALL,
89     ZYDIS_CATEGORY_SYSRET,
90     ZYDIS_CATEGORY_SYSTEM,
91     ZYDIS_CATEGORY_TBM,
92     ZYDIS_CATEGORY_UFMA,
93     ZYDIS_CATEGORY_UNCOND_BR,
94     ZYDIS_CATEGORY_VAES,
95     ZYDIS_CATEGORY_VBMI2,
96     ZYDIS_CATEGORY_VFMA,
97     ZYDIS_CATEGORY_VPCLMULQDQ,
98     ZYDIS_CATEGORY_VTX,
99     ZYDIS_CATEGORY_WAITPKG,
100     ZYDIS_CATEGORY_WIDENOP,
101     ZYDIS_CATEGORY_X87_ALU,
102     ZYDIS_CATEGORY_XOP,
103     ZYDIS_CATEGORY_XSAVE,
104     ZYDIS_CATEGORY_XSAVEOPT,
105 
106     /**
107      * @brief   Maximum value of this enum.
108      */
109     ZYDIS_CATEGORY_MAX_VALUE = ZYDIS_CATEGORY_XSAVEOPT,
110     /**
111      * @brief   The minimum number of bits required to represent all values of this enum.
112      */
113     ZYDIS_CATEGORY_REQUIRED_BITS = ZYAN_BITS_TO_REPRESENT(ZYDIS_CATEGORY_MAX_VALUE)
114 } ZydisInstructionCategory;
115