@@ -76,3 +76,68 @@ const (
7676 STATUS_SKIP_TOKEN Status = 0x0B | CODE_OKAY | MODULE_ZYDIS
7777 STATUS_IMPOSSIBLE_INSTRUCTION Status = 0x0C | CODE_FAIL | MODULE_ZYDIS
7878)
79+
80+ const (
81+ ATTRIB_HAS_MODRM InstructionAttributes = 1 << 0
82+ ATTRIB_HAS_SIB InstructionAttributes = 1 << 1
83+ ATTRIB_HAS_REX InstructionAttributes = 1 << 2
84+ ATTRIB_HAS_XOP InstructionAttributes = 1 << 3
85+ ATTRIB_HAS_VEX InstructionAttributes = 1 << 4
86+ ATTRIB_HAS_EVEX InstructionAttributes = 1 << 5
87+ ATTRIB_HAS_MVEX InstructionAttributes = 1 << 6
88+ ATTRIB_IS_RELATIVE InstructionAttributes = 1 << 7
89+ ATTRIB_IS_PRIVILEGED InstructionAttributes = 1 << 8
90+ ATTRIB_CPUFLAG_ACCESS InstructionAttributes = 1 << 9
91+ ATTRIB_CPU_STATE_CR InstructionAttributes = 1 << 10
92+ ATTRIB_CPU_STATE_CW InstructionAttributes = 1 << 11
93+ ATTRIB_FPU_STATE_CR InstructionAttributes = 1 << 12
94+ ATTRIB_FPU_STATE_CW InstructionAttributes = 1 << 13
95+ ATTRIB_XMM_STATE_CR InstructionAttributes = 1 << 14
96+ ATTRIB_XMM_STATE_CW InstructionAttributes = 1 << 15
97+ ATTRIB_ACCEPTS_LOCK InstructionAttributes = 1 << 16
98+ ATTRIB_ACCEPTS_REP InstructionAttributes = 1 << 17
99+ ATTRIB_ACCEPTS_REPE InstructionAttributes = 1 << 18
100+ ATTRIB_ACCEPTS_REPZ InstructionAttributes = ATTRIB_ACCEPTS_REPE
101+ ATTRIB_ACCEPTS_REPNE InstructionAttributes = 1 << 19
102+ ATTRIB_ACCEPTS_REPNZ InstructionAttributes = ATTRIB_ACCEPTS_REPNE
103+ ATTRIB_ACCEPTS_BND InstructionAttributes = 1 << 20
104+ ATTRIB_ACCEPTS_XACQUIRE InstructionAttributes = 1 << 21
105+ ATTRIB_ACCEPTS_XRELEASE InstructionAttributes = 1 << 22
106+ ATTRIB_ACCEPTS_HLE_WITHOUT_LOCK InstructionAttributes = 1 << 23
107+ ATTRIB_ACCEPTS_BRANCH_HINTS InstructionAttributes = 1 << 24
108+ ATTRIB_ACCEPTS_NOTRACK InstructionAttributes = 1 << 25
109+ ATTRIB_ACCEPTS_SEGMENT InstructionAttributes = 1 << 26
110+ ATTRIB_HAS_LOCK InstructionAttributes = 1 << 27
111+ ATTRIB_HAS_REP InstructionAttributes = 1 << 28
112+ ATTRIB_HAS_REPE InstructionAttributes = 1 << 29
113+ ATTRIB_HAS_REPZ InstructionAttributes = ATTRIB_HAS_REPE
114+ ATTRIB_HAS_REPNE InstructionAttributes = 1 << 30
115+ ATTRIB_HAS_REPNZ InstructionAttributes = ATTRIB_HAS_REPNE
116+ ATTRIB_HAS_BND InstructionAttributes = 1 << 31
117+ ATTRIB_HAS_XACQUIRE InstructionAttributes = 1 << 32
118+ ATTRIB_HAS_XRELEASE InstructionAttributes = 1 << 33
119+ ATTRIB_HAS_BRANCH_NOT_TAKEN InstructionAttributes = 1 << 34
120+ ATTRIB_HAS_BRANCH_TAKEN InstructionAttributes = 1 << 35
121+ ATTRIB_HAS_NOTRACK InstructionAttributes = 1 << 36
122+ ATTRIB_HAS_SEGMENT_CS InstructionAttributes = 1 << 37
123+ ATTRIB_HAS_SEGMENT_SS InstructionAttributes = 1 << 38
124+ ATTRIB_HAS_SEGMENT_DS InstructionAttributes = 1 << 39
125+ ATTRIB_HAS_SEGMENT_ES InstructionAttributes = 1 << 40
126+ ATTRIB_HAS_SEGMENT_FS InstructionAttributes = 1 << 41
127+ ATTRIB_HAS_SEGMENT_GS InstructionAttributes = 1 << 42
128+ ATTRIB_HAS_SEGMENT InstructionAttributes = ATTRIB_HAS_SEGMENT_CS |
129+ ATTRIB_HAS_SEGMENT_SS |
130+ ATTRIB_HAS_SEGMENT_DS |
131+ ATTRIB_HAS_SEGMENT_ES |
132+ ATTRIB_HAS_SEGMENT_FS |
133+ ATTRIB_HAS_SEGMENT_GS
134+ ATTRIB_HAS_OPERANDSIZE InstructionAttributes = 1 << 43
135+ ATTRIB_HAS_ADDRESSSIZE InstructionAttributes = 1 << 44
136+ ATTRIB_HAS_EVEX_B InstructionAttributes = 1 << 45
137+ )
138+
139+ const (
140+ MAX_INSTRUCTION_LENGTH int = 15
141+ MAX_OPERAND_COUNT int = 10
142+ MAX_OPERAND_COUNT_VISIBLE int = 5
143+ )
0 commit comments