File: iflaggen.h

package info (click to toggle)
chromium 138.0.7204.183-1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 6,071,908 kB
  • sloc: cpp: 34,937,088; ansic: 7,176,967; javascript: 4,110,704; python: 1,419,953; asm: 946,768; xml: 739,971; pascal: 187,324; sh: 89,623; perl: 88,663; objc: 79,944; sql: 50,304; cs: 41,786; fortran: 24,137; makefile: 21,806; php: 13,980; tcl: 13,166; yacc: 8,925; ruby: 7,485; awk: 3,720; lisp: 3,096; lex: 1,327; ada: 727; jsp: 228; sed: 36
file content (299 lines) | stat: -rw-r--r-- 22,749 bytes parent folder | download | duplicates (6)
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 */