kmp/include/iflaggen.h

432 lines
33 KiB
C

/* This file is auto-generated. Don't edit. */
#ifndef NASM_IFLAGGEN_H
#define NASM_IFLAGGEN_H 1
#define IF_SM0 0 /* Size match operand 0 */
#define IF_SM1 1 /* Size match operand 1 */
#define IF_SM2 2 /* Size match operand 2 */
#define IF_SM3 3 /* Size match operand 3 */
#define IF_SM4 4 /* Size match operand 4 */
#define IF_AR0 5 /* SB, SW, SD applies to operand 0 */
#define IF_AR1 6 /* SB, SW, SD applies to operand 1 */
#define IF_AR2 7 /* SB, SW, SD applies to operand 2 */
#define IF_AR3 8 /* SB, SW, SD applies to operand 3 */
#define IF_AR4 9 /* SB, SW, SD applies to operand 4 */
#define IF_SB 10 /* Unsized operands can't be non-byte */
#define IF_SW 11 /* Unsized operands can't be non-word */
#define IF_SD 12 /* Unsized operands can't be non-dword */
#define IF_SQ 13 /* Unsized operands can't be non-qword */
#define IF_ST 14 /* Unsized operands can't be non-tword */
#define IF_SO 15 /* Unsized operands can't be non-oword */
#define IF_SY 16 /* Unsized operands can't be non-yword */
#define IF_SZ 17 /* Unsized operands can't be non-zword */
#define IF_NWSIZE 18 /* Operand size defaults to 64 in 64-bit mode */
#define IF_OSIZE 19 /* Unsized operands must match the operand size */
#define IF_ASIZE 20 /* Unsized operands must match the address size */
#define IF_ANYSIZE 21 /* Ignore operand size even if explicit */
#define IF_SX 22 /* Unsized operands not allowed */
#define IF_SDWORD 23 /* Strict sdword64 matching */
#define IF_PSEUDO 24 /* Pseudo-instruction (directive) */
#define IF_JMP_RELAX 25 /* Relaxable jump instruction */
#define IF_JCC_HINT 26 /* Hintable jump instruction */
#define IF_OPT 27 /* Optimizing assembly only */
#define IF_LATEVEX 28 /* Only if EVEX instructions are disabled */
#define IF_NOREX 29 /* Instruction does not support REX encoding */
#define IF_NOAPX 30 /* Instruction does not support APX registers or REX2 */
#define IF_NF 31 /* Instruction supports the {nf} prefix */
#define IF_NF_R 32 /* Instruction requires the {nf} prefix */
#define IF_NF_N 33 /* Instruction doesn't allow the {nf} prefix */
#define IF_NF_E 34 /* EVEX.NF set with {nf} prefix */
#define IF_ZU 35 /* Instruction supports the {zu} prefix */
#define IF_ZU_R 36 /* Instruction requires the {zu} prefix */
#define IF_ZU_E 37 /* EVEX.ND set with {zu} prefix */
#define IF_LIG 38 /* Ignore VEX/EVEX L field */
#define IF_WIG 39 /* Ignore VEX/EVEX W field */
#define IF_WW 40 /* VEX/EVEX W is REX.W */
#define IF_SIB 41 /* SIB encoding required */
#define IF_LOCK 42 /* Lockable if operand 0 is memory */
#define IF_LOCK1 43 /* Lockable if operand 1 is memory */
#define IF_NOLONG 44 /* Not available in long mode */
#define IF_LONG 45 /* Long mode */
#define IF_NOHLE 46 /* HLE prefixes forbidden */
#define IF_MIB 47 /* split base/index EA */
#define IF_BND 48 /* BND (0xF2) prefix available */
#define IF_REX2 49 /* REX2 encoding required */
#define IF_HLE 50 /* HLE prefixed */
#define IF_FL 51 /* Instruction modifies the flags */
#define IF_MOPVEC 52 /* M operand is a vector */
#define IF_SCC 53 /* EVEX[27:24] is special condition code */
#define IF_BESTDIS 54 /* Preferred disassembly pattern */
#define IF_DFV 55 /* Destination flag values */
/* 55...63 reserved */
#define IF_VEX 64 /* VEX or XOP encoded instruction */
#define IF_EVEX 65 /* EVEX encoded instruction */
#define IF_PRIV 66 /* Privileged instruction */
#define IF_SMM 67 /* Only valid in SMM */
#define IF_PROT 68 /* Protected mode only */
#define IF_UNDOC 69 /* Undocumented */
#define IF_FPU 70 /* FPU */
#define IF_MMX 71 /* MMX */
#define IF_3DNOW 72 /* 3DNow! */
#define IF_SSE 73 /* SSE (KNI, MMX2) */
#define IF_SSE2 74 /* SSE2 */
#define IF_SSE3 75 /* SSE3 (PNI) */
#define IF_VMX 76 /* VMX */
#define IF_SSSE3 77 /* SSSE3 */
#define IF_SSE4A 78 /* AMD SSE4a */
#define IF_SSE41 79 /* SSE4.1 */
#define IF_SSE42 80 /* SSE4.2 */
#define IF_SSE5 81 /* SSE5 */
#define IF_AVX 82 /* AVX (256-bit floating point) */
#define IF_AVX2 83 /* AVX2 (256-bit integer) */
#define IF_FMA 84 /* Fused multiply-add */
#define IF_BMI1 85 /* Bit manipulation instructions 1 */
#define IF_BMI2 86 /* Bit manipulation instructions 2 */
#define IF_TBM 87 /* */
#define IF_RTM 88 /* */
#define IF_AVX512 89 /* AVX-512 */
#define IF_AVX512F 90 /* AVX-512F (base architecture) */
#define IF_AVX512CD 91 /* AVX-512 Conflict Detection */
#define IF_AVX512ER 92 /* AVX-512 Exponential and Reciprocal */
#define IF_AVX512PF 93 /* AVX-512 Prefetch */
#define IF_MPX 94 /* MPX */
#define IF_SHA 95 /* SHA */
#define IF_AVX512VL 96 /* AVX-512 Vector Length Orthogonality */
#define IF_AVX512DQ 97 /* AVX-512 Dword and Qword */
#define IF_AVX512BW 98 /* AVX-512 Byte and Word */
#define IF_AVX512IFMA 99 /* AVX-512 IFMA instructions */
#define IF_AVX512VBMI 100 /* AVX-512 VBMI instructions */
#define IF_AES 101 /* AES instructions */
#define IF_VAES 102 /* AES AVX instructions */
#define IF_VPCLMULQDQ 103 /* AVX Carryless Multiplication */
#define IF_GFNI 104 /* Galois Field instructions */
#define IF_AVX512VBMI2 105 /* AVX-512 VBMI2 instructions */
#define IF_AVX512VNNI 106 /* AVX-512 VNNI instructions */
#define IF_AVX512BITALG 107 /* AVX-512 Bit Algorithm instructions */
#define IF_AVX512VPOPCNTDQ 108 /* AVX-512 VPOPCNTD/VPOPCNTQ */
#define IF_AVX5124FMAPS 109 /* AVX-512 4-iteration multiply-add */
#define IF_AVX5124VNNIW 110 /* AVX-512 4-iteration dot product */
#define IF_AVX512FP16 111 /* AVX-512 FP16 instructions */
#define IF_AVX512BMM 112 /* AVX-512 BMM instructions */
#define IF_F16C 113 /* F16C instructions */
#define IF_SGX 114 /* Intel Software Guard Extensions (SGX) */
#define IF_CET 115 /* Intel Control-Flow Enforcement Technology (CET) */
#define IF_ENQCMD 116 /* Enqueue command instructions */
#define IF_TSXLDTRK 117 /* TSX suspend load address tracking */
#define IF_AVX512BF16 118 /* AVX-512 bfloat16 */
#define IF_AVX512VP2INTERSECT 119 /* AVX-512 VP2INTERSECT instructions */
#define IF_AMXTILE 120 /* AMX tile configuration instructions */
#define IF_AMXBF16 121 /* AMX bfloat16 multiplication */
#define IF_AMXFP16 122 /* AMX FP16 multiplication */
#define IF_AMXFP8 123 /* AMX FP8 instructions */
#define IF_AMXTF32 124 /* AMX TF32 multiplication */
#define IF_AMXINT8 125 /* AMX 8-bit integer multiplication */
#define IF_AMXCOMPLEX 126 /* AMX float16 complex multiplication */
#define IF_AMXAVX512 127 /* EVEX zmm<-tmm conversion instructions */
#define IF_AMXMOVRS 128 /* AMX loads with MOVRS hint */
#define IF_AMXTRANSPOSE 129 /* AMX transpose instructions */
#define IF_FRED 130 /* Flexible Return and Exception Delivery (FRED) */
#define IF_RAOINT 131 /* Remote atomic operations (RAO-INT) */
#define IF_UINTR 132 /* User interrupts */
#define IF_CMPCCXADD 133 /* CMPccXADD instructions */
#define IF_PREFETCHI 134 /* PREFETCHI0 and PREFETCHI1 */
#define IF_MSRLIST 135 /* RDMSRLIST and WRMSRLIST */
#define IF_AVXNECONVERT 136 /* AVX exceptionless floating-point conversions */
#define IF_AVXVNNI 137 /* AVX Vector Neural Network instructions */
#define IF_AVXVNNIINT8 138 /* AVX Vector Neural Network 8-bit integer instructions */
#define IF_AVXVNNIINT16 139 /* AVX Vector Neural Network 16-bit integer instructions */
#define IF_AVXIFMA 140 /* AVX integer multiply and add */
#define IF_HRESET 141 /* History reset */
#define IF_SMAP 142 /* Supervisor Mode Access Prevention (SMAP) */
#define IF_SHA512 143 /* SHA512 instructions */
#define IF_HSM3 144 /* SM3 hash instructions */
#define IF_HSM4 145 /* SM4 hash instructions */
#define IF_APX 146 /* Advanced Performance Extensions (APX) */
#define IF_AVX10_1 147 /* AVX 10.1 instructions */
#define IF_AVX10_2 148 /* AVX 10.2 instructions */
#define IF_AVX10_VNNIINT 149 /* AVX Vector Neural Network integer instructions */
#define IF_ADX 150 /* ADCX and ADOX instructions */
#define IF_PKU 151 /* Protection key for user mode */
#define IF_MONITOR 152 /* MONITOR and MWAIT */
#define IF_MONITORX 153 /* MONITORX and MWAITX */
#define IF_WAITPKG 154 /* User wait instruction package */
#define IF_MSR_IMM 155 /* Immediate RDMSR/WRMSRNS instructions */
#define IF_AESKLE 156 /* AES key locker */
#define IF_AESKLEWIDE_KL 157 /* AES wide key locker */
#define IF_INVPCID 158 /* INVPCID instruction */
#define IF_PREFETCHWT1 159 /* PREFETCHWT1 instruction */
#define IF_PBNDKB 160 /* PBNDKB instruction */
#define IF_PCONFIG 161 /* PCONFIG instruction */
#define IF_WBNOINVD 162 /* WBNOINVD instruction */
#define IF_SERIALIZE 163 /* SERIALIZE instruction */
#define IF_LKGS 164 /* LKGS instruction */
#define IF_WRMSRNS 165 /* WRMSRNS instruction */
#define IF_CLFLUSHOPT 166 /* CLFLUSHOPT instruction */
#define IF_CLWB 167 /* CLWB instruction */
#define IF_RDRAND 168 /* RDRAND instruction */
#define IF_RDSEED 169 /* RDSEED instruction */
#define IF_RDPID 170 /* RDPID instruction */
#define IF_LZCNT 171 /* LZCNT instruction */
#define IF_PTWRITE 172 /* PTWRITE instruction */
#define IF_CLDEMOTE 173 /* CLDEMOTE instruction */
#define IF_MOVDIRI 174 /* MOVDIRI instruction */
#define IF_MOVDIR64B 175 /* MOVDIR64B instruction */
#define IF_CLZERO 176 /* CLZERO instruction */
#define IF_MOVBE 177 /* MOVBE instruction */
#define IF_MOVRS 178 /* MOVRS instruction */
#define IF_OBSOLETE 179 /* Instruction removed from architecture */
#define IF_NEVER 180 /* Instruction never implemented */
#define IF_NOP 181 /* Instruction is always a (nonintentional) NOP */
/* 181...191 reserved */
#define IF_8086 192 /* 8086 */
#define IF_186 193 /* 186+ */
#define IF_286 194 /* 286+ */
#define IF_386 195 /* 386+ */
#define IF_486 196 /* 486+ */
#define IF_PENT 197 /* Pentium */
#define IF_P6 198 /* P6 */
#define IF_KATMAI 199 /* Katmai */
#define IF_WILLAMETTE 200 /* Willamette */
#define IF_PRESCOTT 201 /* Prescott */
#define IF_IA64 202 /* IA64 (in x86 mode) */
#define IF_X86_64 203 /* x86-64 (long or legacy mode) */
#define IF_NEHALEM 204 /* Nehalem */
#define IF_WESTMERE 205 /* Westmere */
#define IF_SANDYBRIDGE 206 /* Sandy Bridge */
#define IF_FUTURE 207 /* Ivy Bridge or newer */
#define IF_DEFAULT 208 /* Default CPU level */
#define IF_ANY 209 /* Allow any known instruction */
#define IF_CYRIX 210 /* Cyrix-specific */
#define IF_AMD 211 /* AMD-specific */
/* 211...223 reserved */
/* Mask bits for field 0 : 0...31 */
#define IFM_SM0 UINT32_C(0x00000001) /* 0 */
#define IFM_SM1 UINT32_C(0x00000002) /* 1 */
#define IFM_SM2 UINT32_C(0x00000004) /* 2 */
#define IFM_SM3 UINT32_C(0x00000008) /* 3 */
#define IFM_SM4 UINT32_C(0x00000010) /* 4 */
#define IFM_AR0 UINT32_C(0x00000020) /* 5 */
#define IFM_AR1 UINT32_C(0x00000040) /* 6 */
#define IFM_AR2 UINT32_C(0x00000080) /* 7 */
#define IFM_AR3 UINT32_C(0x00000100) /* 8 */
#define IFM_AR4 UINT32_C(0x00000200) /* 9 */
#define IFM_SB UINT32_C(0x00000400) /* 10 */
#define IFM_SW UINT32_C(0x00000800) /* 11 */
#define IFM_SD UINT32_C(0x00001000) /* 12 */
#define IFM_SQ UINT32_C(0x00002000) /* 13 */
#define IFM_ST UINT32_C(0x00004000) /* 14 */
#define IFM_SO UINT32_C(0x00008000) /* 15 */
#define IFM_SY UINT32_C(0x00010000) /* 16 */
#define IFM_SZ UINT32_C(0x00020000) /* 17 */
#define IFM_NWSIZE UINT32_C(0x00040000) /* 18 */
#define IFM_OSIZE UINT32_C(0x00080000) /* 19 */
#define IFM_ASIZE UINT32_C(0x00100000) /* 20 */
#define IFM_ANYSIZE UINT32_C(0x00200000) /* 21 */
#define IFM_SX UINT32_C(0x00400000) /* 22 */
#define IFM_SDWORD UINT32_C(0x00800000) /* 23 */
#define IFM_PSEUDO UINT32_C(0x01000000) /* 24 */
#define IFM_JMP_RELAX UINT32_C(0x02000000) /* 25 */
#define IFM_JCC_HINT UINT32_C(0x04000000) /* 26 */
#define IFM_OPT UINT32_C(0x08000000) /* 27 */
#define IFM_LATEVEX UINT32_C(0x10000000) /* 28 */
#define IFM_NOREX UINT32_C(0x20000000) /* 29 */
#define IFM_NOAPX UINT32_C(0x40000000) /* 30 */
#define IFM_NF UINT32_C(0x80000000) /* 31 */
/* Mask bits for field 1 : 32...63 */
#define IFM_NF_R UINT32_C(0x00000001) /* 32 */
#define IFM_NF_N UINT32_C(0x00000002) /* 33 */
#define IFM_NF_E UINT32_C(0x00000004) /* 34 */
#define IFM_ZU UINT32_C(0x00000008) /* 35 */
#define IFM_ZU_R UINT32_C(0x00000010) /* 36 */
#define IFM_ZU_E UINT32_C(0x00000020) /* 37 */
#define IFM_LIG UINT32_C(0x00000040) /* 38 */
#define IFM_WIG UINT32_C(0x00000080) /* 39 */
#define IFM_WW UINT32_C(0x00000100) /* 40 */
#define IFM_SIB UINT32_C(0x00000200) /* 41 */
#define IFM_LOCK UINT32_C(0x00000400) /* 42 */
#define IFM_LOCK1 UINT32_C(0x00000800) /* 43 */
#define IFM_NOLONG UINT32_C(0x00001000) /* 44 */
#define IFM_LONG UINT32_C(0x00002000) /* 45 */
#define IFM_NOHLE UINT32_C(0x00004000) /* 46 */
#define IFM_MIB UINT32_C(0x00008000) /* 47 */
#define IFM_BND UINT32_C(0x00010000) /* 48 */
#define IFM_REX2 UINT32_C(0x00020000) /* 49 */
#define IFM_HLE UINT32_C(0x00040000) /* 50 */
#define IFM_FL UINT32_C(0x00080000) /* 51 */
#define IFM_MOPVEC UINT32_C(0x00100000) /* 52 */
#define IFM_SCC UINT32_C(0x00200000) /* 53 */
#define IFM_BESTDIS UINT32_C(0x00400000) /* 54 */
#define IFM_DFV UINT32_C(0x00800000) /* 55 */
/* Mask bits for field 2 : 64...95 */
#define IFM_VEX UINT32_C(0x00000001) /* 64 */
#define IFM_EVEX UINT32_C(0x00000002) /* 65 */
#define IFM_PRIV UINT32_C(0x00000004) /* 66 */
#define IFM_SMM UINT32_C(0x00000008) /* 67 */
#define IFM_PROT UINT32_C(0x00000010) /* 68 */
#define IFM_UNDOC UINT32_C(0x00000020) /* 69 */
#define IFM_FPU UINT32_C(0x00000040) /* 70 */
#define IFM_MMX UINT32_C(0x00000080) /* 71 */
#define IFM_3DNOW UINT32_C(0x00000100) /* 72 */
#define IFM_SSE UINT32_C(0x00000200) /* 73 */
#define IFM_SSE2 UINT32_C(0x00000400) /* 74 */
#define IFM_SSE3 UINT32_C(0x00000800) /* 75 */
#define IFM_VMX UINT32_C(0x00001000) /* 76 */
#define IFM_SSSE3 UINT32_C(0x00002000) /* 77 */
#define IFM_SSE4A UINT32_C(0x00004000) /* 78 */
#define IFM_SSE41 UINT32_C(0x00008000) /* 79 */
#define IFM_SSE42 UINT32_C(0x00010000) /* 80 */
#define IFM_SSE5 UINT32_C(0x00020000) /* 81 */
#define IFM_AVX UINT32_C(0x00040000) /* 82 */
#define IFM_AVX2 UINT32_C(0x00080000) /* 83 */
#define IFM_FMA UINT32_C(0x00100000) /* 84 */
#define IFM_BMI1 UINT32_C(0x00200000) /* 85 */
#define IFM_BMI2 UINT32_C(0x00400000) /* 86 */
#define IFM_TBM UINT32_C(0x00800000) /* 87 */
#define IFM_RTM UINT32_C(0x01000000) /* 88 */
#define IFM_AVX512 UINT32_C(0x02000000) /* 89 */
#define IFM_AVX512F UINT32_C(0x04000000) /* 90 */
#define IFM_AVX512CD UINT32_C(0x08000000) /* 91 */
#define IFM_AVX512ER UINT32_C(0x10000000) /* 92 */
#define IFM_AVX512PF UINT32_C(0x20000000) /* 93 */
#define IFM_MPX UINT32_C(0x40000000) /* 94 */
#define IFM_SHA UINT32_C(0x80000000) /* 95 */
/* Mask bits for field 3 : 96...127 */
#define IFM_AVX512VL UINT32_C(0x00000001) /* 96 */
#define IFM_AVX512DQ UINT32_C(0x00000002) /* 97 */
#define IFM_AVX512BW UINT32_C(0x00000004) /* 98 */
#define IFM_AVX512IFMA UINT32_C(0x00000008) /* 99 */
#define IFM_AVX512VBMI UINT32_C(0x00000010) /* 100 */
#define IFM_AES UINT32_C(0x00000020) /* 101 */
#define IFM_VAES UINT32_C(0x00000040) /* 102 */
#define IFM_VPCLMULQDQ UINT32_C(0x00000080) /* 103 */
#define IFM_GFNI UINT32_C(0x00000100) /* 104 */
#define IFM_AVX512VBMI2 UINT32_C(0x00000200) /* 105 */
#define IFM_AVX512VNNI UINT32_C(0x00000400) /* 106 */
#define IFM_AVX512BITALG UINT32_C(0x00000800) /* 107 */
#define IFM_AVX512VPOPCNTDQ UINT32_C(0x00001000) /* 108 */
#define IFM_AVX5124FMAPS UINT32_C(0x00002000) /* 109 */
#define IFM_AVX5124VNNIW UINT32_C(0x00004000) /* 110 */
#define IFM_AVX512FP16 UINT32_C(0x00008000) /* 111 */
#define IFM_AVX512BMM UINT32_C(0x00010000) /* 112 */
#define IFM_F16C UINT32_C(0x00020000) /* 113 */
#define IFM_SGX UINT32_C(0x00040000) /* 114 */
#define IFM_CET UINT32_C(0x00080000) /* 115 */
#define IFM_ENQCMD UINT32_C(0x00100000) /* 116 */
#define IFM_TSXLDTRK UINT32_C(0x00200000) /* 117 */
#define IFM_AVX512BF16 UINT32_C(0x00400000) /* 118 */
#define IFM_AVX512VP2INTERSECT UINT32_C(0x00800000) /* 119 */
#define IFM_AMXTILE UINT32_C(0x01000000) /* 120 */
#define IFM_AMXBF16 UINT32_C(0x02000000) /* 121 */
#define IFM_AMXFP16 UINT32_C(0x04000000) /* 122 */
#define IFM_AMXFP8 UINT32_C(0x08000000) /* 123 */
#define IFM_AMXTF32 UINT32_C(0x10000000) /* 124 */
#define IFM_AMXINT8 UINT32_C(0x20000000) /* 125 */
#define IFM_AMXCOMPLEX UINT32_C(0x40000000) /* 126 */
#define IFM_AMXAVX512 UINT32_C(0x80000000) /* 127 */
/* Mask bits for field 4 : 128...159 */
#define IFM_AMXMOVRS UINT32_C(0x00000001) /* 128 */
#define IFM_AMXTRANSPOSE UINT32_C(0x00000002) /* 129 */
#define IFM_FRED UINT32_C(0x00000004) /* 130 */
#define IFM_RAOINT UINT32_C(0x00000008) /* 131 */
#define IFM_UINTR UINT32_C(0x00000010) /* 132 */
#define IFM_CMPCCXADD UINT32_C(0x00000020) /* 133 */
#define IFM_PREFETCHI UINT32_C(0x00000040) /* 134 */
#define IFM_MSRLIST UINT32_C(0x00000080) /* 135 */
#define IFM_AVXNECONVERT UINT32_C(0x00000100) /* 136 */
#define IFM_AVXVNNI UINT32_C(0x00000200) /* 137 */
#define IFM_AVXVNNIINT8 UINT32_C(0x00000400) /* 138 */
#define IFM_AVXVNNIINT16 UINT32_C(0x00000800) /* 139 */
#define IFM_AVXIFMA UINT32_C(0x00001000) /* 140 */
#define IFM_HRESET UINT32_C(0x00002000) /* 141 */
#define IFM_SMAP UINT32_C(0x00004000) /* 142 */
#define IFM_SHA512 UINT32_C(0x00008000) /* 143 */
#define IFM_HSM3 UINT32_C(0x00010000) /* 144 */
#define IFM_HSM4 UINT32_C(0x00020000) /* 145 */
#define IFM_APX UINT32_C(0x00040000) /* 146 */
#define IFM_AVX10_1 UINT32_C(0x00080000) /* 147 */
#define IFM_AVX10_2 UINT32_C(0x00100000) /* 148 */
#define IFM_AVX10_VNNIINT UINT32_C(0x00200000) /* 149 */
#define IFM_ADX UINT32_C(0x00400000) /* 150 */
#define IFM_PKU UINT32_C(0x00800000) /* 151 */
#define IFM_MONITOR UINT32_C(0x01000000) /* 152 */
#define IFM_MONITORX UINT32_C(0x02000000) /* 153 */
#define IFM_WAITPKG UINT32_C(0x04000000) /* 154 */
#define IFM_MSR_IMM UINT32_C(0x08000000) /* 155 */
#define IFM_AESKLE UINT32_C(0x10000000) /* 156 */
#define IFM_AESKLEWIDE_KL UINT32_C(0x20000000) /* 157 */
#define IFM_INVPCID UINT32_C(0x40000000) /* 158 */
#define IFM_PREFETCHWT1 UINT32_C(0x80000000) /* 159 */
/* Mask bits for field 5 : 160...191 */
#define IFM_PBNDKB UINT32_C(0x00000001) /* 160 */
#define IFM_PCONFIG UINT32_C(0x00000002) /* 161 */
#define IFM_WBNOINVD UINT32_C(0x00000004) /* 162 */
#define IFM_SERIALIZE UINT32_C(0x00000008) /* 163 */
#define IFM_LKGS UINT32_C(0x00000010) /* 164 */
#define IFM_WRMSRNS UINT32_C(0x00000020) /* 165 */
#define IFM_CLFLUSHOPT UINT32_C(0x00000040) /* 166 */
#define IFM_CLWB UINT32_C(0x00000080) /* 167 */
#define IFM_RDRAND UINT32_C(0x00000100) /* 168 */
#define IFM_RDSEED UINT32_C(0x00000200) /* 169 */
#define IFM_RDPID UINT32_C(0x00000400) /* 170 */
#define IFM_LZCNT UINT32_C(0x00000800) /* 171 */
#define IFM_PTWRITE UINT32_C(0x00001000) /* 172 */
#define IFM_CLDEMOTE UINT32_C(0x00002000) /* 173 */
#define IFM_MOVDIRI UINT32_C(0x00004000) /* 174 */
#define IFM_MOVDIR64B UINT32_C(0x00008000) /* 175 */
#define IFM_CLZERO UINT32_C(0x00010000) /* 176 */
#define IFM_MOVBE UINT32_C(0x00020000) /* 177 */
#define IFM_MOVRS UINT32_C(0x00040000) /* 178 */
#define IFM_OBSOLETE UINT32_C(0x00080000) /* 179 */
#define IFM_NEVER UINT32_C(0x00100000) /* 180 */
#define IFM_NOP UINT32_C(0x00200000) /* 181 */
/* Mask bits for field 6 : 192...223 */
#define IFM_8086 UINT32_C(0x00000001) /* 192 */
#define IFM_186 UINT32_C(0x00000002) /* 193 */
#define IFM_286 UINT32_C(0x00000004) /* 194 */
#define IFM_386 UINT32_C(0x00000008) /* 195 */
#define IFM_486 UINT32_C(0x00000010) /* 196 */
#define IFM_PENT UINT32_C(0x00000020) /* 197 */
#define IFM_P6 UINT32_C(0x00000040) /* 198 */
#define IFM_KATMAI UINT32_C(0x00000080) /* 199 */
#define IFM_WILLAMETTE UINT32_C(0x00000100) /* 200 */
#define IFM_PRESCOTT UINT32_C(0x00000200) /* 201 */
#define IFM_IA64 UINT32_C(0x00000400) /* 202 */
#define IFM_X86_64 UINT32_C(0x00000800) /* 203 */
#define IFM_NEHALEM UINT32_C(0x00001000) /* 204 */
#define IFM_WESTMERE UINT32_C(0x00002000) /* 205 */
#define IFM_SANDYBRIDGE UINT32_C(0x00004000) /* 206 */
#define IFM_FUTURE UINT32_C(0x00008000) /* 207 */
#define IFM_DEFAULT UINT32_C(0x00010000) /* 208 */
#define IFM_ANY UINT32_C(0x00020000) /* 209 */
#define IFM_CYRIX UINT32_C(0x00040000) /* 210 */
#define IFM_AMD UINT32_C(0x00080000) /* 211 */
/* IF_SM0 (0) ... IF_DFV (55) */
#define IF_IGEN_FIRST 0
#define IF_IGEN_COUNT 56
#define IF_IGEN_FIELD 0
#define IF_IGEN_NFIELDS 2
/* IF_VEX (64) ... IF_NOP (181) */
#define IF_FEATURE_FIRST 64
#define IF_FEATURE_COUNT 118
#define IF_FEATURE_FIELD 2
#define IF_FEATURE_NFIELDS 4
/* IF_8086 (192) ... IF_AMD (211) */
#define IF_CPU_FIRST 192
#define IF_CPU_COUNT 20
#define IF_CPU_FIELD 6
#define IF_CPU_NFIELDS 1
#define IF_FIELD_COUNT 7
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[655];
#endif /* NASM_IFLAGGEN_H */