tm-grammars 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (181) hide show
  1. package/LICENSE +22 -0
  2. package/NOTICE +6565 -0
  3. package/README.md +211 -0
  4. package/grammars/abap.json +380 -0
  5. package/grammars/actionscript-3.json +951 -0
  6. package/grammars/ada.json +3874 -0
  7. package/grammars/apache.json +562 -0
  8. package/grammars/apex.json +3203 -0
  9. package/grammars/apl.json +1479 -0
  10. package/grammars/applescript.json +1406 -0
  11. package/grammars/ara.json +428 -0
  12. package/grammars/asm.json +1741 -0
  13. package/grammars/astro.json +776 -0
  14. package/grammars/awk.json +388 -0
  15. package/grammars/ballerina.json +3768 -0
  16. package/grammars/bat.json +783 -0
  17. package/grammars/beancount.json +831 -0
  18. package/grammars/berry.json +172 -0
  19. package/grammars/bibtex.json +315 -0
  20. package/grammars/bicep.json +239 -0
  21. package/grammars/blade.json +3870 -0
  22. package/grammars/c.json +3552 -0
  23. package/grammars/cadence.json +738 -0
  24. package/grammars/clarity.json +877 -0
  25. package/grammars/clojure.json +426 -0
  26. package/grammars/cmake.json +143 -0
  27. package/grammars/cobol.json +1124 -0
  28. package/grammars/codeql.json +1540 -0
  29. package/grammars/coffee.json +1311 -0
  30. package/grammars/cpp-macro.json +9498 -0
  31. package/grammars/cpp.json +16635 -0
  32. package/grammars/crystal.json +1866 -0
  33. package/grammars/csharp.json +5722 -0
  34. package/grammars/css.json +1860 -0
  35. package/grammars/csv.json +46 -0
  36. package/grammars/cue.json +1128 -0
  37. package/grammars/cypher.json +353 -0
  38. package/grammars/d.json +3185 -0
  39. package/grammars/dart.json +522 -0
  40. package/grammars/dax.json +185 -0
  41. package/grammars/diff.json +155 -0
  42. package/grammars/docker.json +97 -0
  43. package/grammars/dream-maker.json +640 -0
  44. package/grammars/elixir.json +1014 -0
  45. package/grammars/elm.json +751 -0
  46. package/grammars/erb.json +156 -0
  47. package/grammars/erlang.json +1757 -0
  48. package/grammars/fish.json +189 -0
  49. package/grammars/fsharp.json +1831 -0
  50. package/grammars/gdresource.json +290 -0
  51. package/grammars/gdscript.json +969 -0
  52. package/grammars/gdshader.json +405 -0
  53. package/grammars/gherkin.json +133 -0
  54. package/grammars/git-commit.json +85 -0
  55. package/grammars/git-rebase.json +56 -0
  56. package/grammars/glimmer-js.json +98 -0
  57. package/grammars/glimmer-ts.json +98 -0
  58. package/grammars/glsl.json +57 -0
  59. package/grammars/gnuplot.json +892 -0
  60. package/grammars/go.json +1012 -0
  61. package/grammars/graphql.json +1295 -0
  62. package/grammars/groovy.json +1378 -0
  63. package/grammars/hack.json +2650 -0
  64. package/grammars/haml.json +598 -0
  65. package/grammars/handlebars.json +848 -0
  66. package/grammars/haskell.json +2431 -0
  67. package/grammars/hcl.json +787 -0
  68. package/grammars/hjson.json +821 -0
  69. package/grammars/hlsl.json +212 -0
  70. package/grammars/html.json +93 -0
  71. package/grammars/imba.json +2696 -0
  72. package/grammars/ini.json +108 -0
  73. package/grammars/java.json +1885 -0
  74. package/grammars/javascript.json +5984 -0
  75. package/grammars/jinja-html.json +16 -0
  76. package/grammars/jinja.json +345 -0
  77. package/grammars/jison.json +715 -0
  78. package/grammars/jsdoc.json +21 -0
  79. package/grammars/json.json +208 -0
  80. package/grammars/json5.json +244 -0
  81. package/grammars/jsonc.json +208 -0
  82. package/grammars/jsonl.json +208 -0
  83. package/grammars/jsonnet.json +211 -0
  84. package/grammars/jssm.json +159 -0
  85. package/grammars/jsx.json +5984 -0
  86. package/grammars/julia.json +1061 -0
  87. package/grammars/kotlin.json +580 -0
  88. package/grammars/kusto.json +687 -0
  89. package/grammars/latex.json +2395 -0
  90. package/grammars/less.json +5012 -0
  91. package/grammars/liquid.json +990 -0
  92. package/grammars/lisp.json +121 -0
  93. package/grammars/logo.json +55 -0
  94. package/grammars/lua.json +956 -0
  95. package/grammars/make.json +629 -0
  96. package/grammars/markdown.json +3066 -0
  97. package/grammars/marko.json +1344 -0
  98. package/grammars/matlab.json +1131 -0
  99. package/grammars/mdc.json +571 -0
  100. package/grammars/mdx.json +5629 -0
  101. package/grammars/mermaid.json +1382 -0
  102. package/grammars/mojo.json +4153 -0
  103. package/grammars/narrat.json +227 -0
  104. package/grammars/nextflow.json +298 -0
  105. package/grammars/nginx.json +2121 -0
  106. package/grammars/nim.json +1522 -0
  107. package/grammars/nix.json +1200 -0
  108. package/grammars/nushell.json +1047 -0
  109. package/grammars/objective-c.json +3750 -0
  110. package/grammars/objective-cpp.json +7242 -0
  111. package/grammars/ocaml.json +2967 -0
  112. package/grammars/pascal.json +154 -0
  113. package/grammars/perl.json +2971 -0
  114. package/grammars/php.json +4024 -0
  115. package/grammars/plsql.json +241 -0
  116. package/grammars/postcss.json +377 -0
  117. package/grammars/powerquery.json +349 -0
  118. package/grammars/powershell.json +1024 -0
  119. package/grammars/prisma.json +443 -0
  120. package/grammars/prolog.json +298 -0
  121. package/grammars/proto.json +507 -0
  122. package/grammars/pug.json +1033 -0
  123. package/grammars/puppet.json +777 -0
  124. package/grammars/purescript.json +871 -0
  125. package/grammars/python.json +4208 -0
  126. package/grammars/r.json +637 -0
  127. package/grammars/raku.json +310 -0
  128. package/grammars/razor.json +1813 -0
  129. package/grammars/reg.json +136 -0
  130. package/grammars/rel.json +200 -0
  131. package/grammars/riscv.json +298 -0
  132. package/grammars/rst.json +734 -0
  133. package/grammars/ruby.json +2769 -0
  134. package/grammars/rust.json +1171 -0
  135. package/grammars/sas.json +302 -0
  136. package/grammars/sass.json +618 -0
  137. package/grammars/scala.json +1313 -0
  138. package/grammars/scheme.json +384 -0
  139. package/grammars/scss.json +1874 -0
  140. package/grammars/shaderlab.json +199 -0
  141. package/grammars/shellscript.json +2025 -0
  142. package/grammars/shellsession.json +33 -0
  143. package/grammars/smalltalk.json +235 -0
  144. package/grammars/solidity.json +1210 -0
  145. package/grammars/sparql.json +45 -0
  146. package/grammars/splunk.json +91 -0
  147. package/grammars/sql.json +631 -0
  148. package/grammars/ssh-config.json +88 -0
  149. package/grammars/stata.json +3050 -0
  150. package/grammars/stylus.json +1208 -0
  151. package/grammars/svelte.json +1171 -0
  152. package/grammars/swift.json +4203 -0
  153. package/grammars/system-verilog.json +1063 -0
  154. package/grammars/tasl.json +292 -0
  155. package/grammars/tcl.json +291 -0
  156. package/grammars/tex.json +281 -0
  157. package/grammars/toml.json +431 -0
  158. package/grammars/tsx.json +5984 -0
  159. package/grammars/turtle.json +261 -0
  160. package/grammars/twig.json +1394 -0
  161. package/grammars/typescript.json +5735 -0
  162. package/grammars/v.json +1001 -0
  163. package/grammars/vb.json +232 -0
  164. package/grammars/verilog.json +305 -0
  165. package/grammars/vhdl.json +1484 -0
  166. package/grammars/viml.json +445 -0
  167. package/grammars/vue-html.json +559 -0
  168. package/grammars/vue.json +1237 -0
  169. package/grammars/vyper.json +5415 -0
  170. package/grammars/wasm.json +831 -0
  171. package/grammars/wenyan.json +129 -0
  172. package/grammars/wgsl.json +391 -0
  173. package/grammars/wolfram.json +2370 -0
  174. package/grammars/xml.json +382 -0
  175. package/grammars/xsl.json +89 -0
  176. package/grammars/yaml.json +616 -0
  177. package/grammars/zenscript.json +257 -0
  178. package/grammars/zig.json +312 -0
  179. package/index.d.ts +18 -0
  180. package/index.js +2165 -0
  181. package/package.json +46 -0
