1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299
|
/* This file is auto-generated. Don't edit. */
#ifndef NASM_IFLAGGEN_H
#define NASM_IFLAGGEN_H 1
#define IF_SM 0 /* Size match */
#define IF_SM2 1 /* Size match first two operands */
#define IF_SB 2 /* Unsized operands can't be non-byte */
#define IF_SW 3 /* Unsized operands can't be non-word */
#define IF_SD 4 /* Unsized operands can't be non-dword */
#define IF_SQ 5 /* Unsized operands can't be non-qword */
#define IF_SO 6 /* Unsized operands can't be non-oword */
#define IF_SY 7 /* Unsized operands can't be non-yword */
#define IF_SZ 8 /* Unsized operands can't be non-zword */
#define IF_SIZE 9 /* Unsized operands must match the bitsize */
#define IF_SX 10 /* Unsized operands not allowed */
#define IF_ANYSIZE 11 /* Ignore operand size even if explicit */
#define IF_AR0 12 /* SB, SW, SD applies to argument 0 */
#define IF_AR1 13 /* SB, SW, SD applies to argument 1 */
#define IF_AR2 14 /* SB, SW, SD applies to argument 2 */
#define IF_AR3 15 /* SB, SW, SD applies to argument 3 */
#define IF_AR4 16 /* SB, SW, SD applies to argument 4 */
#define IF_OPT 17 /* Optimizing assembly only */
#define IF_LATEVEX 18 /* Only if EVEX instructions are disabled */
/* 18...31 reserved */
#define IF_PRIV 32 /* Privileged instruction */
#define IF_SMM 33 /* Only valid in SMM */
#define IF_PROT 34 /* Protected mode only */
#define IF_LOCK 35 /* Lockable if operand 0 is memory */
#define IF_LOCK1 36 /* Lockable if operand 1 is memory */
#define IF_NOLONG 37 /* Not available in long mode */
#define IF_LONG 38 /* Long mode */
#define IF_NOHLE 39 /* HLE prefixes forbidden */
#define IF_MIB 40 /* split base/index EA */
#define IF_SIB 41 /* SIB encoding required */
#define IF_BND 42 /* BND (0xF2) prefix available */
#define IF_UNDOC 43 /* Undocumented */
#define IF_HLE 44 /* HLE prefixed */
#define IF_FPU 45 /* FPU */
#define IF_MMX 46 /* MMX */
#define IF_3DNOW 47 /* 3DNow! */
#define IF_SSE 48 /* SSE (KNI, MMX2) */
#define IF_SSE2 49 /* SSE2 */
#define IF_SSE3 50 /* SSE3 (PNI) */
#define IF_VMX 51 /* VMX */
#define IF_SSSE3 52 /* SSSE3 */
#define IF_SSE4A 53 /* AMD SSE4a */
#define IF_SSE41 54 /* SSE4.1 */
#define IF_SSE42 55 /* SSE4.2 */
#define IF_SSE5 56 /* SSE5 */
#define IF_AVX 57 /* AVX (256-bit floating point) */
#define IF_AVX2 58 /* AVX2 (256-bit integer) */
#define IF_FMA 59 /* */
#define IF_BMI1 60 /* */
#define IF_BMI2 61 /* */
#define IF_TBM 62 /* */
#define IF_RTM 63 /* */
#define IF_INVPCID 64 /* */
#define IF_AVX512 65 /* AVX-512F (512-bit base architecture) */
#define IF_AVX512CD 66 /* AVX-512 Conflict Detection */
#define IF_AVX512ER 67 /* AVX-512 Exponential and Reciprocal */
#define IF_AVX512PF 68 /* AVX-512 Prefetch */
#define IF_MPX 69 /* MPX */
#define IF_SHA 70 /* SHA */
#define IF_PREFETCHWT1 71 /* PREFETCHWT1 */
#define IF_AVX512VL 72 /* AVX-512 Vector Length Orthogonality */
#define IF_AVX512DQ 73 /* AVX-512 Dword and Qword */
#define IF_AVX512BW 74 /* AVX-512 Byte and Word */
#define IF_AVX512IFMA 75 /* AVX-512 IFMA instructions */
#define IF_AVX512VBMI 76 /* AVX-512 VBMI instructions */
#define IF_AES 77 /* AES instructions */
#define IF_VAES 78 /* AES AVX instructions */
#define IF_VPCLMULQDQ 79 /* AVX Carryless Multiplication */
#define IF_GFNI 80 /* Galois Field instructions */
#define IF_AVX512VBMI2 81 /* AVX-512 VBMI2 instructions */
#define IF_AVX512VNNI 82 /* AVX-512 VNNI instructions */
#define IF_AVX512BITALG 83 /* AVX-512 Bit Algorithm instructions */
#define IF_AVX512VPOPCNTDQ 84 /* AVX-512 VPOPCNTD/VPOPCNTQ */
#define IF_AVX5124FMAPS 85 /* AVX-512 4-iteration multiply-add */
#define IF_AVX5124VNNIW 86 /* AVX-512 4-iteration dot product */
#define IF_AVX512FP16 87 /* AVX-512 FP16 instructions */
#define IF_AVX512FC16 88 /* AVX-512 FC16 instructions */
#define IF_SGX 89 /* Intel Software Guard Extensions (SGX) */
#define IF_CET 90 /* Intel Control-Flow Enforcement Technology (CET) */
#define IF_ENQCMD 91 /* Enqueue command instructions */
#define IF_PCONFIG 92 /* Platform configuration instruction */
#define IF_WBNOINVD 93 /* Writeback and do not invalidate instruction */
#define IF_TSXLDTRK 94 /* TSX suspend load address tracking */
#define IF_SERIALIZE 95 /* SERIALIZE instruction */
#define IF_AVX512BF16 96 /* AVX-512 bfloat16 */
#define IF_AVX512VP2INTERSECT 97 /* AVX-512 VP2INTERSECT instructions */
#define IF_AMXTILE 98 /* AMX tile configuration instructions */
#define IF_AMXBF16 99 /* AMX bfloat16 multiplication */
#define IF_AMXINT8 100 /* AMX 8-bit integer multiplication */
#define IF_FRED 101 /* Flexible Return and Exception Delivery (FRED) */
#define IF_LKGS 102 /* Load User GS from Kernel (LKGS) */
#define IF_RAOINT 103 /* Remote atomic operations (RAO-INT) */
#define IF_UINTR 104 /* User interrupts */
#define IF_CMPCCXADD 105 /* CMPccXADD instructions */
#define IF_PREFETCHI 106 /* PREFETCHI0 and PREFETCHI1 */
#define IF_WRMSRNS 107 /* WRMSRNS */
#define IF_MSRLIST 108 /* RDMSRLIST and WRMSRLIST */
#define IF_AVXNECONVERT 109 /* AVX exceptionless floating-point conversions */
#define IF_AVXVNNIINT8 110 /* AVX Vector Neural Network 8-bit integer instructions */
#define IF_AVXIFMA 111 /* AVX integer multiply and add */
#define IF_HRESET 112 /* History reset */
#define IF_SMAP 113 /* Supervisor Mode Access Prevention (SMAP) */
#define IF_SHA512 114 /* SHA512 instructions */
#define IF_SM3 115 /* SM3 instructions */
#define IF_SM4 116 /* SM4 instructions */
#define IF_OBSOLETE 117 /* Instruction removed from architecture */
#define IF_NEVER 118 /* Instruction never implemented */
#define IF_NOP 119 /* Instruction is always a (nonintentional) NOP */
#define IF_VEX 120 /* VEX or XOP encoded instruction */
#define IF_EVEX 121 /* EVEX encoded instruction */
/* 121...127 reserved */
#define IF_8086 128 /* 8086 */
#define IF_186 129 /* 186+ */
#define IF_286 130 /* 286+ */
#define IF_386 131 /* 386+ */
#define IF_486 132 /* 486+ */
#define IF_PENT 133 /* Pentium */
#define IF_P6 134 /* P6 */
#define IF_KATMAI 135 /* Katmai */
#define IF_WILLAMETTE 136 /* Willamette */
#define IF_PRESCOTT 137 /* Prescott */
#define IF_X86_64 138 /* x86-64 (long or legacy mode) */
#define IF_NEHALEM 139 /* Nehalem */
#define IF_WESTMERE 140 /* Westmere */
#define IF_SANDYBRIDGE 141 /* Sandy Bridge */
#define IF_FUTURE 142 /* Ivy Bridge or newer */
#define IF_IA64 143 /* IA64 (in x86 mode) */
#define IF_DEFAULT 144 /* Default CPU level */
#define IF_ANY 145 /* Allow any known instruction */
#define IF_CYRIX 146 /* Cyrix-specific */
#define IF_AMD 147 /* AMD-specific */
/* 147...159 reserved */
/* Mask bits for field 0 : 0...31 */
#define IFM_SM UINT32_C(0x00000001) /* 0 */
#define IFM_SM2 UINT32_C(0x00000002) /* 1 */
#define IFM_SB UINT32_C(0x00000004) /* 2 */
#define IFM_SW UINT32_C(0x00000008) /* 3 */
#define IFM_SD UINT32_C(0x00000010) /* 4 */
#define IFM_SQ UINT32_C(0x00000020) /* 5 */
#define IFM_SO UINT32_C(0x00000040) /* 6 */
#define IFM_SY UINT32_C(0x00000080) /* 7 */
#define IFM_SZ UINT32_C(0x00000100) /* 8 */
#define IFM_SIZE UINT32_C(0x00000200) /* 9 */
#define IFM_SX UINT32_C(0x00000400) /* 10 */
#define IFM_ANYSIZE UINT32_C(0x00000800) /* 11 */
#define IFM_AR0 UINT32_C(0x00001000) /* 12 */
#define IFM_AR1 UINT32_C(0x00002000) /* 13 */
#define IFM_AR2 UINT32_C(0x00004000) /* 14 */
#define IFM_AR3 UINT32_C(0x00008000) /* 15 */
#define IFM_AR4 UINT32_C(0x00010000) /* 16 */
#define IFM_OPT UINT32_C(0x00020000) /* 17 */
#define IFM_LATEVEX UINT32_C(0x00040000) /* 18 */
/* Mask bits for field 1 : 32...63 */
#define IFM_PRIV UINT32_C(0x00000001) /* 32 */
#define IFM_SMM UINT32_C(0x00000002) /* 33 */
#define IFM_PROT UINT32_C(0x00000004) /* 34 */
#define IFM_LOCK UINT32_C(0x00000008) /* 35 */
#define IFM_LOCK1 UINT32_C(0x00000010) /* 36 */
#define IFM_NOLONG UINT32_C(0x00000020) /* 37 */
#define IFM_LONG UINT32_C(0x00000040) /* 38 */
#define IFM_NOHLE UINT32_C(0x00000080) /* 39 */
#define IFM_MIB UINT32_C(0x00000100) /* 40 */
#define IFM_SIB UINT32_C(0x00000200) /* 41 */
#define IFM_BND UINT32_C(0x00000400) /* 42 */
#define IFM_UNDOC UINT32_C(0x00000800) /* 43 */
#define IFM_HLE UINT32_C(0x00001000) /* 44 */
#define IFM_FPU UINT32_C(0x00002000) /* 45 */
#define IFM_MMX UINT32_C(0x00004000) /* 46 */
#define IFM_3DNOW UINT32_C(0x00008000) /* 47 */
#define IFM_SSE UINT32_C(0x00010000) /* 48 */
#define IFM_SSE2 UINT32_C(0x00020000) /* 49 */
#define IFM_SSE3 UINT32_C(0x00040000) /* 50 */
#define IFM_VMX UINT32_C(0x00080000) /* 51 */
#define IFM_SSSE3 UINT32_C(0x00100000) /* 52 */
#define IFM_SSE4A UINT32_C(0x00200000) /* 53 */
#define IFM_SSE41 UINT32_C(0x00400000) /* 54 */
#define IFM_SSE42 UINT32_C(0x00800000) /* 55 */
#define IFM_SSE5 UINT32_C(0x01000000) /* 56 */
#define IFM_AVX UINT32_C(0x02000000) /* 57 */
#define IFM_AVX2 UINT32_C(0x04000000) /* 58 */
#define IFM_FMA UINT32_C(0x08000000) /* 59 */
#define IFM_BMI1 UINT32_C(0x10000000) /* 60 */
#define IFM_BMI2 UINT32_C(0x20000000) /* 61 */
#define IFM_TBM UINT32_C(0x40000000) /* 62 */
#define IFM_RTM UINT32_C(0x80000000) /* 63 */
/* Mask bits for field 2 : 64...95 */
#define IFM_INVPCID UINT32_C(0x00000001) /* 64 */
#define IFM_AVX512 UINT32_C(0x00000002) /* 65 */
#define IFM_AVX512CD UINT32_C(0x00000004) /* 66 */
#define IFM_AVX512ER UINT32_C(0x00000008) /* 67 */
#define IFM_AVX512PF UINT32_C(0x00000010) /* 68 */
#define IFM_MPX UINT32_C(0x00000020) /* 69 */
#define IFM_SHA UINT32_C(0x00000040) /* 70 */
#define IFM_PREFETCHWT1 UINT32_C(0x00000080) /* 71 */
#define IFM_AVX512VL UINT32_C(0x00000100) /* 72 */
#define IFM_AVX512DQ UINT32_C(0x00000200) /* 73 */
#define IFM_AVX512BW UINT32_C(0x00000400) /* 74 */
#define IFM_AVX512IFMA UINT32_C(0x00000800) /* 75 */
#define IFM_AVX512VBMI UINT32_C(0x00001000) /* 76 */
#define IFM_AES UINT32_C(0x00002000) /* 77 */
#define IFM_VAES UINT32_C(0x00004000) /* 78 */
#define IFM_VPCLMULQDQ UINT32_C(0x00008000) /* 79 */
#define IFM_GFNI UINT32_C(0x00010000) /* 80 */
#define IFM_AVX512VBMI2 UINT32_C(0x00020000) /* 81 */
#define IFM_AVX512VNNI UINT32_C(0x00040000) /* 82 */
#define IFM_AVX512BITALG UINT32_C(0x00080000) /* 83 */
#define IFM_AVX512VPOPCNTDQ UINT32_C(0x00100000) /* 84 */
#define IFM_AVX5124FMAPS UINT32_C(0x00200000) /* 85 */
#define IFM_AVX5124VNNIW UINT32_C(0x00400000) /* 86 */
#define IFM_AVX512FP16 UINT32_C(0x00800000) /* 87 */
#define IFM_AVX512FC16 UINT32_C(0x01000000) /* 88 */
#define IFM_SGX UINT32_C(0x02000000) /* 89 */
#define IFM_CET UINT32_C(0x04000000) /* 90 */
#define IFM_ENQCMD UINT32_C(0x08000000) /* 91 */
#define IFM_PCONFIG UINT32_C(0x10000000) /* 92 */
#define IFM_WBNOINVD UINT32_C(0x20000000) /* 93 */
#define IFM_TSXLDTRK UINT32_C(0x40000000) /* 94 */
#define IFM_SERIALIZE UINT32_C(0x80000000) /* 95 */
/* Mask bits for field 3 : 96...127 */
#define IFM_AVX512BF16 UINT32_C(0x00000001) /* 96 */
#define IFM_AVX512VP2INTERSECT UINT32_C(0x00000002) /* 97 */
#define IFM_AMXTILE UINT32_C(0x00000004) /* 98 */
#define IFM_AMXBF16 UINT32_C(0x00000008) /* 99 */
#define IFM_AMXINT8 UINT32_C(0x00000010) /* 100 */
#define IFM_FRED UINT32_C(0x00000020) /* 101 */
#define IFM_LKGS UINT32_C(0x00000040) /* 102 */
#define IFM_RAOINT UINT32_C(0x00000080) /* 103 */
#define IFM_UINTR UINT32_C(0x00000100) /* 104 */
#define IFM_CMPCCXADD UINT32_C(0x00000200) /* 105 */
#define IFM_PREFETCHI UINT32_C(0x00000400) /* 106 */
#define IFM_WRMSRNS UINT32_C(0x00000800) /* 107 */
#define IFM_MSRLIST UINT32_C(0x00001000) /* 108 */
#define IFM_AVXNECONVERT UINT32_C(0x00002000) /* 109 */
#define IFM_AVXVNNIINT8 UINT32_C(0x00004000) /* 110 */
#define IFM_AVXIFMA UINT32_C(0x00008000) /* 111 */
#define IFM_HRESET UINT32_C(0x00010000) /* 112 */
#define IFM_SMAP UINT32_C(0x00020000) /* 113 */
#define IFM_SHA512 UINT32_C(0x00040000) /* 114 */
#define IFM_SM3 UINT32_C(0x00080000) /* 115 */
#define IFM_SM4 UINT32_C(0x00100000) /* 116 */
#define IFM_OBSOLETE UINT32_C(0x00200000) /* 117 */
#define IFM_NEVER UINT32_C(0x00400000) /* 118 */
#define IFM_NOP UINT32_C(0x00800000) /* 119 */
#define IFM_VEX UINT32_C(0x01000000) /* 120 */
#define IFM_EVEX UINT32_C(0x02000000) /* 121 */
/* Mask bits for field 4 : 128...159 */
#define IFM_8086 UINT32_C(0x00000001) /* 128 */
#define IFM_186 UINT32_C(0x00000002) /* 129 */
#define IFM_286 UINT32_C(0x00000004) /* 130 */
#define IFM_386 UINT32_C(0x00000008) /* 131 */
#define IFM_486 UINT32_C(0x00000010) /* 132 */
#define IFM_PENT UINT32_C(0x00000020) /* 133 */
#define IFM_P6 UINT32_C(0x00000040) /* 134 */
#define IFM_KATMAI UINT32_C(0x00000080) /* 135 */
#define IFM_WILLAMETTE UINT32_C(0x00000100) /* 136 */
#define IFM_PRESCOTT UINT32_C(0x00000200) /* 137 */
#define IFM_X86_64 UINT32_C(0x00000400) /* 138 */
#define IFM_NEHALEM UINT32_C(0x00000800) /* 139 */
#define IFM_WESTMERE UINT32_C(0x00001000) /* 140 */
#define IFM_SANDYBRIDGE UINT32_C(0x00002000) /* 141 */
#define IFM_FUTURE UINT32_C(0x00004000) /* 142 */
#define IFM_IA64 UINT32_C(0x00008000) /* 143 */
#define IFM_DEFAULT UINT32_C(0x00010000) /* 144 */
#define IFM_ANY UINT32_C(0x00020000) /* 145 */
#define IFM_CYRIX UINT32_C(0x00040000) /* 146 */
#define IFM_AMD UINT32_C(0x00080000) /* 147 */
/* IF_SM (0) ... IF_LATEVEX (18) */
#define IF_IGEN_FIRST 0
#define IF_IGEN_COUNT 19
#define IF_IGEN_FIELD 0
#define IF_IGEN_NFIELDS 1
/* IF_PRIV (32) ... IF_EVEX (121) */
#define IF_FEATURE_FIRST 32
#define IF_FEATURE_COUNT 90
#define IF_FEATURE_FIELD 1
#define IF_FEATURE_NFIELDS 3
/* IF_8086 (128) ... IF_AMD (147) */
#define IF_CPU_FIRST 128
#define IF_CPU_COUNT 20
#define IF_CPU_FIELD 4
#define IF_CPU_NFIELDS 1
#define IF_FIELD_COUNT 5
typedef struct {
uint32_t field[IF_FIELD_COUNT];
} iflag_t;
/* All combinations of instruction flags used in instruction patterns */
extern const iflag_t insns_flags[319];
#endif /* NASM_IFLAGGEN_H */
|