@@ -0,0 +1,1741 @@
1
+ {
2
+ "displayName": "Assembly",
3
+ "fileTypes": [
4
+ "asm",
5
+ "nasm",
6
+ "yasm",
7
+ "inc",
8
+ "s"
9
+ ],
10
+ "name": "asm",
11
+ "patterns": [
12
+ {
13
+ "include": "#registers"
14
+ },
15
+ {
16
+ "include": "#mnemonics"
17
+ },
18
+ {
19
+ "include": "#constants"
20
+ },
21
+ {
22
+ "include": "#entities"
23
+ },
24
+ {
25
+ "include": "#support"
26
+ },
27
+ {
28
+ "include": "#comments"
29
+ },
30
+ {
31
+ "include": "#preprocessor"
32
+ },
33
+ {
34
+ "include": "#strings"
35
+ }
36
+ ],
37
+ "repository": {
38
+ "comments": {
39
+ "patterns": [
40
+ {
41
+ "match": "(;|(^|\\s)#\\s).*$",
42
+ "name": "comment.line"
43
+ },
44
+ {
45
+ "begin": "/\\*",
46
+ "end": "\\*/",
47
+ "name": "comment.block"
48
+ },
49
+ {
50
+ "begin": "^\\s*[\\#%]\\s*if\\s+0\\b",
51
+ "end": "^\\s*[\\#%]\\s*endif\\b",
52
+ "name": "comment.preprocessor"
53
+ }
54
+ ]
55
+ },
56
+ "constants": {
57
+ "patterns": [
58
+ {
59
+ "match": "(?i)\\b0[by](?:[01][01_]*)\\.(?:(?:[01][01_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",
60
+ "name": "constant.numeric.binary.floating-point.asm.x86_64"
61
+ },
62
+ {
63
+ "match": "(?i)\\b0[by](?:[01][01_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",
64
+ "name": "constant.numeric.binary.floating-point.asm.x86_64"
65
+ },
66
+ {
67
+ "match": "(?i)\\b0[oq](?:[0-7][0-7_]*)\\.(?:(?:[0-7][0-7_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",
68
+ "name": "constant.numeric.octal.floating-point.asm.x86_64"
69
+ },
70
+ {
71
+ "match": "(?i)\\b0[oq](?:[0-7][0-7_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",
72
+ "name": "constant.numeric.octal.floating-point.asm.x86_64"
73
+ },
74
+ {
75
+ "match": "(?i)\\b(?:0[dt])?(?:[0-9][0-9_]*)\\.(?:(?:[0-9][0-9_]*)?(?:e[+-]?(?:[0-9][0-9_]*))?\\b)?",
76
+ "name": "constant.numeric.decimal.floating-point.asm.x86_64"
77
+ },
78
+ {
79
+ "match": "(?i)\\b(?:[0-9][0-9_]*)(?:e[+-]?(?:[0-9][0-9_]*))\\b",
80
+ "name": "constant.numeric.decimal.floating-point.asm.x86_64"
81
+ },
82
+ {
83
+ "match": "(?i)\\b(?:[0-9][0-9_]*)p(?:[0-9][0-9_]*)?\\b",
84
+ "name": "constant.numeric.decimal.packed-bcd.asm.x86_64"
85
+ },
86
+ {
87
+ "match": "(?i)\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",
88
+ "name": "constant.numeric.hex.floating-point.asm.x86_64"
89
+ },
90
+ {
91
+ "match": "(?i)\\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",
92
+ "name": "constant.numeric.hex.floating-point.asm.x86_64"
93
+ },
94
+ {
95
+ "match": "(?i)\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?\\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\\b)?",
96
+ "name": "constant.numeric.hex.floating-point.asm.x86_64"
97
+ },
98
+ {
99
+ "match": "(?i)\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\\b",
100
+ "name": "constant.numeric.hex.floating-point.asm.x86_64"
101
+ },
102
+ {
103
+ "match": "(?i)\\b(?:(?:0[by](?:[01][01_]*))|(?:(?:[01][01_]*)[by]))\\b",
104
+ "name": "constant.numeric.binary.asm.x86_64"
105
+ },
106
+ {
107
+ "match": "(?i)\\b(?:(?:0[oq](?:[0-7][0-7_]*))|(?:(?:[0-7][0-7_]*)[oq]))\\b",
108
+ "name": "constant.numeric.octal.asm.x86_64"
109
+ },
110
+ {
111
+ "match": "(?i)\\b(?:(?:0[dt](?:[0-9][0-9_]*))|(?:(?:[0-9][0-9_]*)[dt]?))\\b",
112
+ "name": "constant.numeric.decimal.asm.x86_64"
113
+ },
114
+ {
115
+ "match": "(?i)(?:\\$[0-9]\\_?(?:[[:xdigit:]][[:xdigit:]_]*)?)\\b",
116
+ "name": "constant.numeric.hex.asm.x86_64"
117
+ },
118
+ {
119
+ "match": "(?i)\\b(?:(?:0[xh](?:[[:xdigit:]][[:xdigit:]_]*))|(?:(?:[[:xdigit:]][[:xdigit:]_]*)[hxHX]))\\b",
120
+ "name": "constant.numeric.hex.asm.x86_64"
121
+ }
122
+ ]
123
+ },
124
+ "entities": {
125
+ "patterns": [
126
+ {
127
+ "match": "((section|segment)\\s+)?\\.((ro)?data|bss|text)",
128
+ "name": "entity.name.section"
129
+ },
130
+ {
131
+ "match": "^\\.?(globa?l|extern|required)\\b",
132
+ "name": "entity.directive"
133
+ },
134
+ {
135
+ "match": "(\\$\\w+)\\b",
136
+ "name": "text.variable"
137
+ },
138
+ {
139
+ "captures": {
140
+ "1": {
141
+ "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"
142
+ },
143
+ "2": {
144
+ "name": "entity.name.function.special.asm.x86_64"
145
+ },
146
+ "3": {
147
+ "name": "punctuation.separator.asm.x86_64"
148
+ }
149
+ },
150
+ "match": "(\\.\\.@)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\:)?|\\b)",
151
+ "name": "entity.name.function.asm.x86_64"
152
+ },
153
+ {
154
+ "captures": {
155
+ "1": {
156
+ "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"
157
+ },
158
+ "2": {
159
+ "name": "entity.name.function.asm.x86_64"
160
+ },
161
+ "3": {
162
+ "name": "punctuation.separator.asm.x86_64"
163
+ }
164
+ },
165
+ "match": "(?:(\\.)?|\\b)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\\:))",
166
+ "name": "entity.name.function.asm.x86_64"
167
+ },
168
+ {
169
+ "captures": {
170
+ "1": {
171
+ "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"
172
+ },
173
+ "2": {
174
+ "name": "entity.name.function.asm.x86_64"
175
+ },
176
+ "3": {
177
+ "name": "punctuation.separator.asm.x86_64"
178
+ }
179
+ },
180
+ "match": "(\\.)([0-9]+(?:[[:alnum:]_$#@~.?]*))(?:(\\:)?|\\b)",
181
+ "name": "entity.name.function.asm.x86_64"
182
+ },
183
+ {
184
+ "captures": {
185
+ "1": {
186
+ "name": "punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64"
187
+ },
188
+ "2": {
189
+ "name": "invalid.illegal.entity.name.function.asm.x86_64"
190
+ },
191
+ "3": {
192
+ "name": "punctuation.separator.asm.x86_64"
193
+ }
194
+ },
195
+ "match": "(?:(\\.)?|\\b)([0-9$@~](?:[[:alnum:]_$#@~.?]*))(?:(\\:))",
196
+ "name": "invalid.illegal.entity.name.function.asm.x86_64"
197
+ }
198
+ ]
199
+ },
200
+ "mnemonics": {
201
+ "patterns": [
202
+ {
203
+ "include": "#mnemonics-general-purpose"
204
+ },
205
+ {
206
+ "include": "#mnemonics-fpu"
207
+ },
208
+ {
209
+ "include": "#mnemonics-mmx"
210
+ },
211
+ {
212
+ "include": "#mnemonics-sse"
213
+ },
214
+ {
215
+ "include": "#mnemonics-sse2"
216
+ },
217
+ {
218
+ "include": "#mnemonics-sse3"
219
+ },
220
+ {
221
+ "include": "#mnemonics-sse4"
222
+ },
223
+ {
224
+ "include": "#mnemonics-aesni"
225
+ },
226
+ {
227
+ "include": "#mnemonics-avx"
228
+ },
229
+ {
230
+ "include": "#mnemonics-avx2"
231
+ },
232
+ {
233
+ "include": "#mnemonics-tsx"
234
+ },
235
+ {
236
+ "include": "#mnemonics-sha"
237
+ },
238
+ {
239
+ "include": "#mnemonics-avx512"
240
+ },
241
+ {
242
+ "include": "#mnemonics-system"
243
+ },
244
+ {
245
+ "include": "#mnemonics-64bit"
246
+ },
247
+ {
248
+ "include": "#mnemonics-vmx"
249
+ },
250
+ {
251
+ "include": "#mnemonics-smx"
252
+ },
253
+ {
254
+ "include": "#mnemonics-mpx"
255
+ },
256
+ {
257
+ "include": "#mnemonics-sgx"
258
+ },
259
+ {
260
+ "include": "#mnemonics-cet"
261
+ },
262
+ {
263
+ "include": "#mnemonics-amx"
264
+ },
265
+ {
266
+ "include": "#mnemonics-uirq"
267
+ },
268
+ {
269
+ "include": "#mnemonics-esi"
270
+ },
271
+ {
272
+ "include": "#mnemonics-intel-manual-listing"
273
+ },
274
+ {
275
+ "include": "#mnemonics-intel-isa-xeon-phi"
276
+ },
277
+ {
278
+ "include": "#mnemonics-intel-isa-keylocker"
279
+ },
280
+ {
281
+ "include": "#mnemonics-supplemental-amd"
282
+ },
283
+ {
284
+ "include": "#mnemonics-supplemental-cyrix"
285
+ },
286
+ {
287
+ "include": "#mnemonics-supplemental-via"
288
+ },
289
+ {
290
+ "include": "#mnemonics-undocumented"
291
+ },
292
+ {
293
+ "include": "#mnemonics-future-intel"
294
+ },
295
+ {
296
+ "include": "#mnemonics-pseudo-ops"
297
+ }
298
+ ]
299
+ },
300
+ "mnemonics-64bit": {
301
+ "patterns": [
302
+ {
303
+ "match": "(?i)\\b(cdqe|cqo|(cmp|lod|mov|sto)sq|cmpxchg16b|mov(ntq|sxd)|scasq|swapgs|sys(call|ret))\\b",
304
+ "name": "keyword.operator.word.mnemonic.64-bit-mode"
305
+ }
306
+ ]
307
+ },
308
+ "mnemonics-aesni": {
309
+ "patterns": [
310
+ {
311
+ "match": "(?i)\\b(aes((dec|enc)(last)?|imc|keygenassist)|pclmulqdq)\\b",
312
+ "name": "keyword.operator.word.mnemonic.aesni"
313
+ }
314
+ ]
315
+ },
316
+ "mnemonics-amx": {
317
+ "patterns": [
318
+ {
319
+ "match": "(?i)\\b((ld|st)tilecfg|tdpb(f16ps|[su]{2}d)|tile(loadd(t1)?|release|stored|zero))\\b",
320
+ "name": "keyword.operator.word.mnemonic.amx"
321
+ }
322
+ ]
323
+ },
324
+ "mnemonics-avx": {
325
+ "patterns": [
326
+ {
327
+ "match": "(?i)\\b(v((test|permil|maskmov)p[ds]|zero(all|upper)|(perm2|insert|extract|broadcast)f128|broadcasts[ds]))\\b",
328
+ "name": "keyword.operator.word.mnemonic.avx"
329
+ },
330
+ {
331
+ "match": "(?i)\\b(vaes((dec|enc)(last)?|imc|keygenassist)|vpclmulqdq)\\b",
332
+ "name": "keyword.operator.word.mnemonic.avx.promoted.aes"
333
+ },
334
+ {
335
+ "match": "(?i)\\b(v((cmp[ps]|u?comis)[ds]|pcmp([ei]str[im]|(eq|gt)[bdqw])))\\b",
336
+ "name": "keyword.operator.word.mnemonic.avx.promoted.comparison"
337
+ },
338
+ {
339
+ "match": "(?i)\\b(v(cvt(dq2pd|dq2ps|pd2ps|ps2pd|sd2ss|si2sd|si2ss|ss2sd|t?(pd2dq|ps2dq|sd2si|ss2si))))\\b",
340
+ "name": "keyword.operator.word.mnemonic.avx.promoted.conversion"
341
+ },
342
+ {
343
+ "match": "(?i)\\b(vh((add|sub)p[ds])|vph((add|sub)([dw]|sw)|minposuw))\\b",
344
+ "name": "keyword.operator.word.mnemonic.avx.promoted.horizontal-packed-arithmetic"
345
+ },
346
+ {
347
+ "match": "(?i)\\b(v((andn?|x?or)p[ds]))\\b",
348
+ "name": "keyword.operator.word.mnemonic.avx.promoted.logical"
349
+ },
350
+ {
351
+ "match": "(?i)\\b(v(mov(([ahl]|msk|nt|u)p[ds]|(hl|lh)ps|s([ds]|[hl]dup)|q)))\\b",
352
+ "name": "keyword.operator.word.mnemonic.avx.promoted.mov"
353
+ },
354
+ {
355
+ "match": "(?i)\\b(v((add|div|mul|sub|max|min|round|sqrt)[ps][ds]|(addsub|dp)p[ds]|(rcp|rsqrt)[ps]s))\\b",
356
+ "name": "keyword.operator.word.mnemonic.avx.promoted.packed-arithmetic"
357
+ },
358
+ {
359
+ "match": "(?i)\\b(v(pack[su]s(dw|wb)|punpck[hl](bw|dq|wd|qdq)|unpck[hl]p[ds]))\\b",
360
+ "name": "keyword.operator.word.mnemonic.avx.promoted.packed-conversion"
361
+ },
362
+ {
363
+ "match": "(?i)\\b(vp(shuf([bd]|[hl]w))|vshufp[ds])\\b",
364
+ "name": "keyword.operator.word.mnemonic.avx.promoted.packed-shuffle"
365
+ },
366
+ {
367
+ "match": "(?i)\\b(vp((abs|sign|(max|min)[su])[bdw]|(add|sub)([bdqw]|u?s[bw])|avg[bw]|extr[bdqw]|madd(wd|ubsw)|mul(hu?w|hrsw|l[dw]|u?dq)|sadbw))\\b",
368
+ "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.arithmetic"
369
+ },
370
+ {
371
+ "match": "(?i)\\b(vp(andn?|x?or))\\b",
372
+ "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.logical"
373
+ },
374
+ {
375
+ "match": "(?i)\\b(vpblend(vb|w))\\b",
376
+ "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.blending"
377
+ },
378
+ {
379
+ "match": "(?i)\\b(vpmov(mskb|[sz]x(b[dqw]|w[dq]|dq)))\\b",
380
+ "name": "keyword.operator.word.mnemonic.avx.promoted.supplemental.mov"
381
+ },
382
+ {
383
+ "match": "(?i)\\b(vp(insr[bdqw]|sll(dq|[dqw])|srl(dq)))\\b",
384
+ "name": "keyword.operator.word.mnemonic.avx.promoted.simd-integer"
385
+ },
386
+ {
387
+ "match": "(?i)\\b(vp(sra[dwq]|srl[dqw]))\\b",
388
+ "name": "keyword.operator.word.mnemonic.avx.promoted.shift-and-rotate"
389
+ },
390
+ {
391
+ "match": "(?i)\\b(vblendv?p[ds])\\b",
392
+ "name": "keyword.operator.word.mnemonic.avx.promoted.packed-blending"
393
+ },
394
+ {
395
+ "match": "(?i)\\b(vp(test|alignr))\\b",
396
+ "name": "keyword.operator.word.mnemonic.avx.promoted.packed-other"
397
+ },
398
+ {
399
+ "match": "(?i)\\b(vmov(d(dup|qa|qu)?))\\b",
400
+ "name": "keyword.operator.word.mnemonic.avx.promoted.simd-integer.mov"
401
+ },
402
+ {
403
+ "match": "(?i)\\b(v((extract|insert)ps|lddqu|(ld|st)mxcsr|mpsadbw))\\b",
404
+ "name": "keyword.operator.word.mnemonic.avx.promoted.other"
405
+ },
406
+ {
407
+ "match": "(?i)\\b(v(maskmovdqu|movntdqa?))\\b",
408
+ "name": "keyword.operator.word.mnemonic.avx.promoted.cacheability-control"
409
+ },
410
+ {
411
+ "match": "(?i)\\b(vcvt(ph2ps|ps2ph))\\b",
412
+ "name": "keyword.operator.word.mnemonic.16-bit-floating-point-conversion"
413
+ },
414
+ {
415
+ "match": "(?i)\\b(vfn?m((add|sub)(132|213|231)[ps][ds])|vfm((addsub|subadd)(132|213|231)p[ds]))\\b",
416
+ "name": "keyword.operator.word.mnemonic.fma"
417
+ }
418
+ ]
419
+ },
420
+ "mnemonics-avx2": {
421
+ "patterns": [
422
+ {
423
+ "match": "(?i)\\b(v((broadcast|extract|insert|perm2)i128|pmaskmov[dq]|perm([dsq]|p[sd])))\\b",
424
+ "name": "keyword.operator.word.mnemonic.avx2.promoted.simd"
425
+ },
426
+ {
427
+ "match": "(?i)\\b(vpbroadcast[bdqw])\\b",
428
+ "name": "keyword.operator.word.mnemonic.avx2.promoted.packed"
429
+ },
430
+ {
431
+ "match": "(?i)\\b(vp(blendd|s[lr]lv[dq]|sravd))\\b",
432
+ "name": "keyword.operator.word.mnemonic.avx2.blend"
433
+ },
434
+ {
435
+ "match": "(?i)\\b(vp?gather[dq][dq]|vgather([dq]|dq)p[ds])\\b",
436
+ "name": "keyword.operator.word.mnemonic.avx2.gather"
437
+ }
438
+ ]
439
+ },
440
+ "mnemonics-avx512": {
441
+ "patterns": [
442
+ {
443
+ "include": "#mnemonics-avx512f"
444
+ },
445
+ {
446
+ "include": "#mnemonics-avx512dq"
447
+ },
448
+ {
449
+ "include": "#mnemonics-avx512bw"
450
+ },
451
+ {
452
+ "include": "#mnemonics-avx512-opmask"
453
+ },
454
+ {
455
+ "include": "#mnemonics-avx512er"
456
+ },
457
+ {
458
+ "include": "#mnemonics-avx512pf"
459
+ },
460
+ {
461
+ "include": "#mnemonics-avx512fp16"
462
+ }
463
+ ]
464
+ },
465
+ "mnemonics-avx512-opmask": {
466
+ "patterns": [
467
+ {
468
+ "match": "(?i)\\bk(add|andn?|mov|not|or(test)?|shift[lr]|test|xn?or)[bdqw]\\b",
469
+ "name": "keyword.operator.word.mnemonic.avx512.opmask"
470
+ },
471
+ {
472
+ "match": "(?i)\\bkunpck(bw|wd|dq)\\b",
473
+ "name": "keyword.operator.word.mnemonic.avx512.opmask.unpack"
474
+ }
475
+ ]
476
+ },
477
+ "mnemonics-avx512bw": {
478
+ "patterns": [
479
+ {
480
+ "match": "(?i)\\bv(dbpsadbw|movdqu(8|16))\\b",
481
+ "name": "keyword.operator.word.mnemonic.avx512.bw.dbpsad"
482
+ },
483
+ {
484
+ "match": "(?i)\\bvp(blendm|cmpu?|movm2)[bw]\\b",
485
+ "name": "keyword.operator.word.mnemonic.avx512.bw.pblend"
486
+ },
487
+ {
488
+ "match": "(?i)\\bvperm(w|i2[bw])\\b",
489
+ "name": "keyword.operator.word.mnemonic.avx512.bw.perpmi2"
490
+ },
491
+ {
492
+ "match": "(?i)\\bvp(mov([bw]2m|u?swb))\\b",
493
+ "name": "keyword.operator.word.mnemonic.avx512.bw.pmov"
494
+ },
495
+ {
496
+ "match": "(?i)\\bvp(s(ll|ra|rl)vw|testn?m[bw])\\b",
497
+ "name": "keyword.operator.word.mnemonic.avx512.bw.psll"
498
+ },
499
+ {
500
+ "match": "(?i)\\bvp(broadcastm(b2q|w2d)|(conflict|lzcnt)[dq])\\b",
501
+ "name": "keyword.operator.word.mnemonic.avx512.bw.broadcast"
502
+ }
503
+ ]
504
+ },
505
+ "mnemonics-avx512dq": {
506
+ "patterns": [
507
+ {
508
+ "match": "(?i)\\bvcvt(t?p[ds]2u?qq|uqq2p[ds])\\b",
509
+ "name": "keyword.operator.word.mnemonic.avx512.dq.cvt"
510
+ },
511
+ {
512
+ "match": "(?i)\\bv((extract|insert)[fi]64x2|(fpclass|range|reduce)[ps][ds])\\b",
513
+ "name": "keyword.operator.word.mnemonic.avx512.dq.extract"
514
+ },
515
+ {
516
+ "match": "(?i)\\bvp(mov(m2[dq]|b2d|q2m)|mullq)\\b",
517
+ "name": "keyword.operator.word.mnemonic.avx512.dq.pmov"
518
+ }
519
+ ]
520
+ },
521
+ "mnemonics-avx512er": {
522
+ "patterns": [
523
+ {
524
+ "match": "(?i)\\bv(exp2|rcp28|rsqrt28)[ps][ds]\\b",
525
+ "name": "keyword.operator.word.mnemonic.avx512.er"
526
+ }
527
+ ]
528
+ },
529
+ "mnemonics-avx512f": {
530
+ "patterns": [
531
+ {
532
+ "match": "(?i)\\bv(align[dq]|(blendm|compress)p[ds])\\b",
533
+ "name": "keyword.operator.word.mnemonic.avx512.f.align"
534
+ },
535
+ {
536
+ "match": "(?i)\\bv(cvtt?[ps][ds]2u(dq|si))\\b",
537
+ "name": "keyword.operator.word.mnemonic.avx512.f.cvtt"
538
+ },
539
+ {
540
+ "match": "(?i)\\bv(cvt((q|ud)q2p|usi2s)[ds])\\b",
541
+ "name": "keyword.operator.word.mnemonic.avx512.f.cvt"
542
+ },
543
+ {
544
+ "match": "(?i)\\bv(expandp[ds]|extract[fi](32|64)x4|fixupimm[ps][ds])\\b",
545
+ "name": "keyword.operator.word.mnemonic.avx512.f.expand"
546
+ },
547
+ {
548
+ "match": "(?i)\\bv(get(exp|mant)[ps][ds]|insertf(32|64)x4|movdq[au](32|64))\\b",
549
+ "name": "keyword.operator.word.mnemonic.avx512.f.getexp"
550
+ },
551
+ {
552
+ "match": "(?i)\\bvp(blendm[dq]|cmpu?[dq]|compress[dq])\\b",
553
+ "name": "keyword.operator.word.mnemonic.avx512.f.pblend"
554
+ },
555
+ {
556
+ "match": "(?i)\\bvp(erm[it]2(d|q|p[ds])|expand[dq]|(max|min)[su]q|movu?s(q[bdw]|d[bw]))\\b",
557
+ "name": "keyword.operator.word.mnemonic.avx512.f.permi"
558
+ },
559
+ {
560
+ "match": "(?i)\\bvp(rolv?|rorr?|scatter[dq]|testn?m|terlog)[dq]\\b",
561
+ "name": "keyword.operator.word.mnemonic.avx512.f.prol"
562
+ },
563
+ {
564
+ "match": "(?i)\\bvpsravq\\b",
565
+ "name": "keyword.operator.word.mnemonic.avx512.f.sravq"
566
+ },
567
+ {
568
+ "match": "(?i)\\bv(rcp14|(rnd)?scale|rsqrt14)[ps][ds]\\b",
569
+ "name": "keyword.operator.word.mnemonic.avx512.f.rcp"
570
+ },
571
+ {
572
+ "match": "(?i)\\bv(scatter[dq]{2}|shuf[fi](32|64)x[24])\\b",
573
+ "name": "keyword.operator.word.mnemonic.avx512.f.scatter"
574
+ }
575
+ ]
576
+ },
577
+ "mnemonics-avx512fp16": {
578
+ "patterns": [
579
+ {
580
+ "match": "(?i)\\bv((add|cmp|div|fc?(madd|mul)c|fpclass|get(exp|mant)|mul|rcp|reduce|(rnd)?scale|r?sqrt|sub)[ps]h|u?comish)\\b",
581
+ "name": "keyword.operator.word.mnemonic.avx512.fp16.add"
582
+ },
583
+ {
584
+ "match": "(?i)\\bvcvt(u?([dq]q|w)|pd)2ph\\b",
585
+ "name": "keyword.operator.word.mnemonic.avx512.fp16.cvtx2ph"
586
+ },
587
+ {
588
+ "match": "(?i)\\bvcvtph2(u?([dq]q|w)|pd)\\b",
589
+ "name": "keyword.operator.word.mnemonic.avx512.fp16.cvtph2x"
590
+ },
591
+ {
592
+ "match": "(?i)\\bvcvt(ph2psx|ps2phx)\\b",
593
+ "name": "keyword.operator.word.mnemonic.avx512.fp16.cvtx"
594
+ },
595
+ {
596
+ "match": "(?i)\\bvcvt(s[dsi]|usi)2sh\\b",
597
+ "name": "keyword.operator.word.mnemonic.avx512.fp16.cvtx2sh"
598
+ },
599
+ {
600
+ "match": "(?i)\\bvcvtsh2(s[dsi]|usi)\\b",
601
+ "name": "keyword.operator.word.mnemonic.avx512.fp16.cvtsh2x"
602
+ },
603
+ {
604
+ "match": "(?i)\\bvcvtt(ph2(u?(dq|qq|w))|sh2u?si)\\b",
605
+ "name": "keyword.operator.word.mnemonic.avx512.fp16.cvttph2x"
606
+ },
607
+ {
608
+ "match": "(?i)\\bvfn?m((add|sub)(132|213|231))[ps]h\\b",
609
+ "name": "keyword.operator.word.mnemonic.avx512.fp16.fmadd"
610
+ },
611
+ {
612
+ "match": "(?i)\\bvfm(addsub|subadd)(132|213|231)ph\\b",
613
+ "name": "keyword.operator.word.mnemonic.avx512.fp16.fmaddsub"
614
+ },
615
+ {
616
+ "match": "(?i)\\bv((min|max)ph|mov(sh|w))\\b",
617
+ "name": "keyword.operator.word.mnemonic.avx512.fp16.max"
618
+ }
619
+ ]
620
+ },
621
+ "mnemonics-avx512pf": {
622
+ "patterns": [
623
+ {
624
+ "match": "(?i)\\bv(gather|scatter)pf[01][dq]p[ds]\\b",
625
+ "name": "keyword.operator.word.mnemonic.avx512.pf"
626
+ }
627
+ ]
628
+ },
629
+ "mnemonics-cet": {
630
+ "patterns": [
631
+ {
632
+ "match": "(?i)\\b((inc|save(prev)?|rstor|rd)ssp|wru?ss|(set|clr)ssbsy|endbr(32|64))\\b",
633
+ "name": "keyword.operator.word.mnemonic.cet"
634
+ },
635
+ {
636
+ "match": "(?i)\\bendbranch\\b",
637
+ "name": "keyword.operator.word.mnemonic.cet.misc"
638
+ }
639
+ ]
640
+ },
641
+ "mnemonics-esi": {
642
+ "patterns": [
643
+ {
644
+ "match": "(?i)\\benqcmds?\\b",
645
+ "name": "keyword.operator.word.mnemonic.esi"
646
+ }
647
+ ]
648
+ },
649
+ "mnemonics-fpu": {
650
+ "patterns": [
651
+ {
652
+ "match": "(?i)\\b(fcmov(n?([beu]|be)))\\b",
653
+ "name": "keyword.operator.word.mnemonic.fpu.data-transfer.mov"
654
+ },
655
+ {
656
+ "match": "(?i)\\b(f(i?(ld|stp?)|b(ld|stp)|xch))\\b",
657
+ "name": "keyword.operator.word.mnemonic.fpu.data-transfer.other"
658
+ },
659
+ {
660
+ "match": "(?i)\\b(f((add|div|mul|sub)p?|i(add|div|mul|sub)|(div|sub)rp?|i(div|sub)r))\\b",
661
+ "name": "keyword.operator.word.mnemonic.fpu.basic-arithmetic.basic"
662
+ },
663
+ {
664
+ "match": "(?i)\\b(f(prem1?|abs|chs|rndint|scale|sqrt|xtract))\\b",
665
+ "name": "keyword.operator.word.mnemonic.fpu.basic-arithmetic.other"
666
+ },
667
+ {
668
+ "match": "(?i)\\b(f(u?com[ip]?p?|icomp?|tst|xam))\\b",
669
+ "name": "keyword.operator.word.mnemonic.fpu.comparison"
670
+ },
671
+ {
672
+ "match": "(?i)\\b(f(sin|cos|sincos|pa?tan|2xm1|yl2x(p1)?))\\b",
673
+ "name": "keyword.operator.word.mnemonic.fpu.transcendental"
674
+ },
675
+ {
676
+ "match": "(?i)\\b(fld(1|z|pi|l2[et]|l[ng]2))\\b",
677
+ "name": "keyword.operator.word.mnemonic.fpu.load-constants"
678
+ },
679
+ {
680
+ "match": "(?i)\\b(f((inc|dec)stp|free|n?(init|clex|st[cs]w|stenv|save)|ld(cw|env)|rstor|nop)|f?wait)\\b",
681
+ "name": "keyword.operator.word.mnemonic.fpu.control-management"
682
+ },
683
+ {
684
+ "match": "(?i)\\b(fx(save|rstor)(64)?)\\b",
685
+ "name": "keyword.operator.word.mnemonic.fpu.state-management"
686
+ }
687
+ ]
688
+ },
689
+ "mnemonics-future-intel": {
690
+ "patterns": [
691
+ {
692
+ "include": "#mnemonics-future-intel-apx"
693
+ }
694
+ ]
695
+ },
696
+ "mnemonics-future-intel-apx": {
697
+ "patterns": [
698
+ {
699
+ "match": "(?i)\\b(c(cmp|test)(n?[bl]e?|[ft]|n?[osz]))\\b",
700
+ "name": "keyword.operator.word.mnemonic.apx.ccmp_test"
701
+ },
702
+ {
703
+ "match": "(?i)\\b(cfcmovn?([bl]e?|[opsz]))\\b",
704
+ "name": "keyword.operator.word.mnemonic.apx.cfcmov"
705
+ },
706
+ {
707
+ "match": "(?i)\\b(cmpn?([bl]e?|[opsz])xadd)\\b",
708
+ "name": "keyword.operator.word.mnemonic.apx.cmpxadd"
709
+ },
710
+ {
711
+ "match": "(?i)\\b(jmpabs|(push|pop)2p?)\\b",
712
+ "name": "keyword.operator.word.mnemonic.apx.other"
713
+ }
714
+ ]
715
+ },
716
+ "mnemonics-general-purpose": {
717
+ "patterns": [
718
+ {
719
+ "match": "(?i)\\b(?:mov(?:[sz]x)?|cmov(?:n?[abceglopsz]|n?[abgl]e|p[eo]))\\b",
720
+ "name": "keyword.operator.word.mnemonic.general-purpose.data-transfer.mov"
721
+ },
722
+ {
723
+ "match": "(?i)\\b(xchg|bswap|xadd|cmpxchg(8b)?)\\b",
724
+ "name": "keyword.operator.word.mnemonic.general-purpose.data-transfer.xchg"
725
+ },
726
+ {
727
+ "match": "(?i)\\b((push|pop)(ad?)?|cwde?|cdq|cbw)\\b",
728
+ "name": "keyword.operator.word.mnemonic.general-purpose.data-transfer.other"
729
+ },
730
+ {
731
+ "match": "(?i)\\b(adcx?|adox|add|sub|sbb|i?mul|i?div|inc|dec|neg|cmp)\\b",
732
+ "name": "keyword.operator.word.mnemonic.general-purpose.binary-arithmetic"
733
+ },
734
+ {
735
+ "match": "(?i)\\b(daa|das|aaa|aas|aam|aad)\\b",
736
+ "name": "keyword.operator.word.mnemonic.general-purpose.decimal-arithmetic"
737
+ },
738
+ {
739
+ "match": "(?i)\\b(and|x?or|not)\\b",
740
+ "name": "keyword.operator.word.mnemonic.general-purpose.logical"
741
+ },
742
+ {
743
+ "match": "(?i)\\b(s[ah][rl]|sh[rl]d|r[co][rl])\\b",
744
+ "name": "keyword.operator.word.mnemonic.general-purpose.rotate"
745
+ },
746
+ {
747
+ "match": "(?i)\\b(set(n?[abceglopsz]|n?[abgl]e|p[eo]))\\b",
748
+ "name": "keyword.operator.word.mnemonic.general-purpose.bit-and-byte.set"
749
+ },
750
+ {
751
+ "match": "(?i)\\b(bt[crs]?|bs[fr]|test|crc32|popcnt)\\b",
752
+ "name": "keyword.operator.word.mnemonic.general-purpose.bit-and-byte.other"
753
+ },
754
+ {
755
+ "match": "(?i)\\b(jmp|jn?[abceglopsz]|jn?[abgl]e|jp[eo]|j[er]?cxz)\\b",
756
+ "name": "keyword.operator.word.mnemonic.general-purpose.control-transfer.jmp"
757
+ },
758
+ {
759
+ "match": "(?i)\\b(loop(n?[ez])?|call|ret|iret[dq]?|into?|bound|enter|leave)\\b",
760
+ "name": "keyword.operator.word.mnemonic.general-purpose.control-transfer.other"
761
+ },
762
+ {
763
+ "match": "(?i)\\b((mov|cmp|sca|lod|sto)(s[bdw]?)|rep(n?[ez])?)\\b",
764
+ "name": "keyword.operator.word.mnemonic.general-purpose.strings"
765
+ },
766
+ {
767
+ "match": "(?i)\\b((in|out)(s[bdw]?)?)\\b",
768
+ "name": "keyword.operator.word.mnemonic.general-purpose.io"
769
+ },
770
+ {
771
+ "match": "(?i)\\b((st|cl)[cdi]|cmc|[ls]ahf|(push|pop)f[dq]?)\\b",
772
+ "name": "keyword.operator.word.mnemonic.general-purpose.flag-control"
773
+ },
774
+ {
775
+ "match": "(?i)\\b(l[defgs]s)\\b",
776
+ "name": "keyword.operator.word.mnemonic.general-purpose.segment-registers"
777
+ },
778
+ {
779
+ "match": "(?i)\\b(lea|nop|ud2?|xlatb?|cpuid|movbe)\\b",
780
+ "name": "keyword.operator.word.mnemonic.general-purpose.misc"
781
+ },
782
+ {
783
+ "match": "(?i)\\b(cl(flush(opt)?|demote|wb)|pcommit)\\b",
784
+ "name": "keyword.operator.word.mnemonic.general-purpose.cache-control"
785
+ },
786
+ {
787
+ "match": "(?i)\\b(rdrand|rdseed)\\b",
788
+ "name": "keyword.operator.word.mnemonic.general-purpose.rng"
789
+ },
790
+ {
791
+ "match": "(?i)\\b(andn|bextr|bls(i|r|msk)|bzhi|pdep|pext|[lt]zcnt|(mul|ror|sar|shl|shr)x)\\b",
792
+ "name": "keyword.operator.word.mnemonic.general-purpose.bmi"
793
+ }
794
+ ]
795
+ },
796
+ "mnemonics-intel-isa-keylocker": {
797
+ "patterns": [
798
+ {
799
+ "match": "(?i)\\b(aes(enc|dec)(wide)?(128|256)kl|encodekey(128|256)|loadiwkey)\\b",
800
+ "name": "keyword.operator.word.mnemonic.keylocker"
801
+ }
802
+ ]
803
+ },
804
+ "mnemonics-intel-isa-xeon-phi": {
805
+ "patterns": [
806
+ {
807
+ "match": "(?i)\\bv(4fn?(madd)[ps]s|p4dpwssds?)\\b",
808
+ "name": "keyword.operator.word.mnemonic.xeon-phi"
809
+ }
810
+ ]
811
+ },
812
+ "mnemonics-intel-manual-listing": {
813
+ "patterns": [
814
+ {
815
+ "match": "(?i)\\bcvtt?pd1pi\\b",
816
+ "name": "keyword.operator.word.mnemonic.other.c"
817
+ },
818
+ {
819
+ "match": "(?i)\\bv?gf2p8(affine(inv)?q|mul)b\\b",
820
+ "name": "keyword.operator.word.mnemonic.other.g"
821
+ },
822
+ {
823
+ "match": "(?i)\\bhreset\\b",
824
+ "name": "keyword.operator.word.mnemonic.other.h"
825
+ },
826
+ {
827
+ "match": "(?i)\\bincssp[dq]\\b",
828
+ "name": "keyword.operator.word.mnemonic.other.i"
829
+ },
830
+ {
831
+ "match": "(?i)\\bmovdir(i|64b)\\b",
832
+ "name": "keyword.operator.word.mnemonic.other.m"
833
+ },
834
+ {
835
+ "match": "(?i)\\bp((abs|(max|min)[su]?|mull|sra)q|config|twrite)\\b",
836
+ "name": "keyword.operator.word.mnemonic.other.p"
837
+ },
838
+ {
839
+ "match": "(?i)\\brd(pid|ssp[dq])\\b",
840
+ "name": "keyword.operator.word.mnemonic.other.r"
841
+ },
842
+ {
843
+ "match": "(?i)\\bserialize\\b",
844
+ "name": "keyword.operator.word.mnemonic.other.s"
845
+ },
846
+ {
847
+ "match": "(?i)\\btpause\\b",
848
+ "name": "keyword.operator.word.mnemonic.other.t"
849
+ },
850
+ {
851
+ "match": "(?i)\\bu(monitor|mwait)\\b",
852
+ "name": "keyword.operator.word.mnemonic.other.u"
853
+ },
854
+ {
855
+ "match": "(?i)\\bvbroadcast[fi](32x[248]|64x[24])\\b",
856
+ "name": "keyword.operator.word.mnemonic.other.vb"
857
+ },
858
+ {
859
+ "match": "(?i)\\bv(compressw|cvtne2?ps2bf16)\\b",
860
+ "name": "keyword.operator.word.mnemonic.other.vc"
861
+ },
862
+ {
863
+ "match": "(?i)\\bvdpbf16ps\\b",
864
+ "name": "keyword.operator.word.mnemonic.other.vd"
865
+ },
866
+ {
867
+ "match": "(?i)\\bvextract[fi]32x8\\b",
868
+ "name": "keyword.operator.word.mnemonic.other.ve"
869
+ },
870
+ {
871
+ "match": "(?i)\\bv(insert([fi]32x8|i(32|64)x4))\\b",
872
+ "name": "keyword.operator.word.mnemonic.other.vi"
873
+ },
874
+ {
875
+ "match": "(?i)\\bv(maskmov|(max|min)sh)\\b",
876
+ "name": "keyword.operator.word.mnemonic.other.vm"
877
+ },
878
+ {
879
+ "match": "(?i)\\bvp((2intersect|andn?)[dq]|absq)\\b",
880
+ "name": "keyword.operator.word.mnemonic.other.vpa"
881
+ },
882
+ {
883
+ "match": "(?i)\\bvpbroadcasti32x4\\b",
884
+ "name": "keyword.operator.word.mnemonic.other.vpb"
885
+ },
886
+ {
887
+ "match": "(?i)\\bvpcompress[bw]\\b",
888
+ "name": "keyword.operator.word.mnemonic.other.vpc"
889
+ },
890
+ {
891
+ "match": "(?i)\\bvp(dp(bu|ws)sds?)\\b",
892
+ "name": "keyword.operator.word.mnemonic.other.vpd"
893
+ },
894
+ {
895
+ "match": "(?i)\\b(vperm(b|t2[bw])|vp(expand[bw]|extrtd))\\b",
896
+ "name": "keyword.operator.word.mnemonic.other.vpe"
897
+ },
898
+ {
899
+ "match": "(?i)\\bvp(madd52[hl]uq|mov(d(2m|[bw])|q[bdw]|wb)|mpov[bdqw]2m|multishiftqb)\\b",
900
+ "name": "keyword.operator.word.mnemonic.other.vpm"
901
+ },
902
+ {
903
+ "match": "(?i)\\b(vpopcnt[bdqw]|vpor[dq])\\b",
904
+ "name": "keyword.operator.word.mnemonic.other.vpo"
905
+ },
906
+ {
907
+ "match": "(?i)\\bvprorv[dq]\\b",
908
+ "name": "keyword.operator.word.mnemonic.other.vpr"
909
+ },
910
+ {
911
+ "match": "(?i)\\bvp(sh[lr]dv?[dqw]|shufbitqmb|shufps)\\b",
912
+ "name": "keyword.operator.word.mnemonic.other.vps"
913
+ },
914
+ {
915
+ "match": "(?i)\\bvpternlog[dq]\\b",
916
+ "name": "keyword.operator.word.mnemonic.other.vpt"
917
+ },
918
+ {
919
+ "match": "(?i)\\bvpxor[dq]\\b",
920
+ "name": "keyword.operator.word.mnemonic.other.vpx"
921
+ },
922
+ {
923
+ "match": "(?i)\\bv(scalef[ps][dhs]|scatter[dq]p[ds])\\b",
924
+ "name": "keyword.operator.word.mnemonic.other.vs"
925
+ },
926
+ {
927
+ "match": "(?i)\\b(wbnoinvd|wru?ss[dq])\\b",
928
+ "name": "keyword.operator.word.mnemonic.other.w"
929
+ }
930
+ ]
931
+ },
932
+ "mnemonics-invalid": {
933
+ "patterns": [
934
+ {
935
+ "include": "#mnemonics-invalid-amd-sse5"
936
+ }
937
+ ]
938
+ },
939
+ "mnemonics-invalid-amd-sse5": {
940
+ "patterns": [
941
+ {
942
+ "match": "(?i)\\b(com[ps][ds]|pcomu?[bdqw])\\b",
943
+ "name": "invalid.keyword.operator.word.mnemonic.sse5.comparison"
944
+ },
945
+ {
946
+ "match": "(?i)\\b(cvtp(h2ps|s2ph)|frcz[ps][ds])\\b",
947
+ "name": "invalid.keyword.operator.word.mnemonic.sse5.conversion"
948
+ },
949
+ {
950
+ "match": "(?i)\\b(fn?m((add|sub)[ps][ds])|ph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd))|pma(css?(d(d|q[hl])|w[dw])|dcss?wd))\\b",
951
+ "name": "invalid.keyword.operator.word.mnemonic.sse5.packed-arithmetic"
952
+ },
953
+ {
954
+ "match": "(?i)\\b(pcmov|permp[ds]|pperm|prot[bdqw]|psh[al][bdqw])\\b",
955
+ "name": "invalid.keyword.operator.word.mnemonic.sse5.simd-integer"
956
+ }
957
+ ]
958
+ },
959
+ "mnemonics-mmx": {
960
+ "patterns": [
961
+ {
962
+ "match": "(?i)\\b(mov[dq])\\b",
963
+ "name": "keyword.operator.word.mnemonic.mmx.data-transfer"
964
+ },
965
+ {
966
+ "match": "(?i)\\b(pack(ssdw|[su]swb)|punpck[hl](bw|dq|wd))\\b",
967
+ "name": "keyword.operator.word.mnemonic.mmx.conversion"
968
+ },
969
+ {
970
+ "match": "(?i)\\b(p(((add|sub)(d|(u?s)?[bw]))|maddwd|mul[lh]w))\\b",
971
+ "name": "keyword.operator.word.mnemonic.mmx.packed-arithmetic"
972
+ },
973
+ {
974
+ "match": "(?i)\\b(pcmp((eq|gt)[bdw]))\\b",
975
+ "name": "keyword.operator.word.mnemonic.mmx.comparison"
976
+ },
977
+ {
978
+ "match": "(?i)\\b(pandn?|px?or)\\b",
979
+ "name": "keyword.operator.word.mnemonic.mmx.logical"
980
+ },
981
+ {
982
+ "match": "(?i)\\b(ps([rl]l[dwq]|raw|rad))\\b",
983
+ "name": "keyword.operator.word.mnemonic.mmx.shift-and-rotate"
984
+ },
985
+ {
986
+ "match": "(?i)\\b(emms)\\b",
987
+ "name": "keyword.operator.word.mnemonic.mmx.state-management"
988
+ }
989
+ ]
990
+ },
991
+ "mnemonics-mpx": {
992
+ "patterns": [
993
+ {
994
+ "match": "(?i)\\b(bnd(mk|c[lnu]|mov|ldx|stx))\\b",
995
+ "name": "keyword.operator.word.mnemonic.mpx"
996
+ }
997
+ ]
998
+ },
999
+ "mnemonics-pseudo-ops": {
1000
+ "patterns": [
1001
+ {
1002
+ "match": "(?i)\\b(cmp(n?(eq|lt|le)|(un)?ord)[ps][ds])\\b",
1003
+ "name": "keyword.operator.word.pseudo-mnemonic.sse2.compare"
1004
+ },
1005
+ {
1006
+ "match": "(?i)\\b(v?pclmul([hl]q[hl]q|[hl]qh)dq)\\b",
1007
+ "name": "keyword.operator.word.pseudo-mnemonic.avx.promoted.aes"
1008
+ },
1009
+ {
1010
+ "match": "(?i)\\b(vcmp(eq(_(os|uq|us))?|neq(_(oq|os|us))?|[gl][et](_oq)?|n[gl][et](_uq)?|(un)?ord(_s)?|false(_os)?|true(_us)?)[ps][ds])\\b",
1011
+ "name": "keyword.operator.word.pseudo-mnemonic.avx.promoted.comparison"
1012
+ },
1013
+ {
1014
+ "match": "(?i)\\bvp(cmpn?(eq|le|lt))\\b",
1015
+ "name": "keyword.operator.word.pseudo-mnemonic.avx512.compare"
1016
+ },
1017
+ {
1018
+ "match": "(?i)\\b(vpcom(n?eq|[gl][et]|false|true)(b|uw))\\b",
1019
+ "name": "keyword.operator.word.pseudo-mnemonic.supplemental.amd.xop.simd"
1020
+ }
1021
+ ]
1022
+ },
1023
+ "mnemonics-sgx": {
1024
+ "patterns": [
1025
+ {
1026
+ "match": "(?i)\\bencl[su]\\b",
1027
+ "name": "keyword.operator.word.mnemonic.sgx"
1028
+ },
1029
+ {
1030
+ "match": "(?i)\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\b",
1031
+ "name": "support.constant.sgx1.supervisor"
1032
+ },
1033
+ {
1034
+ "match": "(?i)\\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\\b",
1035
+ "name": "support.constant.sgx1.supervisor"
1036
+ },
1037
+ {
1038
+ "match": "(?i)\\be(enter|exit|getkey|report|resume)\\b",
1039
+ "name": "support.constant.sgx1.user"
1040
+ },
1041
+ {
1042
+ "match": "(?i)\\be(aug|mod(pr|t))\\b",
1043
+ "name": "support.constant.sgx2.supervisor"
1044
+ },
1045
+ {
1046
+ "match": "(?i)\\be(accept(copy)?|modpe)\\b",
1047
+ "name": "support.constant.sgx2.user"
1048
+ }
1049
+ ]
1050
+ },
1051
+ "mnemonics-sha": {
1052
+ "patterns": [
1053
+ {
1054
+ "match": "(?i)\\b(sha(1rnds4|256rnds2|1nexte|(1|256)msg[12]))\\b",
1055
+ "name": "keyword.operator.word.mnemonic.sha"
1056
+ }
1057
+ ]
1058
+ },
1059
+ "mnemonics-smx": {
1060
+ "patterns": [
1061
+ {
1062
+ "match": "(?i)\\b(getsec)\\b",
1063
+ "name": "keyword.operator.word.mnemonic.smx.getsec"
1064
+ },
1065
+ {
1066
+ "match": "(?i)\\b(capabilities|enteraccs|exitac|senter|sexit|parameters|smctrl|wakeup)\\b",
1067
+ "name": "support.constant.smx"
1068
+ }
1069
+ ]
1070
+ },
1071
+ "mnemonics-sse": {
1072
+ "patterns": [
1073
+ {
1074
+ "match": "(?i)\\b(mov(([ahlu]|hl|lh|msk)ps|ss))\\b",
1075
+ "name": "keyword.operator.word.mnemonic.sse.data-transfer"
1076
+ },
1077
+ {
1078
+ "match": "(?i)\\b((add|div|max|min|mul|rcp|r?sqrt|sub)[ps]s)\\b",
1079
+ "name": "keyword.operator.word.mnemonic.sse.packed-arithmetic"
1080
+ },
1081
+ {
1082
+ "match": "(?i)\\b(cmp[ps]s|u?comiss)\\b",
1083
+ "name": "keyword.operator.word.mnemonic.sse.comparison"
1084
+ },
1085
+ {
1086
+ "match": "(?i)\\b((andn?|x?or)ps)\\b",
1087
+ "name": "keyword.operator.word.mnemonic.sse.logical"
1088
+ },
1089
+ {
1090
+ "match": "(?i)\\b((shuf|unpck[hl])ps)\\b",
1091
+ "name": "keyword.operator.word.mnemonic.sse.shuffle-and-unpack"
1092
+ },
1093
+ {
1094
+ "match": "(?i)\\b(cvt(pi2ps|si2ss|ps2pi|tps2pi|ss2si|tss2si))\\b",
1095
+ "name": "keyword.operator.word.mnemonic.sse.conversion"
1096
+ },
1097
+ {
1098
+ "match": "(?i)\\b((ld|st)mxcsr)\\b",
1099
+ "name": "keyword.operator.word.mnemonic.sse.state-management"
1100
+ },
1101
+ {
1102
+ "match": "(?i)\\b(p(avg[bw]|extrw|insrw|(max|min)(sw|ub)|sadbw|shufw|mulhuw|movmskb))\\b",
1103
+ "name": "keyword.operator.word.mnemonic.sse.simd-integer"
1104
+ },
1105
+ {
1106
+ "match": "(?i)\\b(maskmovq|movntps|sfence)\\b",
1107
+ "name": "keyword.operator.word.mnemonic.sse.cacheability-control"
1108
+ },
1109
+ {
1110
+ "match": "(?i)\\b(prefetch(nta|t[0-2]|w(t1)?))\\b",
1111
+ "name": "keyword.operator.word.mnemonic.sse.prefetch"
1112
+ }
1113
+ ]
1114
+ },
1115
+ "mnemonics-sse2": {
1116
+ "patterns": [
1117
+ {
1118
+ "match": "(?i)\\b(mov([auhl]|msk)pd)\\b",
1119
+ "name": "keyword.operator.word.mnemonic.sse2.data-transfer"
1120
+ },
1121
+ {
1122
+ "match": "(?i)\\b((add|div|max|min|mul|sub|sqrt)[ps]d)\\b",
1123
+ "name": "keyword.operator.word.mnemonic.sse2.packed-arithmetic"
1124
+ },
1125
+ {
1126
+ "match": "(?i)\\b((andn?|x?or)pd)\\b",
1127
+ "name": "keyword.operator.word.mnemonic.sse2.logical"
1128
+ },
1129
+ {
1130
+ "match": "(?i)\\b((cmpp|u?comis)d)\\b",
1131
+ "name": "keyword.operator.word.mnemonic.sse2.compare"
1132
+ },
1133
+ {
1134
+ "match": "(?i)\\b((shuf|unpck[hl])pd)\\b",
1135
+ "name": "keyword.operator.word.mnemonic.sse2.shuffle-and-unpack"
1136
+ },
1137
+ {
1138
+ "match": "(?i)\\b(cvt(dq2pd|pi2pd|ps2pd|pd2ps|si2sd|sd2ss|ss2sd|t?(pd2dq|pd2pi|sd2si)))\\b",
1139
+ "name": "keyword.operator.word.mnemonic.sse2.conversion"
1140
+ },
1141
+ {
1142
+ "match": "(?i)\\b(cvt(dq2ps|ps2dq|tps2dq))\\b",
1143
+ "name": "keyword.operator.word.mnemonic.sse2.packed-floating-point"
1144
+ },
1145
+ {
1146
+ "match": "(?i)\\b(mov(dq[au]|q2dq|dq2q))\\b",
1147
+ "name": "keyword.operator.word.mnemonic.sse2.simd-integer.mov"
1148
+ },
1149
+ {
1150
+ "match": "(?i)\\b(p((add|sub|(s[lr]l|mulu|unpck[hl]q)d)q|shuf(d|[hl]w)))\\b",
1151
+ "name": "keyword.operator.word.mnemonic.sse2.simd-integer.other"
1152
+ },
1153
+ {
1154
+ "match": "(?i)\\b([lm]fence|pause|maskmovdqu|movnt(dq|i|pd))\\b",
1155
+ "name": "keyword.operator.word.mnemonic.sse2.cacheability-control"
1156
+ }
1157
+ ]
1158
+ },
1159
+ "mnemonics-sse3": {
1160
+ "patterns": [
1161
+ {
1162
+ "match": "(?i)\\b(fisttp|lddqu|(addsub|h(add|sub))p[sd]|mov(sh|sl|d)dup|monitor|mwait)\\b",
1163
+ "name": "keyword.operator.word.mnemonic.sse3"
1164
+ },
1165
+ {
1166
+ "match": "(?i)\\b(ph(add|sub)(s?w|d))\\b",
1167
+ "name": "keyword.operator.word.mnemonic.sse3.supplimental.horizontal-packed-arithmetic"
1168
+ },
1169
+ {
1170
+ "match": "(?i)\\b(p((abs|sign)[bdw]|maddubsw|mulhrsw|shufb|alignr))\\b",
1171
+ "name": "keyword.operator.word.mnemonic.sse3.supplimental.other"
1172
+ }
1173
+ ]
1174
+ },
1175
+ "mnemonics-sse4": {
1176
+ "patterns": [
1177
+ {
1178
+ "match": "(?i)\\b(pmul(ld|dq)|dpp[ds])\\b",
1179
+ "name": "keyword.operator.word.mnemonic.sse4.1.arithmetic"
1180
+ },
1181
+ {
1182
+ "match": "(?i)\\b(movntdqa)\\b",
1183
+ "name": "keyword.operator.word.mnemonic.sse4.1.load-hint"
1184
+ },
1185
+ {
1186
+ "match": "(?i)\\b(blendv?p[ds]|pblend(vb|w))\\b",
1187
+ "name": "keyword.operator.word.mnemonic.sse4.1.packed-blending"
1188
+ },
1189
+ {
1190
+ "match": "(?i)\\b(p(min|max)(u[dw]|s[bd]))\\b",
1191
+ "name": "keyword.operator.word.mnemonic.sse4.1.packed-integer"
1192
+ },
1193
+ {
1194
+ "match": "(?i)\\b(round[ps][sd])\\b",
1195
+ "name": "keyword.operator.word.mnemonic.sse4.1.packed-floating-point"
1196
+ },
1197
+ {
1198
+ "match": "(?i)\\b((extract|insert)ps|p((ins|ext)(r[bdq])))\\b",
1199
+ "name": "keyword.operator.word.mnemonic.sse4.1.insertion-and-extraction"
1200
+ },
1201
+ {
1202
+ "match": "(?i)\\b(pmov([sz]x(b[dqw]|dq|wd|wq)))\\b",
1203
+ "name": "keyword.operator.word.mnemonic.sse4.1.conversion"
1204
+ },
1205
+ {
1206
+ "match": "(?i)\\b(mpsadbw|phminposuw|ptest|pcmpeqq|packusdw)\\b",
1207
+ "name": "keyword.operator.word.mnemonic.sse4.1.other"
1208
+ },
1209
+ {
1210
+ "match": "(?i)\\b(pcmp([ei]str[im]|gtq))\\b",
1211
+ "name": "keyword.operator.word.mnemonic.sse4.2"
1212
+ }
1213
+ ]
1214
+ },
1215
+ "mnemonics-supplemental-amd": {
1216
+ "patterns": [
1217
+ {
1218
+ "match": "(?i)\\b(bl([cs](fill|ic?|msk)|cs)|t1mskc|tzmsk)\\b",
1219
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.general-purpose"
1220
+ },
1221
+ {
1222
+ "match": "(?i)\\b(clgi|int3|invlpga|iretw|skinit|stgi|vm(load|mcall|run|save)|monitorx|mwaitx)\\b",
1223
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.system"
1224
+ },
1225
+ {
1226
+ "match": "(?i)\\b([ls]lwpcb|lwp(ins|val))\\b",
1227
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.profiling"
1228
+ },
1229
+ {
1230
+ "match": "(?i)\\b(movnts[ds])\\b",
1231
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.memory-management"
1232
+ },
1233
+ {
1234
+ "match": "(?i)\\b(prefetch|clzero)\\b",
1235
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.cache-management"
1236
+ },
1237
+ {
1238
+ "match": "(?i)\\b((extr|insert)q)\\b",
1239
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.sse4.a"
1240
+ },
1241
+ {
1242
+ "match": "(?i)\\b(vfn?m((add|sub)[ps][ds])|vfm((addsub|subadd)p[ds]))\\b",
1243
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.fma4"
1244
+ },
1245
+ {
1246
+ "match": "(?i)\\b(vp(cmov|(comu?|rot|sh[al])[bdqw]|mac(s?s(d(d|q[hl])|w[dw]))|madcss?wd|perm))\\b",
1247
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.xop.simd"
1248
+ },
1249
+ {
1250
+ "match": "(?i)\\b(vph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd)))\\b",
1251
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.xop.simd-horizontal"
1252
+ },
1253
+ {
1254
+ "match": "(?i)\\b(vfrcz[ps][ds]|vpermil2p[ds])\\b",
1255
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.xop.other"
1256
+ },
1257
+ {
1258
+ "match": "(?i)\\b(femms)\\b",
1259
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.3dnow"
1260
+ },
1261
+ {
1262
+ "match": "(?i)\\b(p(avgusb|(f2i|i2f)[dw]|mulhrw|swapd)|pf((p?n)?acc|add|max|min|mul|rcp(it[12])?|rsqit1|rsqrt|subr?))\\b",
1263
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.3dnow.simd"
1264
+ },
1265
+ {
1266
+ "match": "(?i)\\b(pfcmp(eq|ge|gt))\\b",
1267
+ "name": "keyword.operator.word.mnemonic.supplemental.amd.3dnow.comparison"
1268
+ }
1269
+ ]
1270
+ },
1271
+ "mnemonics-supplemental-cyrix": {
1272
+ "patterns": [
1273
+ {
1274
+ "match": "(?i)\\b((sv|rs)dc|(wr|rd)shr|paddsiw)\\b",
1275
+ "name": "keyword.operator.word.mnemonic.supplemental.cyrix"
1276
+ }
1277
+ ]
1278
+ },
1279
+ "mnemonics-supplemental-via": {
1280
+ "patterns": [
1281
+ {
1282
+ "match": "(?i)\\b(montmul)\\b",
1283
+ "name": "keyword.operator.word.mnemonic.supplemental.via"
1284
+ },
1285
+ {
1286
+ "match": "(?i)\\b(x(store(rng)?|crypt(ecb|cbc|ctr|cfb|ofb)|sha(1|256)))\\b",
1287
+ "name": "keyword.operator.word.mnemonic.supplemental.via.padlock"
1288
+ }
1289
+ ]
1290
+ },
1291
+ "mnemonics-system": {
1292
+ "patterns": [
1293
+ {
1294
+ "match": "(?i)\\b((cl|st)ac|[ls]([gli]dt|tr|msw)|clts|arpl|lar|lsl|ver[rw]|inv(d|lpg|pcid)|wbinvd)\\b",
1295
+ "name": "keyword.operator.word.mnemonic.system"
1296
+ },
1297
+ {
1298
+ "match": "(?i)\\b(lock|hlt|rsm|(rd|wr)(msr|pkru|[fg]sbase)|rd(pmc|tscp?)|sys(enter|exit))\\b",
1299
+ "name": "keyword.operator.word.mnemonic.system"
1300
+ },
1301
+ {
1302
+ "match": "(?i)\\b(x((save(c|opt|s)?|rstors?)(64)?|[gs]etbv))\\b",
1303
+ "name": "keyword.operator.word.mnemonic.system"
1304
+ }
1305
+ ]
1306
+ },
1307
+ "mnemonics-tsx": {
1308
+ "patterns": [
1309
+ {
1310
+ "match": "(?i)\\b(x(abort|begin|end|test|(res|sus)ldtrk))\\b",
1311
+ "name": "keyword.operator.word.mnemonic.tsx"
1312
+ }
1313
+ ]
1314
+ },
1315
+ "mnemonics-uirq": {
1316
+ "patterns": [
1317
+ {
1318
+ "match": "(?i)\\b((cl|st|test)ui|senduipi|uiret)\\b",
1319
+ "name": "keyword.operator.word.mnemonic.uirq"
1320
+ }
1321
+ ]
1322
+ },
1323
+ "mnemonics-undocumented": {
1324
+ "patterns": [
1325
+ {
1326
+ "match": "(?i)\\b(ret[nf]|icebp|int1|int03|smi|ud1)\\b",
1327
+ "name": "keyword.operator.word.mnemonic.undocumented"
1328
+ }
1329
+ ]
1330
+ },
1331
+ "mnemonics-vmx": {
1332
+ "patterns": [
1333
+ {
1334
+ "match": "(?i)\\b(vm(ptr(ld|st)|clear|read|write|launch|resume|xo(ff|n)|call|func)|inv(ept|vpid))\\b",
1335
+ "name": "keyword.operator.word.mnemonic.vmx"
1336
+ }
1337
+ ]
1338
+ },
1339
+ "preprocessor": {
1340
+ "patterns": [
1341
+ {
1342
+ "begin": "^\\s*[#%]\\s*(error|warning)\\b",
1343
+ "captures": {
1344
+ "1": {
1345
+ "name": "keyword.control.import.error.c"
1346
+ }
1347
+ },
1348
+ "end": "$",
1349
+ "name": "meta.preprocessor.diagnostic.c",
1350
+ "patterns": [
1351
+ {
1352
+ "match": "(?>\\\\\\s*\\n)",
1353
+ "name": "punctuation.separator.continuation.c"
1354
+ }
1355
+ ]
1356
+ },
1357
+ {
1358
+ "begin": "^\\s*[#%]\\s*(include|import)\\b\\s+",
1359
+ "captures": {
1360
+ "1": {
1361
+ "name": "keyword.control.import.include.c"
1362
+ }
1363
+ },
1364
+ "end": "(?=(?://|/\\*))|$",
1365
+ "name": "meta.preprocessor.c.include",
1366
+ "patterns": [
1367
+ {
1368
+ "match": "(?>\\\\\\s*\\n)",
1369
+ "name": "punctuation.separator.continuation.c"
1370
+ },
1371
+ {
1372
+ "begin": "\"",
1373
+ "beginCaptures": {
1374
+ "0": {
1375
+ "name": "punctuation.definition.string.begin.c"
1376
+ }
1377
+ },
1378
+ "end": "\"",
1379
+ "endCaptures": {
1380
+ "0": {
1381
+ "name": "punctuation.definition.string.end.c"
1382
+ }
1383
+ },
1384
+ "name": "string.quoted.double.include.c"
1385
+ },
1386
+ {
1387
+ "begin": "<",
1388
+ "beginCaptures": {
1389
+ "0": {
1390
+ "name": "punctuation.definition.string.begin.c"
1391
+ }
1392
+ },
1393
+ "end": ">",
1394
+ "endCaptures": {
1395
+ "0": {
1396
+ "name": "punctuation.definition.string.end.c"
1397
+ }
1398
+ },
1399
+ "name": "string.quoted.other.lt-gt.include.c"
1400
+ }
1401
+ ]
1402
+ },
1403
+ {
1404
+ "begin": "^\\s*[%#]\\s*(i?x?define|defined|elif(def)?|else|i[fs]n?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|line|(i|end|uni?)?macro|pragma|endif)\\b",
1405
+ "captures": {
1406
+ "1": {
1407
+ "name": "keyword.control.import.c"
1408
+ }
1409
+ },
1410
+ "end": "(?=(?://|/\\*))|$",
1411
+ "name": "meta.preprocessor.c",
1412
+ "patterns": [
1413
+ {
1414
+ "match": "(?>\\\\\\s*\\n)",
1415
+ "name": "punctuation.separator.continuation.c"
1416
+ },
1417
+ {
1418
+ "include": "#preprocessor-functions"
1419
+ }
1420
+ ]
1421
+ },
1422
+ {
1423
+ "begin": "^\\s*[#%]\\s*(assign|strlen|substr|(end|exit)?rep|push|pop|rotate|use|ifusing|ifusable|def(?:ailas|str|tok)|undef(?:alias)?)\\b",
1424
+ "captures": {
1425
+ "1": {
1426
+ "name": "keyword.control"
1427
+ }
1428
+ },
1429
+ "end": "$",
1430
+ "name": "meta.preprocessor.nasm",
1431
+ "patterns": [
1432
+ {
1433
+ "match": "(?>\\\\\\s*\\n)",
1434
+ "name": "punctuation.separator.continuation.c"
1435
+ },
1436
+ {
1437
+ "include": "#preprocessor-functions"
1438
+ }
1439
+ ]
1440
+ }
1441
+ ]
1442
+ },
1443
+ "preprocessor-functions": {
1444
+ "patterns": [
1445
+ {
1446
+ "begin": "((%)(?:(abs|cond|count|eval|isn?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|num|sel|str(?:cat|len)?|substr|tok)\\s*(\\()))",
1447
+ "captures": {
1448
+ "3": {
1449
+ "name": "support.function.preprocessor.asm.x86_64"
1450
+ }
1451
+ },
1452
+ "end": "(\\))|$",
1453
+ "name": "meta.preprocessor.function.asm.x86_64",
1454
+ "patterns": [
1455
+ {
1456
+ "include": "#preprocessor-functions"
1457
+ }
1458
+ ]
1459
+ }
1460
+ ]
1461
+ },
1462
+ "registers": {
1463
+ "patterns": [
1464
+ {
1465
+ "match": "(?i)\\b(?:[abcd][hl]|[er]?[abcd]x|[er]?(?:di|si|bp|sp)|dil|sil|bpl|spl|r(?:8|9|1[0-5])[bdlw]?)\\b",
1466
+ "name": "constant.language.register.general-purpose.asm.x86_64"
1467
+ },
1468
+ {
1469
+ "match": "(?i)\\b(?:[cdefgs]s)\\b",
1470
+ "name": "constant.language.register.segment.asm.x86_64"
1471
+ },
1472
+ {
1473
+ "match": "(?i)\\b(?:[er]?flags)\\b",
1474
+ "name": "constant.language.register.flags.asm.x86_64"
1475
+ },
1476
+ {
1477
+ "match": "(?i)\\b(?:[er]?ip)\\b",
1478
+ "name": "constant.language.register.instruction-pointer.asm.x86_64"
1479
+ },
1480
+ {
1481
+ "match": "(?i)\\b(?:cr[02-4])\\b",
1482
+ "name": "constant.language.register.control.asm.x86_64"
1483
+ },
1484
+ {
1485
+ "match": "(?i)\\b(?:(?:mm|st|fpr)[0-7])\\b",
1486
+ "name": "constant.language.register.mmx.asm.x86_64"
1487
+ },
1488
+ {
1489
+ "match": "(?i)\\b(?:[xy]mm(?:[0-9]|1[0-5])|mxcsr)\\b",
1490
+ "name": "constant.language.register.sse_avx.asm.x86_64"
1491
+ },
1492
+ {
1493
+ "match": "(?i)\\b(?:zmm(?:[12]?[0-9]|30|31))\\b",
1494
+ "name": "constant.language.register.avx512.asm.x86_64"
1495
+ },
1496
+ {
1497
+ "match": "(?i)\\b(?:bnd(?:[0-3]|cfg[su]|status))\\b",
1498
+ "name": "constant.language.register.memory-protection.asm.x86_64"
1499
+ },
1500
+ {
1501
+ "match": "(?i)\\b(?:(?:[gil]dt)r?|tr)\\b",
1502
+ "name": "constant.language.register.system-table-pointer.asm.x86_64"
1503
+ },
1504
+ {
1505
+ "match": "(?i)\\b(?:dr[0-367])\\b",
1506
+ "name": "constant.language.register.debug.asm.x86_64"
1507
+ },
1508
+ {
1509
+ "match": "(?i)\\b(?:cr8|dr(?:[89]|1[0-5])|efer|tpr|syscfg)\\b",
1510
+ "name": "constant.language.register.amd.asm.x86_64"
1511
+ },
1512
+ {
1513
+ "match": "(?i)\\b(?:db[0-367]|t[67]|tr[3-7]|st)\\b",
1514
+ "name": "invalid.deprecated.constant.language.register.asm.x86_64"
1515
+ },
1516
+ {
1517
+ "match": "(?i)\\b[xy]mm(?:1[6-9]|2[0-9]|3[01])\\b",
1518
+ "name": "constant.language.register.general-purpose.alias.asm.x86_64"
1519
+ }
1520
+ ]
1521
+ },
1522
+ "strings": {
1523
+ "patterns": [
1524
+ {
1525
+ "begin": "\"",
1526
+ "beginCaptures": {
1527
+ "0": {
1528
+ "name": "punctuation.definition.string.begin.asm"
1529
+ }
1530
+ },
1531
+ "end": "\"",
1532
+ "endCaptures": {
1533
+ "0": {
1534
+ "name": "punctuation.definition.string.end.asm"
1535
+ }
1536
+ },
1537
+ "name": "string.quoted.double.asm",
1538
+ "patterns": [
1539
+ {
1540
+ "include": "#string_escaped_char"
1541
+ },
1542
+ {
1543
+ "include": "#string_placeholder"
1544
+ }
1545
+ ]
1546
+ },
1547
+ {
1548
+ "begin": "'",
1549
+ "beginCaptures": {
1550
+ "0": {
1551
+ "name": "punctuation.definition.string.begin.asm"
1552
+ }
1553
+ },
1554
+ "end": "'",
1555
+ "endCaptures": {
1556
+ "0": {
1557
+ "name": "punctuation.definition.string.end.asm"
1558
+ }
1559
+ },
1560
+ "name": "string.quoted.single.asm",
1561
+ "patterns": [
1562
+ {
1563
+ "include": "#string_escaped_char"
1564
+ },
1565
+ {
1566
+ "include": "#string_placeholder"
1567
+ }
1568
+ ]
1569
+ },
1570
+ {
1571
+ "begin": "`",
1572
+ "beginCaptures": {
1573
+ "0": {
1574
+ "name": "punctuation.definition.string.begin.asm"
1575
+ }
1576
+ },
1577
+ "end": "`",
1578
+ "endCaptures": {
1579
+ "0": {
1580
+ "name": "punctuation.definition.string.end.asm"
1581
+ }
1582
+ },
1583
+ "name": "string.quoted.backquote.asm",
1584
+ "patterns": [
1585
+ {
1586
+ "include": "#string_escaped_char"
1587
+ },
1588
+ {
1589
+ "include": "#string_placeholder"
1590
+ }
1591
+ ]
1592
+ }
1593
+ ]
1594
+ },
1595
+ "support": {
1596
+ "patterns": [
1597
+ {
1598
+ "match": "(?i)\\b(?:s?byte|(?:[doqtyz]|dq|s[dq]?)?word|(?:d|res)[bdoqtwyz]|ddq)\\b",
1599
+ "name": "storage.type.asm.x86_64"
1600
+ },
1601
+ {
1602
+ "match": "(?i)\\b(?:incbin|equ|times|dup)\\b",
1603
+ "name": "support.function.asm.x86_64"
1604
+ },
1605
+ {
1606
+ "match": "(?i)\\b(?:strict|nosplit|near|far|abs|rel)\\b",
1607
+ "name": "storage.modifier.asm.x86_64"
1608
+ },
1609
+ {
1610
+ "match": "(?i)\\b(?:[ao](?:16|32|64))\\b",
1611
+ "name": "storage.modifier.prefix.asm.x86_64"
1612
+ },
1613
+ {
1614
+ "match": "(?i)\\b(?:rep(?:n?[ez])?|lock|xacquire|xrelease|(?:no)?bnd)\\b",
1615
+ "name": "storage.modifier.prefix.asm.x86_64"
1616
+ },
1617
+ {
1618
+ "captures": {
1619
+ "1": {
1620
+ "name": "storage.modifier.prefix.vex.asm.x86_64"
1621
+ }
1622
+ },
1623
+ "match": "{(vex[23]?|evex|rex)}"
1624
+ },
1625
+ {
1626
+ "captures": {
1627
+ "1": {
1628
+ "name": "storage.modifier.opmask.asm.x86_64"
1629
+ }
1630
+ },
1631
+ "match": "{(k[1-7])}"
1632
+ },
1633
+ {
1634
+ "captures": {
1635
+ "1": {
1636
+ "name": "storage.modifier.precision.asm.x86_64"
1637
+ }
1638
+ },
1639
+ "match": "{(1to(?:8|16))}"
1640
+ },
1641
+ {
1642
+ "captures": {
1643
+ "1": {
1644
+ "name": "storage.modifier.rounding.asm.x86_64"
1645
+ }
1646
+ },
1647
+ "match": "{(z|(?:r[nudz]-)?sae)}"
1648
+ },
1649
+ {
1650
+ "match": "\\.\\.(?:start|imagebase|tlvp|got(?:pc(?:rel)?|(?:tp)?off)?|plt|sym|tlsie)\\b",
1651
+ "name": "support.constant.asm.x86_64"
1652
+ },
1653
+ {
1654
+ "match": "\\b__\\?(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)\\?__\\b",
1655
+ "name": "support.function.asm.x86_64"
1656
+ },
1657
+ {
1658
+ "match": "\\b__(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)__\\b",
1659
+ "name": "support.function.legacy.asm.x86_64"
1660
+ },
1661
+ {
1662
+ "match": "\\b__\\?NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)\\?__\\b",
1663
+ "name": "support.function.asm.x86_64"
1664
+ },
1665
+ {
1666
+ "match": "\\b___\\?NASM_PATCHLEVEL\\?__\\b",
1667
+ "name": "support.function.asm.x86_64"
1668
+ },
1669
+ {
1670
+ "match": "\\b__\\?(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)\\?__\\b",
1671
+ "name": "support.function.asm.x86_64"
1672
+ },
1673
+ {
1674
+ "match": "\\b__\\?(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)\\?__\\b",
1675
+ "name": "support.function.asm.x86_64"
1676
+ },
1677
+ {
1678
+ "match": "\\b__\\?USE_(?:\\w+)\\?__\\b",
1679
+ "name": "support.function.asm.x86_64"
1680
+ },
1681
+ {
1682
+ "match": "\\b__\\?PASS\\?__\\b",
1683
+ "name": "invalid.deprecated.support.constant.altreg.asm.x86_64"
1684
+ },
1685
+ {
1686
+ "match": "\\b__\\?ALIGNMODE\\?__\\b",
1687
+ "name": "support.constant.smartalign.asm.x86_64"
1688
+ },
1689
+ {
1690
+ "match": "\\b__\\?ALIGN_(\\w+)\\?__\\b",
1691
+ "name": "support.function.smartalign.asm.x86_64"
1692
+ },
1693
+ {
1694
+ "match": "\\b__NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)__\\b",
1695
+ "name": "support.function.asm.x86_64"
1696
+ },
1697
+ {
1698
+ "match": "\\b___NASM_PATCHLEVEL__\\b",
1699
+ "name": "support.function.asm.x86_64"
1700
+ },
1701
+ {
1702
+ "match": "\\b__(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)__\\b",
1703
+ "name": "support.function.asm.x86_64"
1704
+ },
1705
+ {
1706
+ "match": "\\b__(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)__\\b",
1707
+ "name": "support.function.asm.x86_64"
1708
+ },
1709
+ {
1710
+ "match": "\\b__USE_(?:\\w+)__\\b",
1711
+ "name": "support.function.asm.x86_64"
1712
+ },
1713
+ {
1714
+ "match": "\\b__PASS__\\b",
1715
+ "name": "invalid.deprecated.support.constant.altreg.asm.x86_64"
1716
+ },
1717
+ {
1718
+ "match": "\\b__ALIGNMODE__\\b",
1719
+ "name": "support.constant.smartalign.asm.x86_64"
1720
+ },
1721
+ {
1722
+ "match": "\\b__ALIGN_(\\w+)__\\b",
1723
+ "name": "support.function.smartalign.asm.x86_64"
1724
+ },
1725
+ {
1726
+ "match": "\\b(?:Inf|[QS]?NaN)\\b",
1727
+ "name": "support.constant.fp.asm.x86_64"
1728
+ },
1729
+ {
1730
+ "match": "\\b(?:float(?:8|16|32|64|80[me]|128[lh]))\\b",
1731
+ "name": "support.function.fp.asm.x86_64"
1732
+ },
1733
+ {
1734
+ "match": "(?i)\\bilog2(?:[ewfc]|[fc]w)?\\b",
1735
+ "name": "support.function.ifunc.asm.x86_64"
1736
+ }
1737
+ ]
1738
+ }
1739
+ },
1740
+ "scopeName": "source.asm.x86_64"
1741
+ }