├── .gitignore ├── .vscodeignore ├── logo.png ├── .vscode └── launch.json ├── language-configuration.json ├── LICENSE.txt ├── package.json ├── README.md ├── CHANGELOG.md └── syntaxes └── language-x86_64-assembly.tmLanguage /.gitignore: -------------------------------------------------------------------------------- 1 | *.vsix 2 | -------------------------------------------------------------------------------- /.vscodeignore: -------------------------------------------------------------------------------- 1 | .git 2 | .gitignore 3 | *.vsix -------------------------------------------------------------------------------- /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/13xforever/x86_64-assembly-vscode/HEAD/logo.png -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | // A launch configuration that launches the extension inside a new window 2 | { 3 | "version": "0.1.0", 4 | "configurations": [ 5 | { 6 | "name": "Launch Extension", 7 | "type": "extensionHost", 8 | "request": "launch", 9 | "runtimeExecutable": "${execPath}", 10 | "args": ["--extensionDevelopmentPath=${workspaceRoot}" ] 11 | } 12 | ] 13 | } -------------------------------------------------------------------------------- /language-configuration.json: -------------------------------------------------------------------------------- 1 | { 2 | "comments": { 3 | // symbol used for single line comment. Remove this entry if your language does not support line comments 4 | "lineComment": ";" 5 | }, 6 | // symbols used as brackets 7 | "brackets": [ 8 | ["{", "}"], 9 | ["[", "]"], 10 | ["(", ")"] 11 | ], 12 | // symbols that are auto closed when typing 13 | "autoClosingPairs": [ 14 | ["{", "}"], 15 | ["[", "]"], 16 | ["(", ")"], 17 | ["\"", "\""] 18 | ], 19 | // symbols that that can be used to surround a selection 20 | "surroundingPairs": [ 21 | ["{", "}"], 22 | ["[", "]"], 23 | ["(", ")"], 24 | ["\"", "\""] 25 | ] 26 | } -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012-2015 Ilya Veselov (13xforever) 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "language-x86-64-assembly", 3 | "displayName": "x86 and x86_64 Assembly", 4 | "description": "Cutting edge x86 and x86_64 assembly syntax highlighting", 5 | "version": "3.1.5", 6 | "preview": false, 7 | "icon": "logo.png", 8 | "engines": { 9 | "vscode": "^1.0.0" 10 | }, 11 | "author": { 12 | "name": "Ilya Veselov" 13 | }, 14 | "publisher": "13xforever", 15 | "contributes": { 16 | "languages": [ 17 | { 18 | "id": "asm-intel-x86-generic", 19 | "aliases": [ 20 | "x86 and x86_64 Assembly", 21 | "asm-intel-x86-generic" 22 | ], 23 | "extensions": [ 24 | ".asm", 25 | ".nasm", 26 | ".yasm", 27 | ".inc", 28 | ".s" 29 | ], 30 | "configuration": "./language-configuration.json" 31 | } 32 | ], 33 | "grammars": [ 34 | { 35 | "language": "asm-intel-x86-generic", 36 | "scopeName": "source.asm.x86_64", 37 | "path": "./syntaxes/language-x86_64-assembly.tmLanguage" 38 | } 39 | ] 40 | }, 41 | "categories": [ 42 | "Programming Languages" 43 | ], 44 | "repository": { 45 | "url": "https://github.com/13xforever/x86_64-assembly-vscode", 46 | "type": "git" 47 | } 48 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | About 2 | ===== 3 | This is a TextMate/Sublime/VS Code bundle providing language support for x86_64 assembly language in a variety of dialects (nasm/yasm primarily, but could highlight tasm to some extent). 4 | 5 | Features 6 | ======== 7 | * Basic support for NASM/YASM/TASM syntaxes 8 | * Most up-to-date instruction sets: 9 | * Legacy/undocumented registers and instructions 10 | * FPU/MMX/3DNow! 11 | * SSE/SSE2/(S)SSE3/SSE4/SSE4.1/SSE4.2/SSE4.a 12 | * AVX/AVX2/AVX512, including pseudo-ops 13 | * AES-NI/SHA 14 | * VMX/SMX/MPX/SGX 15 | * Key Locker 16 | * APX 17 | * other AMD/Cyrix/VIA and planned future Intel extensions 18 | 19 | Source code 20 | =========== 21 | VS Code package is exported from [Textmate/Sublime Bundle](https://github.com/13xforever/x86-assembly-textmate-bundle), all issues and pull requests should be filed there. 22 | 23 | To compile the yaml sources to tmLanguage, you'll need [PackageDev](https://packagecontrol.io/packages/PackageDev) (`x86_64 Assembly.YAML-tmLanguage`). 24 | 25 | Contributors 26 | ============ 27 | [YASM tests](Tests/yasm-regression) are provided by [yasm-regression](https://github.com/yasm/yasm-regression) project. 28 | 29 | Examples 30 | ======== 31 | * Sublime Text 4 32 | ![Sublime Text 4 with Breakers theme](https://github.com/13xforever/x86-assembly-textmate-bundle/blob/master/Screenshots/Sublime%20Text%204%20-%20Light%20-%20Breakers.png?raw=true) 33 | * Visual Studio Code with Eva theme 34 | ![Visual Studio Code with Eva Light theme](https://github.com/13xforever/x86-assembly-textmate-bundle/blob/master/Screenshots/Visual%20Studio%20Code%20-%20Light%20-%20Eva.png?raw=true) 35 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | ## 3.1.5 2 | * Mnemonics for IBPB/IBHF 3 | 4 | ## 3.1.4 5 | * Updates to NASM syntax up to 2.16.01 (still incomplete compared to new Sublime Text definitions) 6 | 7 | ## 3.1.1 8 | Mnemonics update 9 | * All extensions previously marked as future, are now incorporated to the main grammar namespace 10 | * Current as of Intel Software Developer's Manual, June 2023 11 | * Added Intel APX to future extensions section 12 | * General minor syntax fixes 13 | 14 | ## 3.0.0 15 | Following the request, language id that this package provides, was changed to be more unique. 16 | This means some associations, custom language configuration options, and possible embedded language scopes might be reset or stop working. 17 | 18 | ## 2.3.0 19 | Following the complete rewrite of the grammer for Sublime Text 3, this updates brings some backported changes and fixes to the legacy highlighter 20 | 21 | ## 2.2.11 22 | Better support for datatypes 23 | * signed types (non-nasm) 24 | * better support for various number notations (bin, oct, dec, hex, and packed bcd) 25 | * better support for strings 26 | * more built-in nasm functions for type convertion and constants 27 | 28 | ## 2.2.8 29 | Fixed highlighting conflict for ah-dh registers with hex numbers 30 | 31 | ## 2.2.4 32 | Expanded NASM macro support 33 | Partial support for GAS comment style 34 | 35 | ## 2.2.3 36 | Fixed missing AMD instructions, including support for Zen 37 | 38 | ## 2.2.2 39 | Overhauled highlighting for sections, labels, prefixes, and numbers 40 | 41 | ## 2.1.15 42 | Intel CFE extensions 43 | 44 | ## 2.1.10 45 | Updated with PKRU instructions 46 | 47 | ## 2.1.6 48 | Updated the extension to support Visual Studio Code Marketplace 49 | 50 | ## 2.1.5 51 | Small highlighting fix for some FPU instructions 52 | 53 | ## 2.1.2 - First Release for Visual Studio Code 54 | As of right now, this bundle have: 55 | * Basic support for nasm/yasm/tasm/gas syntaxes 56 | * Most of the modern instruction sets (including Intel SHA/MPX/SGX) 57 | -------------------------------------------------------------------------------- /syntaxes/language-x86_64-assembly.tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | asm 8 | nasm 9 | yasm 10 | inc 11 | s 12 | 13 | name 14 | x86 and x86_64 Assembly 15 | patterns 16 | 17 | 18 | include 19 | #registers 20 | 21 | 22 | include 23 | #mnemonics 24 | 25 | 26 | include 27 | #constants 28 | 29 | 30 | include 31 | #entities 32 | 33 | 34 | include 35 | #support 36 | 37 | 38 | include 39 | #comments 40 | 41 | 42 | include 43 | #preprocessor 44 | 45 | 46 | include 47 | #strings 48 | 49 | 50 | repository 51 | 52 | comments 53 | 54 | patterns 55 | 56 | 57 | match 58 | (;|(^|\s)#\s).*$ 59 | name 60 | comment.line 61 | 62 | 63 | begin 64 | /\* 65 | end 66 | \*/ 67 | name 68 | comment.block 69 | 70 | 71 | begin 72 | ^\s*[\#%]\s*if\s+0\b 73 | end 74 | ^\s*[\#%]\s*endif\b 75 | name 76 | comment.preprocessor 77 | 78 | 79 | 80 | constants 81 | 82 | patterns 83 | 84 | 85 | match 86 | (?i)\b0[by](?:[01][01_]*)\.(?:(?:[01][01_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\b)? 87 | name 88 | constant.numeric.binary.floating-point.asm.x86_64 89 | 90 | 91 | match 92 | (?i)\b0[by](?:[01][01_]*)(?:p[+-]?(?:[0-9][0-9_]*))\b 93 | name 94 | constant.numeric.binary.floating-point.asm.x86_64 95 | 96 | 97 | match 98 | (?i)\b0[oq](?:[0-7][0-7_]*)\.(?:(?:[0-7][0-7_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\b)? 99 | name 100 | constant.numeric.octal.floating-point.asm.x86_64 101 | 102 | 103 | match 104 | (?i)\b0[oq](?:[0-7][0-7_]*)(?:p[+-]?(?:[0-9][0-9_]*))\b 105 | name 106 | constant.numeric.octal.floating-point.asm.x86_64 107 | 108 | 109 | match 110 | (?i)\b(?:0[dt])?(?:[0-9][0-9_]*)\.(?:(?:[0-9][0-9_]*)?(?:e[+-]?(?:[0-9][0-9_]*))?\b)? 111 | name 112 | constant.numeric.decimal.floating-point.asm.x86_64 113 | 114 | 115 | match 116 | (?i)\b(?:[0-9][0-9_]*)(?:e[+-]?(?:[0-9][0-9_]*))\b 117 | name 118 | constant.numeric.decimal.floating-point.asm.x86_64 119 | 120 | 121 | match 122 | (?i)\b(?:[0-9][0-9_]*)p(?:[0-9][0-9_]*)?\b 123 | name 124 | constant.numeric.decimal.packed-bcd.asm.x86_64 125 | 126 | 127 | match 128 | (?i)\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\b)? 129 | name 130 | constant.numeric.hex.floating-point.asm.x86_64 131 | 132 | 133 | match 134 | (?i)\b0[xh](?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\b 135 | name 136 | constant.numeric.hex.floating-point.asm.x86_64 137 | 138 | 139 | match 140 | (?i)\$[0-9]\_?(?:[[:xdigit:]][[:xdigit:]_]*)?\.(?:(?:[[:xdigit:]][[:xdigit:]_]*)?(?:p[+-]?(?:[0-9][0-9_]*))?\b)? 141 | name 142 | constant.numeric.hex.floating-point.asm.x86_64 143 | 144 | 145 | match 146 | (?i)\$[0-9]\_?(?:[[:xdigit:]][[:xdigit:]_]*)(?:p[+-]?(?:[0-9][0-9_]*))\b 147 | name 148 | constant.numeric.hex.floating-point.asm.x86_64 149 | 150 | 151 | match 152 | (?i)\b(?:(?:0[by](?:[01][01_]*))|(?:(?:[01][01_]*)[by]))\b 153 | name 154 | constant.numeric.binary.asm.x86_64 155 | 156 | 157 | match 158 | (?i)\b(?:(?:0[oq](?:[0-7][0-7_]*))|(?:(?:[0-7][0-7_]*)[oq]))\b 159 | name 160 | constant.numeric.octal.asm.x86_64 161 | 162 | 163 | match 164 | (?i)\b(?:(?:0[dt](?:[0-9][0-9_]*))|(?:(?:[0-9][0-9_]*)[dt]?))\b 165 | name 166 | constant.numeric.decimal.asm.x86_64 167 | 168 | 169 | match 170 | (?i)(?:\$[0-9]\_?(?:[[:xdigit:]][[:xdigit:]_]*)?)\b 171 | name 172 | constant.numeric.hex.asm.x86_64 173 | 174 | 175 | match 176 | (?i)\b(?:(?:0[xh](?:[[:xdigit:]][[:xdigit:]_]*))|(?:(?:[[:xdigit:]][[:xdigit:]_]*)[hxHX]))\b 177 | name 178 | constant.numeric.hex.asm.x86_64 179 | 180 | 181 | 182 | entities 183 | 184 | patterns 185 | 186 | 187 | match 188 | ((section|segment)\s+)?\.((ro)?data|bss|text) 189 | name 190 | entity.name.section 191 | 192 | 193 | match 194 | ^\.?(globa?l|extern|required)\b 195 | name 196 | entity.directive 197 | 198 | 199 | match 200 | (\$\w+)\b 201 | name 202 | text.variable 203 | 204 | 205 | captures 206 | 207 | 1 208 | 209 | name 210 | punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64 211 | 212 | 2 213 | 214 | name 215 | entity.name.function.special.asm.x86_64 216 | 217 | 3 218 | 219 | name 220 | punctuation.separator.asm.x86_64 221 | 222 | 223 | match 224 | (\.\.@)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\:)?|\b) 225 | name 226 | entity.name.function.asm.x86_64 227 | 228 | 229 | captures 230 | 231 | 1 232 | 233 | name 234 | punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64 235 | 236 | 2 237 | 238 | name 239 | entity.name.function.asm.x86_64 240 | 241 | 3 242 | 243 | name 244 | punctuation.separator.asm.x86_64 245 | 246 | 247 | match 248 | (?:(\.)?|\b)((?:[[:alpha:]_?](?:[[:alnum:]_$#@~.?]*)))(?:(\:)) 249 | name 250 | entity.name.function.asm.x86_64 251 | 252 | 253 | captures 254 | 255 | 1 256 | 257 | name 258 | punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64 259 | 260 | 2 261 | 262 | name 263 | entity.name.function.asm.x86_64 264 | 265 | 3 266 | 267 | name 268 | punctuation.separator.asm.x86_64 269 | 270 | 271 | match 272 | (\.)([0-9]+(?:[[:alnum:]_$#@~.?]*))(?:(\:)?|\b) 273 | name 274 | entity.name.function.asm.x86_64 275 | 276 | 277 | captures 278 | 279 | 1 280 | 281 | name 282 | punctuation.separator.asm.x86_64 storage.modifier.asm.x86_64 283 | 284 | 2 285 | 286 | name 287 | invalid.illegal.entity.name.function.asm.x86_64 288 | 289 | 3 290 | 291 | name 292 | punctuation.separator.asm.x86_64 293 | 294 | 295 | match 296 | (?:(\.)?|\b)([0-9$@~](?:[[:alnum:]_$#@~.?]*))(?:(\:)) 297 | name 298 | invalid.illegal.entity.name.function.asm.x86_64 299 | 300 | 301 | 302 | mnemonics 303 | 304 | patterns 305 | 306 | 307 | include 308 | #mnemonics-general-purpose 309 | 310 | 311 | include 312 | #mnemonics-fpu 313 | 314 | 315 | include 316 | #mnemonics-mmx 317 | 318 | 319 | include 320 | #mnemonics-sse 321 | 322 | 323 | include 324 | #mnemonics-sse2 325 | 326 | 327 | include 328 | #mnemonics-sse3 329 | 330 | 331 | include 332 | #mnemonics-sse4 333 | 334 | 335 | include 336 | #mnemonics-aesni 337 | 338 | 339 | include 340 | #mnemonics-avx 341 | 342 | 343 | include 344 | #mnemonics-avx2 345 | 346 | 347 | include 348 | #mnemonics-tsx 349 | 350 | 351 | include 352 | #mnemonics-sha 353 | 354 | 355 | include 356 | #mnemonics-avx512 357 | 358 | 359 | include 360 | #mnemonics-system 361 | 362 | 363 | include 364 | #mnemonics-64bit 365 | 366 | 367 | include 368 | #mnemonics-vmx 369 | 370 | 371 | include 372 | #mnemonics-smx 373 | 374 | 375 | include 376 | #mnemonics-mpx 377 | 378 | 379 | include 380 | #mnemonics-sgx 381 | 382 | 383 | include 384 | #mnemonics-cet 385 | 386 | 387 | include 388 | #mnemonics-amx 389 | 390 | 391 | include 392 | #mnemonics-uirq 393 | 394 | 395 | include 396 | #mnemonics-esi 397 | 398 | 399 | include 400 | #mnemonics-speculation 401 | 402 | 403 | include 404 | #mnemonics-intel-manual-listing 405 | 406 | 407 | include 408 | #mnemonics-intel-isa-xeon-phi 409 | 410 | 411 | include 412 | #mnemonics-intel-isa-keylocker 413 | 414 | 415 | include 416 | #mnemonics-supplemental-amd 417 | 418 | 419 | include 420 | #mnemonics-supplemental-cyrix 421 | 422 | 423 | include 424 | #mnemonics-supplemental-via 425 | 426 | 427 | include 428 | #mnemonics-undocumented 429 | 430 | 431 | include 432 | #mnemonics-future-intel 433 | 434 | 435 | include 436 | #mnemonics-pseudo-ops 437 | 438 | 439 | 440 | mnemonics-64bit 441 | 442 | patterns 443 | 444 | 445 | match 446 | (?i)\b(cdqe|cqo|(cmp|lod|mov|sto)sq|cmpxchg16b|mov(ntq|sxd)|scasq|swapgs|sys(call|ret))\b 447 | name 448 | keyword.operator.word.mnemonic.64-bit-mode 449 | 450 | 451 | 452 | mnemonics-aesni 453 | 454 | patterns 455 | 456 | 457 | match 458 | (?i)\b(aes((dec|enc)(last)?|imc|keygenassist)|pclmulqdq)\b 459 | name 460 | keyword.operator.word.mnemonic.aesni 461 | 462 | 463 | 464 | mnemonics-amx 465 | 466 | patterns 467 | 468 | 469 | match 470 | (?i)\b((ld|st)tilecfg|tdpb(f16ps|[su]{2}d)|tile(loadd(t1)?|release|stored|zero))\b 471 | name 472 | keyword.operator.word.mnemonic.amx 473 | 474 | 475 | 476 | mnemonics-avx 477 | 478 | patterns 479 | 480 | 481 | match 482 | (?i)\b(v((test|permil|maskmov)p[ds]|zero(all|upper)|(perm2|insert|extract|broadcast)f128|broadcasts[ds]))\b 483 | name 484 | keyword.operator.word.mnemonic.avx 485 | 486 | 487 | match 488 | (?i)\b(vaes((dec|enc)(last)?|imc|keygenassist)|vpclmulqdq)\b 489 | name 490 | keyword.operator.word.mnemonic.avx.promoted.aes 491 | 492 | 493 | match 494 | (?i)\b(v((cmp[ps]|u?comis)[ds]|pcmp([ei]str[im]|(eq|gt)[bdqw])))\b 495 | name 496 | keyword.operator.word.mnemonic.avx.promoted.comparison 497 | 498 | 499 | match 500 | (?i)\b(v(cvt(dq2pd|dq2ps|pd2ps|ps2pd|sd2ss|si2sd|si2ss|ss2sd|t?(pd2dq|ps2dq|sd2si|ss2si))))\b 501 | name 502 | keyword.operator.word.mnemonic.avx.promoted.conversion 503 | 504 | 505 | match 506 | (?i)\b(vh((add|sub)p[ds])|vph((add|sub)([dw]|sw)|minposuw))\b 507 | name 508 | keyword.operator.word.mnemonic.avx.promoted.horizontal-packed-arithmetic 509 | 510 | 511 | match 512 | (?i)\b(v((andn?|x?or)p[ds]))\b 513 | name 514 | keyword.operator.word.mnemonic.avx.promoted.logical 515 | 516 | 517 | match 518 | (?i)\b(v(mov(([ahl]|msk|nt|u)p[ds]|(hl|lh)ps|s([ds]|[hl]dup)|q)))\b 519 | name 520 | keyword.operator.word.mnemonic.avx.promoted.mov 521 | 522 | 523 | match 524 | (?i)\b(v((add|div|mul|sub|max|min|round|sqrt)[ps][ds]|(addsub|dp)p[ds]|(rcp|rsqrt)[ps]s))\b 525 | name 526 | keyword.operator.word.mnemonic.avx.promoted.packed-arithmetic 527 | 528 | 529 | match 530 | (?i)\b(v(pack[su]s(dw|wb)|punpck[hl](bw|dq|wd|qdq)|unpck[hl]p[ds]))\b 531 | name 532 | keyword.operator.word.mnemonic.avx.promoted.packed-conversion 533 | 534 | 535 | match 536 | (?i)\b(vp(shuf([bd]|[hl]w))|vshufp[ds])\b 537 | name 538 | keyword.operator.word.mnemonic.avx.promoted.packed-shuffle 539 | 540 | 541 | match 542 | (?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 543 | name 544 | keyword.operator.word.mnemonic.avx.promoted.supplemental.arithmetic 545 | 546 | 547 | match 548 | (?i)\b(vp(andn?|x?or))\b 549 | name 550 | keyword.operator.word.mnemonic.avx.promoted.supplemental.logical 551 | 552 | 553 | match 554 | (?i)\b(vpblend(vb|w))\b 555 | name 556 | keyword.operator.word.mnemonic.avx.promoted.supplemental.blending 557 | 558 | 559 | match 560 | (?i)\b(vpmov(mskb|[sz]x(b[dqw]|w[dq]|dq)))\b 561 | name 562 | keyword.operator.word.mnemonic.avx.promoted.supplemental.mov 563 | 564 | 565 | match 566 | (?i)\b(vp(insr[bdqw]|sll(dq|[dqw])|srl(dq)))\b 567 | name 568 | keyword.operator.word.mnemonic.avx.promoted.simd-integer 569 | 570 | 571 | match 572 | (?i)\b(vp(sra[dwq]|srl[dqw]))\b 573 | name 574 | keyword.operator.word.mnemonic.avx.promoted.shift-and-rotate 575 | 576 | 577 | match 578 | (?i)\b(vblendv?p[ds])\b 579 | name 580 | keyword.operator.word.mnemonic.avx.promoted.packed-blending 581 | 582 | 583 | match 584 | (?i)\b(vp(test|alignr))\b 585 | name 586 | keyword.operator.word.mnemonic.avx.promoted.packed-other 587 | 588 | 589 | match 590 | (?i)\b(vmov(d(dup|qa|qu)?))\b 591 | name 592 | keyword.operator.word.mnemonic.avx.promoted.simd-integer.mov 593 | 594 | 595 | match 596 | (?i)\b(v((extract|insert)ps|lddqu|(ld|st)mxcsr|mpsadbw))\b 597 | name 598 | keyword.operator.word.mnemonic.avx.promoted.other 599 | 600 | 601 | match 602 | (?i)\b(v(maskmovdqu|movntdqa?))\b 603 | name 604 | keyword.operator.word.mnemonic.avx.promoted.cacheability-control 605 | 606 | 607 | match 608 | (?i)\b(vcvt(ph2ps|ps2ph))\b 609 | name 610 | keyword.operator.word.mnemonic.16-bit-floating-point-conversion 611 | 612 | 613 | match 614 | (?i)\b(vfn?m((add|sub)(132|213|231)[ps][ds])|vfm((addsub|subadd)(132|213|231)p[ds]))\b 615 | name 616 | keyword.operator.word.mnemonic.fma 617 | 618 | 619 | 620 | mnemonics-avx2 621 | 622 | patterns 623 | 624 | 625 | match 626 | (?i)\b(v((broadcast|extract|insert|perm2)i128|pmaskmov[dq]|perm([dsq]|p[sd])))\b 627 | name 628 | keyword.operator.word.mnemonic.avx2.promoted.simd 629 | 630 | 631 | match 632 | (?i)\b(vpbroadcast[bdqw])\b 633 | name 634 | keyword.operator.word.mnemonic.avx2.promoted.packed 635 | 636 | 637 | match 638 | (?i)\b(vp(blendd|s[lr]lv[dq]|sravd))\b 639 | name 640 | keyword.operator.word.mnemonic.avx2.blend 641 | 642 | 643 | match 644 | (?i)\b(vp?gather[dq][dq]|vgather([dq]|dq)p[ds])\b 645 | name 646 | keyword.operator.word.mnemonic.avx2.gather 647 | 648 | 649 | 650 | mnemonics-avx512 651 | 652 | patterns 653 | 654 | 655 | include 656 | #mnemonics-avx512f 657 | 658 | 659 | include 660 | #mnemonics-avx512dq 661 | 662 | 663 | include 664 | #mnemonics-avx512bw 665 | 666 | 667 | include 668 | #mnemonics-avx512-opmask 669 | 670 | 671 | include 672 | #mnemonics-avx512er 673 | 674 | 675 | include 676 | #mnemonics-avx512pf 677 | 678 | 679 | include 680 | #mnemonics-avx512fp16 681 | 682 | 683 | 684 | mnemonics-avx512-opmask 685 | 686 | patterns 687 | 688 | 689 | match 690 | (?i)\bk(add|andn?|mov|not|or(test)?|shift[lr]|test|xn?or)[bdqw]\b 691 | name 692 | keyword.operator.word.mnemonic.avx512.opmask 693 | 694 | 695 | match 696 | (?i)\bkunpck(bw|wd|dq)\b 697 | name 698 | keyword.operator.word.mnemonic.avx512.opmask.unpack 699 | 700 | 701 | 702 | mnemonics-avx512bw 703 | 704 | patterns 705 | 706 | 707 | match 708 | (?i)\bv(dbpsadbw|movdqu(8|16))\b 709 | name 710 | keyword.operator.word.mnemonic.avx512.bw.dbpsad 711 | 712 | 713 | match 714 | (?i)\bvp(blendm|cmpu?|movm2)[bw]\b 715 | name 716 | keyword.operator.word.mnemonic.avx512.bw.pblend 717 | 718 | 719 | match 720 | (?i)\bvperm(w|i2[bw])\b 721 | name 722 | keyword.operator.word.mnemonic.avx512.bw.perpmi2 723 | 724 | 725 | match 726 | (?i)\bvp(mov([bw]2m|u?swb))\b 727 | name 728 | keyword.operator.word.mnemonic.avx512.bw.pmov 729 | 730 | 731 | match 732 | (?i)\bvp(s(ll|ra|rl)vw|testn?m[bw])\b 733 | name 734 | keyword.operator.word.mnemonic.avx512.bw.psll 735 | 736 | 737 | match 738 | (?i)\bvp(broadcastm(b2q|w2d)|(conflict|lzcnt)[dq])\b 739 | name 740 | keyword.operator.word.mnemonic.avx512.bw.broadcast 741 | 742 | 743 | 744 | mnemonics-avx512dq 745 | 746 | patterns 747 | 748 | 749 | match 750 | (?i)\bvcvt(t?p[ds]2u?qq|uqq2p[ds])\b 751 | name 752 | keyword.operator.word.mnemonic.avx512.dq.cvt 753 | 754 | 755 | match 756 | (?i)\bv((extract|insert)[fi]64x2|(fpclass|range|reduce)[ps][ds])\b 757 | name 758 | keyword.operator.word.mnemonic.avx512.dq.extract 759 | 760 | 761 | match 762 | (?i)\bvp(mov(m2[dq]|b2d|q2m)|mullq)\b 763 | name 764 | keyword.operator.word.mnemonic.avx512.dq.pmov 765 | 766 | 767 | 768 | mnemonics-avx512er 769 | 770 | patterns 771 | 772 | 773 | match 774 | (?i)\bv(exp2|rcp28|rsqrt28)[ps][ds]\b 775 | name 776 | keyword.operator.word.mnemonic.avx512.er 777 | 778 | 779 | 780 | mnemonics-avx512f 781 | 782 | patterns 783 | 784 | 785 | match 786 | (?i)\bv(align[dq]|(blendm|compress)p[ds])\b 787 | name 788 | keyword.operator.word.mnemonic.avx512.f.align 789 | 790 | 791 | match 792 | (?i)\bv(cvtt?[ps][ds]2u(dq|si))\b 793 | name 794 | keyword.operator.word.mnemonic.avx512.f.cvtt 795 | 796 | 797 | match 798 | (?i)\bv(cvt((q|ud)q2p|usi2s)[ds])\b 799 | name 800 | keyword.operator.word.mnemonic.avx512.f.cvt 801 | 802 | 803 | match 804 | (?i)\bv(expandp[ds]|extract[fi](32|64)x4|fixupimm[ps][ds])\b 805 | name 806 | keyword.operator.word.mnemonic.avx512.f.expand 807 | 808 | 809 | match 810 | (?i)\bv(get(exp|mant)[ps][ds]|insertf(32|64)x4|movdq[au](32|64))\b 811 | name 812 | keyword.operator.word.mnemonic.avx512.f.getexp 813 | 814 | 815 | match 816 | (?i)\bvp(blendm[dq]|cmpu?[dq]|compress[dq])\b 817 | name 818 | keyword.operator.word.mnemonic.avx512.f.pblend 819 | 820 | 821 | match 822 | (?i)\bvp(erm[it]2(d|q|p[ds])|expand[dq]|(max|min)[su]q|movu?s(q[bdw]|d[bw]))\b 823 | name 824 | keyword.operator.word.mnemonic.avx512.f.permi 825 | 826 | 827 | match 828 | (?i)\bvp(rolv?|rorr?|scatter[dq]|testn?m|terlog)[dq]\b 829 | name 830 | keyword.operator.word.mnemonic.avx512.f.prol 831 | 832 | 833 | match 834 | (?i)\bvpsravq\b 835 | name 836 | keyword.operator.word.mnemonic.avx512.f.sravq 837 | 838 | 839 | match 840 | (?i)\bv(rcp14|(rnd)?scale|rsqrt14)[ps][ds]\b 841 | name 842 | keyword.operator.word.mnemonic.avx512.f.rcp 843 | 844 | 845 | match 846 | (?i)\bv(scatter[dq]{2}|shuf[fi](32|64)x[24])\b 847 | name 848 | keyword.operator.word.mnemonic.avx512.f.scatter 849 | 850 | 851 | 852 | mnemonics-avx512fp16 853 | 854 | patterns 855 | 856 | 857 | match 858 | (?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 859 | name 860 | keyword.operator.word.mnemonic.avx512.fp16.add 861 | 862 | 863 | match 864 | (?i)\bvcvt(u?([dq]q|w)|pd)2ph\b 865 | name 866 | keyword.operator.word.mnemonic.avx512.fp16.cvtx2ph 867 | 868 | 869 | match 870 | (?i)\bvcvtph2(u?([dq]q|w)|pd)\b 871 | name 872 | keyword.operator.word.mnemonic.avx512.fp16.cvtph2x 873 | 874 | 875 | match 876 | (?i)\bvcvt(ph2psx|ps2phx)\b 877 | name 878 | keyword.operator.word.mnemonic.avx512.fp16.cvtx 879 | 880 | 881 | match 882 | (?i)\bvcvt(s[dsi]|usi)2sh\b 883 | name 884 | keyword.operator.word.mnemonic.avx512.fp16.cvtx2sh 885 | 886 | 887 | match 888 | (?i)\bvcvtsh2(s[dsi]|usi)\b 889 | name 890 | keyword.operator.word.mnemonic.avx512.fp16.cvtsh2x 891 | 892 | 893 | match 894 | (?i)\bvcvtt(ph2(u?(dq|qq|w))|sh2u?si)\b 895 | name 896 | keyword.operator.word.mnemonic.avx512.fp16.cvttph2x 897 | 898 | 899 | match 900 | (?i)\bvfn?m((add|sub)(132|213|231))[ps]h\b 901 | name 902 | keyword.operator.word.mnemonic.avx512.fp16.fmadd 903 | 904 | 905 | match 906 | (?i)\bvfm(addsub|subadd)(132|213|231)ph\b 907 | name 908 | keyword.operator.word.mnemonic.avx512.fp16.fmaddsub 909 | 910 | 911 | match 912 | (?i)\bv((min|max)ph|mov(sh|w))\b 913 | name 914 | keyword.operator.word.mnemonic.avx512.fp16.max 915 | 916 | 917 | 918 | mnemonics-avx512pf 919 | 920 | patterns 921 | 922 | 923 | match 924 | (?i)\bv(gather|scatter)pf[01][dq]p[ds]\b 925 | name 926 | keyword.operator.word.mnemonic.avx512.pf 927 | 928 | 929 | 930 | mnemonics-cet 931 | 932 | patterns 933 | 934 | 935 | match 936 | (?i)\b((inc|save(prev)?|rstor|rd)ssp|wru?ss|(set|clr)ssbsy|endbr(32|64))\b 937 | name 938 | keyword.operator.word.mnemonic.cet 939 | 940 | 941 | match 942 | (?i)\bendbranch\b 943 | name 944 | keyword.operator.word.mnemonic.cet.misc 945 | 946 | 947 | 948 | mnemonics-esi 949 | 950 | patterns 951 | 952 | 953 | match 954 | (?i)\benqcmds?\b 955 | name 956 | keyword.operator.word.mnemonic.esi 957 | 958 | 959 | 960 | mnemonics-speculation 961 | 962 | patterns 963 | 964 | 965 | match 966 | (?i)\bib(pb|hf)\b 967 | name 968 | keyword.operator.word.mnemonic.speculation 969 | 970 | 971 | 972 | mnemonics-fpu 973 | 974 | patterns 975 | 976 | 977 | match 978 | (?i)\b(fcmov(n?([beu]|be)))\b 979 | name 980 | keyword.operator.word.mnemonic.fpu.data-transfer.mov 981 | 982 | 983 | match 984 | (?i)\b(f(i?(ld|stp?)|b(ld|stp)|xch))\b 985 | name 986 | keyword.operator.word.mnemonic.fpu.data-transfer.other 987 | 988 | 989 | match 990 | (?i)\b(f((add|div|mul|sub)p?|i(add|div|mul|sub)|(div|sub)rp?|i(div|sub)r))\b 991 | name 992 | keyword.operator.word.mnemonic.fpu.basic-arithmetic.basic 993 | 994 | 995 | match 996 | (?i)\b(f(prem1?|abs|chs|rndint|scale|sqrt|xtract))\b 997 | name 998 | keyword.operator.word.mnemonic.fpu.basic-arithmetic.other 999 | 1000 | 1001 | match 1002 | (?i)\b(f(u?com[ip]?p?|icomp?|tst|xam))\b 1003 | name 1004 | keyword.operator.word.mnemonic.fpu.comparison 1005 | 1006 | 1007 | match 1008 | (?i)\b(f(sin|cos|sincos|pa?tan|2xm1|yl2x(p1)?))\b 1009 | name 1010 | keyword.operator.word.mnemonic.fpu.transcendental 1011 | 1012 | 1013 | match 1014 | (?i)\b(fld(1|z|pi|l2[et]|l[ng]2))\b 1015 | name 1016 | keyword.operator.word.mnemonic.fpu.load-constants 1017 | 1018 | 1019 | match 1020 | (?i)\b(f((inc|dec)stp|free|n?(init|clex|st[cs]w|stenv|save)|ld(cw|env)|rstor|nop)|f?wait)\b 1021 | name 1022 | keyword.operator.word.mnemonic.fpu.control-management 1023 | 1024 | 1025 | match 1026 | (?i)\b(fx(save|rstor)(64)?)\b 1027 | name 1028 | keyword.operator.word.mnemonic.fpu.state-management 1029 | 1030 | 1031 | 1032 | mnemonics-future-intel 1033 | 1034 | patterns 1035 | 1036 | 1037 | include 1038 | #mnemonics-future-intel-apx 1039 | 1040 | 1041 | 1042 | mnemonics-future-intel-apx 1043 | 1044 | patterns 1045 | 1046 | 1047 | match 1048 | (?i)\b(c(cmp|test)(n?[bl]e?|[ft]|n?[osz]))\b 1049 | name 1050 | keyword.operator.word.mnemonic.apx.ccmp_test 1051 | 1052 | 1053 | match 1054 | (?i)\b(cfcmovn?([bl]e?|[opsz]))\b 1055 | name 1056 | keyword.operator.word.mnemonic.apx.cfcmov 1057 | 1058 | 1059 | match 1060 | (?i)\b(cmpn?([bl]e?|[opsz])xadd)\b 1061 | name 1062 | keyword.operator.word.mnemonic.apx.cmpxadd 1063 | 1064 | 1065 | match 1066 | (?i)\b(jmpabs|(push|pop)2p?)\b 1067 | name 1068 | keyword.operator.word.mnemonic.apx.other 1069 | 1070 | 1071 | 1072 | mnemonics-general-purpose 1073 | 1074 | patterns 1075 | 1076 | 1077 | match 1078 | (?i)\b(?:mov(?:[sz]x)?|cmov(?:n?[abceglopsz]|n?[abgl]e|p[eo]))\b 1079 | name 1080 | keyword.operator.word.mnemonic.general-purpose.data-transfer.mov 1081 | 1082 | 1083 | match 1084 | (?i)\b(xchg|bswap|xadd|cmpxchg(8b)?)\b 1085 | name 1086 | keyword.operator.word.mnemonic.general-purpose.data-transfer.xchg 1087 | 1088 | 1089 | match 1090 | (?i)\b((push|pop)(ad?)?|cwde?|cdq|cbw)\b 1091 | name 1092 | keyword.operator.word.mnemonic.general-purpose.data-transfer.other 1093 | 1094 | 1095 | match 1096 | (?i)\b(adcx?|adox|add|sub|sbb|i?mul|i?div|inc|dec|neg|cmp)\b 1097 | name 1098 | keyword.operator.word.mnemonic.general-purpose.binary-arithmetic 1099 | 1100 | 1101 | match 1102 | (?i)\b(daa|das|aaa|aas|aam|aad)\b 1103 | name 1104 | keyword.operator.word.mnemonic.general-purpose.decimal-arithmetic 1105 | 1106 | 1107 | match 1108 | (?i)\b(and|x?or|not)\b 1109 | name 1110 | keyword.operator.word.mnemonic.general-purpose.logical 1111 | 1112 | 1113 | match 1114 | (?i)\b(s[ah][rl]|sh[rl]d|r[co][rl])\b 1115 | name 1116 | keyword.operator.word.mnemonic.general-purpose.rotate 1117 | 1118 | 1119 | match 1120 | (?i)\b(set(n?[abceglopsz]|n?[abgl]e|p[eo]))\b 1121 | name 1122 | keyword.operator.word.mnemonic.general-purpose.bit-and-byte.set 1123 | 1124 | 1125 | match 1126 | (?i)\b(bt[crs]?|bs[fr]|test|crc32|popcnt)\b 1127 | name 1128 | keyword.operator.word.mnemonic.general-purpose.bit-and-byte.other 1129 | 1130 | 1131 | match 1132 | (?i)\b(jmp|jn?[abceglopsz]|jn?[abgl]e|jp[eo]|j[er]?cxz)\b 1133 | name 1134 | keyword.operator.word.mnemonic.general-purpose.control-transfer.jmp 1135 | 1136 | 1137 | match 1138 | (?i)\b(loop(n?[ez])?|call|ret|iret[dq]?|into?|bound|enter|leave)\b 1139 | name 1140 | keyword.operator.word.mnemonic.general-purpose.control-transfer.other 1141 | 1142 | 1143 | match 1144 | (?i)\b((mov|cmp|sca|lod|sto)(s[bdw]?)|rep(n?[ez])?)\b 1145 | name 1146 | keyword.operator.word.mnemonic.general-purpose.strings 1147 | 1148 | 1149 | match 1150 | (?i)\b((in|out)(s[bdw]?)?)\b 1151 | name 1152 | keyword.operator.word.mnemonic.general-purpose.io 1153 | 1154 | 1155 | match 1156 | (?i)\b((st|cl)[cdi]|cmc|[ls]ahf|(push|pop)f[dq]?)\b 1157 | name 1158 | keyword.operator.word.mnemonic.general-purpose.flag-control 1159 | 1160 | 1161 | match 1162 | (?i)\b(l[defgs]s)\b 1163 | name 1164 | keyword.operator.word.mnemonic.general-purpose.segment-registers 1165 | 1166 | 1167 | match 1168 | (?i)\b(lea|nop|ud2?|xlatb?|cpuid|movbe)\b 1169 | name 1170 | keyword.operator.word.mnemonic.general-purpose.misc 1171 | 1172 | 1173 | match 1174 | (?i)\b(cl(flush(opt)?|demote|wb)|pcommit)\b 1175 | name 1176 | keyword.operator.word.mnemonic.general-purpose.cache-control 1177 | 1178 | 1179 | match 1180 | (?i)\b(rdrand|rdseed)\b 1181 | name 1182 | keyword.operator.word.mnemonic.general-purpose.rng 1183 | 1184 | 1185 | match 1186 | (?i)\b(andn|bextr|bls(i|r|msk)|bzhi|pdep|pext|[lt]zcnt|(mul|ror|sar|shl|shr)x)\b 1187 | name 1188 | keyword.operator.word.mnemonic.general-purpose.bmi 1189 | 1190 | 1191 | 1192 | mnemonics-intel-isa-keylocker 1193 | 1194 | patterns 1195 | 1196 | 1197 | match 1198 | (?i)\b(aes(enc|dec)(wide)?(128|256)kl|encodekey(128|256)|loadiwkey)\b 1199 | name 1200 | keyword.operator.word.mnemonic.keylocker 1201 | 1202 | 1203 | 1204 | mnemonics-intel-isa-xeon-phi 1205 | 1206 | patterns 1207 | 1208 | 1209 | match 1210 | (?i)\bv(4fn?(madd)[ps]s|p4dpwssds?)\b 1211 | name 1212 | keyword.operator.word.mnemonic.xeon-phi 1213 | 1214 | 1215 | 1216 | mnemonics-intel-manual-listing 1217 | 1218 | patterns 1219 | 1220 | 1221 | match 1222 | (?i)\bcvtt?pd1pi\b 1223 | name 1224 | keyword.operator.word.mnemonic.other.c 1225 | 1226 | 1227 | match 1228 | (?i)\bv?gf2p8(affine(inv)?q|mul)b\b 1229 | name 1230 | keyword.operator.word.mnemonic.other.g 1231 | 1232 | 1233 | match 1234 | (?i)\bhreset\b 1235 | name 1236 | keyword.operator.word.mnemonic.other.h 1237 | 1238 | 1239 | match 1240 | (?i)\bincssp[dq]\b 1241 | name 1242 | keyword.operator.word.mnemonic.other.i 1243 | 1244 | 1245 | match 1246 | (?i)\bmovdir(i|64b)\b 1247 | name 1248 | keyword.operator.word.mnemonic.other.m 1249 | 1250 | 1251 | match 1252 | (?i)\bp((abs|(max|min)[su]?|mull|sra)q|config|twrite)\b 1253 | name 1254 | keyword.operator.word.mnemonic.other.p 1255 | 1256 | 1257 | match 1258 | (?i)\brd(pid|ssp[dq])\b 1259 | name 1260 | keyword.operator.word.mnemonic.other.r 1261 | 1262 | 1263 | match 1264 | (?i)\bserialize\b 1265 | name 1266 | keyword.operator.word.mnemonic.other.s 1267 | 1268 | 1269 | match 1270 | (?i)\btpause\b 1271 | name 1272 | keyword.operator.word.mnemonic.other.t 1273 | 1274 | 1275 | match 1276 | (?i)\bu(monitor|mwait)\b 1277 | name 1278 | keyword.operator.word.mnemonic.other.u 1279 | 1280 | 1281 | match 1282 | (?i)\bvbroadcast[fi](32x[248]|64x[24])\b 1283 | name 1284 | keyword.operator.word.mnemonic.other.vb 1285 | 1286 | 1287 | match 1288 | (?i)\bv(compressw|cvtne2?ps2bf16)\b 1289 | name 1290 | keyword.operator.word.mnemonic.other.vc 1291 | 1292 | 1293 | match 1294 | (?i)\bvdpbf16ps\b 1295 | name 1296 | keyword.operator.word.mnemonic.other.vd 1297 | 1298 | 1299 | match 1300 | (?i)\bvextract[fi]32x8\b 1301 | name 1302 | keyword.operator.word.mnemonic.other.ve 1303 | 1304 | 1305 | match 1306 | (?i)\bv(insert([fi]32x8|i(32|64)x4))\b 1307 | name 1308 | keyword.operator.word.mnemonic.other.vi 1309 | 1310 | 1311 | match 1312 | (?i)\bv(maskmov|(max|min)sh)\b 1313 | name 1314 | keyword.operator.word.mnemonic.other.vm 1315 | 1316 | 1317 | match 1318 | (?i)\bvp((2intersect|andn?)[dq]|absq)\b 1319 | name 1320 | keyword.operator.word.mnemonic.other.vpa 1321 | 1322 | 1323 | match 1324 | (?i)\bvpbroadcasti32x4\b 1325 | name 1326 | keyword.operator.word.mnemonic.other.vpb 1327 | 1328 | 1329 | match 1330 | (?i)\bvpcompress[bw]\b 1331 | name 1332 | keyword.operator.word.mnemonic.other.vpc 1333 | 1334 | 1335 | match 1336 | (?i)\bvp(dp(bu|ws)sds?)\b 1337 | name 1338 | keyword.operator.word.mnemonic.other.vpd 1339 | 1340 | 1341 | match 1342 | (?i)\b(vperm(b|t2[bw])|vp(expand[bw]|extrtd))\b 1343 | name 1344 | keyword.operator.word.mnemonic.other.vpe 1345 | 1346 | 1347 | match 1348 | (?i)\bvp(madd52[hl]uq|mov(d(2m|[bw])|q[bdw]|wb)|mpov[bdqw]2m|multishiftqb)\b 1349 | name 1350 | keyword.operator.word.mnemonic.other.vpm 1351 | 1352 | 1353 | match 1354 | (?i)\b(vpopcnt[bdqw]|vpor[dq])\b 1355 | name 1356 | keyword.operator.word.mnemonic.other.vpo 1357 | 1358 | 1359 | match 1360 | (?i)\bvprorv[dq]\b 1361 | name 1362 | keyword.operator.word.mnemonic.other.vpr 1363 | 1364 | 1365 | match 1366 | (?i)\bvp(sh[lr]dv?[dqw]|shufbitqmb|shufps)\b 1367 | name 1368 | keyword.operator.word.mnemonic.other.vps 1369 | 1370 | 1371 | match 1372 | (?i)\bvpternlog[dq]\b 1373 | name 1374 | keyword.operator.word.mnemonic.other.vpt 1375 | 1376 | 1377 | match 1378 | (?i)\bvpxor[dq]\b 1379 | name 1380 | keyword.operator.word.mnemonic.other.vpx 1381 | 1382 | 1383 | match 1384 | (?i)\bv(scalef[ps][dhs]|scatter[dq]p[ds])\b 1385 | name 1386 | keyword.operator.word.mnemonic.other.vs 1387 | 1388 | 1389 | match 1390 | (?i)\b(wbnoinvd|wru?ss[dq])\b 1391 | name 1392 | keyword.operator.word.mnemonic.other.w 1393 | 1394 | 1395 | 1396 | mnemonics-invalid 1397 | 1398 | patterns 1399 | 1400 | 1401 | include 1402 | #mnemonics-invalid-amd-sse5 1403 | 1404 | 1405 | 1406 | mnemonics-invalid-amd-sse5 1407 | 1408 | patterns 1409 | 1410 | 1411 | match 1412 | (?i)\b(com[ps][ds]|pcomu?[bdqw])\b 1413 | name 1414 | invalid.keyword.operator.word.mnemonic.sse5.comparison 1415 | 1416 | 1417 | match 1418 | (?i)\b(cvtp(h2ps|s2ph)|frcz[ps][ds])\b 1419 | name 1420 | invalid.keyword.operator.word.mnemonic.sse5.conversion 1421 | 1422 | 1423 | match 1424 | (?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 1425 | name 1426 | invalid.keyword.operator.word.mnemonic.sse5.packed-arithmetic 1427 | 1428 | 1429 | match 1430 | (?i)\b(pcmov|permp[ds]|pperm|prot[bdqw]|psh[al][bdqw])\b 1431 | name 1432 | invalid.keyword.operator.word.mnemonic.sse5.simd-integer 1433 | 1434 | 1435 | 1436 | mnemonics-mmx 1437 | 1438 | patterns 1439 | 1440 | 1441 | match 1442 | (?i)\b(mov[dq])\b 1443 | name 1444 | keyword.operator.word.mnemonic.mmx.data-transfer 1445 | 1446 | 1447 | match 1448 | (?i)\b(pack(ssdw|[su]swb)|punpck[hl](bw|dq|wd))\b 1449 | name 1450 | keyword.operator.word.mnemonic.mmx.conversion 1451 | 1452 | 1453 | match 1454 | (?i)\b(p(((add|sub)(d|(u?s)?[bw]))|maddwd|mul[lh]w))\b 1455 | name 1456 | keyword.operator.word.mnemonic.mmx.packed-arithmetic 1457 | 1458 | 1459 | match 1460 | (?i)\b(pcmp((eq|gt)[bdw]))\b 1461 | name 1462 | keyword.operator.word.mnemonic.mmx.comparison 1463 | 1464 | 1465 | match 1466 | (?i)\b(pandn?|px?or)\b 1467 | name 1468 | keyword.operator.word.mnemonic.mmx.logical 1469 | 1470 | 1471 | match 1472 | (?i)\b(ps([rl]l[dwq]|raw|rad))\b 1473 | name 1474 | keyword.operator.word.mnemonic.mmx.shift-and-rotate 1475 | 1476 | 1477 | match 1478 | (?i)\b(emms)\b 1479 | name 1480 | keyword.operator.word.mnemonic.mmx.state-management 1481 | 1482 | 1483 | 1484 | mnemonics-mpx 1485 | 1486 | patterns 1487 | 1488 | 1489 | match 1490 | (?i)\b(bnd(mk|c[lnu]|mov|ldx|stx))\b 1491 | name 1492 | keyword.operator.word.mnemonic.mpx 1493 | 1494 | 1495 | 1496 | mnemonics-pseudo-ops 1497 | 1498 | patterns 1499 | 1500 | 1501 | match 1502 | (?i)\b(cmp(n?(eq|lt|le)|(un)?ord)[ps][ds])\b 1503 | name 1504 | keyword.operator.word.pseudo-mnemonic.sse2.compare 1505 | 1506 | 1507 | match 1508 | (?i)\b(v?pclmul([hl]q[hl]q|[hl]qh)dq)\b 1509 | name 1510 | keyword.operator.word.pseudo-mnemonic.avx.promoted.aes 1511 | 1512 | 1513 | match 1514 | (?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 1515 | name 1516 | keyword.operator.word.pseudo-mnemonic.avx.promoted.comparison 1517 | 1518 | 1519 | match 1520 | (?i)\bvp(cmpn?(eq|le|lt))\b 1521 | name 1522 | keyword.operator.word.pseudo-mnemonic.avx512.compare 1523 | 1524 | 1525 | match 1526 | (?i)\b(vpcom(n?eq|[gl][et]|false|true)(b|uw))\b 1527 | name 1528 | keyword.operator.word.pseudo-mnemonic.supplemental.amd.xop.simd 1529 | 1530 | 1531 | 1532 | mnemonics-sgx 1533 | 1534 | patterns 1535 | 1536 | 1537 | match 1538 | (?i)\bencl[su]\b 1539 | name 1540 | keyword.operator.word.mnemonic.sgx 1541 | 1542 | 1543 | match 1544 | (?i)\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\b 1545 | name 1546 | support.constant.sgx1.supervisor 1547 | 1548 | 1549 | match 1550 | (?i)\be(add|block|create|dbg(rd|wr)|extend|init|ld[bu]|pa|remove|track|wb)\b 1551 | name 1552 | support.constant.sgx1.supervisor 1553 | 1554 | 1555 | match 1556 | (?i)\be(enter|exit|getkey|report|resume)\b 1557 | name 1558 | support.constant.sgx1.user 1559 | 1560 | 1561 | match 1562 | (?i)\be(aug|mod(pr|t))\b 1563 | name 1564 | support.constant.sgx2.supervisor 1565 | 1566 | 1567 | match 1568 | (?i)\be(accept(copy)?|modpe)\b 1569 | name 1570 | support.constant.sgx2.user 1571 | 1572 | 1573 | 1574 | mnemonics-sha 1575 | 1576 | patterns 1577 | 1578 | 1579 | match 1580 | (?i)\b(sha(1rnds4|256rnds2|1nexte|(1|256)msg[12]))\b 1581 | name 1582 | keyword.operator.word.mnemonic.sha 1583 | 1584 | 1585 | 1586 | mnemonics-smx 1587 | 1588 | patterns 1589 | 1590 | 1591 | match 1592 | (?i)\b(getsec)\b 1593 | name 1594 | keyword.operator.word.mnemonic.smx.getsec 1595 | 1596 | 1597 | match 1598 | (?i)\b(capabilities|enteraccs|exitac|senter|sexit|parameters|smctrl|wakeup)\b 1599 | name 1600 | support.constant.smx 1601 | 1602 | 1603 | 1604 | mnemonics-sse 1605 | 1606 | patterns 1607 | 1608 | 1609 | match 1610 | (?i)\b(mov(([ahlu]|hl|lh|msk)ps|ss))\b 1611 | name 1612 | keyword.operator.word.mnemonic.sse.data-transfer 1613 | 1614 | 1615 | match 1616 | (?i)\b((add|div|max|min|mul|rcp|r?sqrt|sub)[ps]s)\b 1617 | name 1618 | keyword.operator.word.mnemonic.sse.packed-arithmetic 1619 | 1620 | 1621 | match 1622 | (?i)\b(cmp[ps]s|u?comiss)\b 1623 | name 1624 | keyword.operator.word.mnemonic.sse.comparison 1625 | 1626 | 1627 | match 1628 | (?i)\b((andn?|x?or)ps)\b 1629 | name 1630 | keyword.operator.word.mnemonic.sse.logical 1631 | 1632 | 1633 | match 1634 | (?i)\b((shuf|unpck[hl])ps)\b 1635 | name 1636 | keyword.operator.word.mnemonic.sse.shuffle-and-unpack 1637 | 1638 | 1639 | match 1640 | (?i)\b(cvt(pi2ps|si2ss|ps2pi|tps2pi|ss2si|tss2si))\b 1641 | name 1642 | keyword.operator.word.mnemonic.sse.conversion 1643 | 1644 | 1645 | match 1646 | (?i)\b((ld|st)mxcsr)\b 1647 | name 1648 | keyword.operator.word.mnemonic.sse.state-management 1649 | 1650 | 1651 | match 1652 | (?i)\b(p(avg[bw]|extrw|insrw|(max|min)(sw|ub)|sadbw|shufw|mulhuw|movmskb))\b 1653 | name 1654 | keyword.operator.word.mnemonic.sse.simd-integer 1655 | 1656 | 1657 | match 1658 | (?i)\b(maskmovq|movntps|sfence)\b 1659 | name 1660 | keyword.operator.word.mnemonic.sse.cacheability-control 1661 | 1662 | 1663 | match 1664 | (?i)\b(prefetch(nta|t[0-2]|w(t1)?))\b 1665 | name 1666 | keyword.operator.word.mnemonic.sse.prefetch 1667 | 1668 | 1669 | 1670 | mnemonics-sse2 1671 | 1672 | patterns 1673 | 1674 | 1675 | match 1676 | (?i)\b(mov([auhl]|msk)pd)\b 1677 | name 1678 | keyword.operator.word.mnemonic.sse2.data-transfer 1679 | 1680 | 1681 | match 1682 | (?i)\b((add|div|max|min|mul|sub|sqrt)[ps]d)\b 1683 | name 1684 | keyword.operator.word.mnemonic.sse2.packed-arithmetic 1685 | 1686 | 1687 | match 1688 | (?i)\b((andn?|x?or)pd)\b 1689 | name 1690 | keyword.operator.word.mnemonic.sse2.logical 1691 | 1692 | 1693 | match 1694 | (?i)\b((cmpp|u?comis)d)\b 1695 | name 1696 | keyword.operator.word.mnemonic.sse2.compare 1697 | 1698 | 1699 | match 1700 | (?i)\b((shuf|unpck[hl])pd)\b 1701 | name 1702 | keyword.operator.word.mnemonic.sse2.shuffle-and-unpack 1703 | 1704 | 1705 | match 1706 | (?i)\b(cvt(dq2pd|pi2pd|ps2pd|pd2ps|si2sd|sd2ss|ss2sd|t?(pd2dq|pd2pi|sd2si)))\b 1707 | name 1708 | keyword.operator.word.mnemonic.sse2.conversion 1709 | 1710 | 1711 | match 1712 | (?i)\b(cvt(dq2ps|ps2dq|tps2dq))\b 1713 | name 1714 | keyword.operator.word.mnemonic.sse2.packed-floating-point 1715 | 1716 | 1717 | match 1718 | (?i)\b(mov(dq[au]|q2dq|dq2q))\b 1719 | name 1720 | keyword.operator.word.mnemonic.sse2.simd-integer.mov 1721 | 1722 | 1723 | match 1724 | (?i)\b(p((add|sub|(s[lr]l|mulu|unpck[hl]q)d)q|shuf(d|[hl]w)))\b 1725 | name 1726 | keyword.operator.word.mnemonic.sse2.simd-integer.other 1727 | 1728 | 1729 | match 1730 | (?i)\b([lm]fence|pause|maskmovdqu|movnt(dq|i|pd))\b 1731 | name 1732 | keyword.operator.word.mnemonic.sse2.cacheability-control 1733 | 1734 | 1735 | 1736 | mnemonics-sse3 1737 | 1738 | patterns 1739 | 1740 | 1741 | match 1742 | (?i)\b(fisttp|lddqu|(addsub|h(add|sub))p[sd]|mov(sh|sl|d)dup|monitor|mwait)\b 1743 | name 1744 | keyword.operator.word.mnemonic.sse3 1745 | 1746 | 1747 | match 1748 | (?i)\b(ph(add|sub)(s?w|d))\b 1749 | name 1750 | keyword.operator.word.mnemonic.sse3.supplimental.horizontal-packed-arithmetic 1751 | 1752 | 1753 | match 1754 | (?i)\b(p((abs|sign)[bdw]|maddubsw|mulhrsw|shufb|alignr))\b 1755 | name 1756 | keyword.operator.word.mnemonic.sse3.supplimental.other 1757 | 1758 | 1759 | 1760 | mnemonics-sse4 1761 | 1762 | patterns 1763 | 1764 | 1765 | match 1766 | (?i)\b(pmul(ld|dq)|dpp[ds])\b 1767 | name 1768 | keyword.operator.word.mnemonic.sse4.1.arithmetic 1769 | 1770 | 1771 | match 1772 | (?i)\b(movntdqa)\b 1773 | name 1774 | keyword.operator.word.mnemonic.sse4.1.load-hint 1775 | 1776 | 1777 | match 1778 | (?i)\b(blendv?p[ds]|pblend(vb|w))\b 1779 | name 1780 | keyword.operator.word.mnemonic.sse4.1.packed-blending 1781 | 1782 | 1783 | match 1784 | (?i)\b(p(min|max)(u[dw]|s[bd]))\b 1785 | name 1786 | keyword.operator.word.mnemonic.sse4.1.packed-integer 1787 | 1788 | 1789 | match 1790 | (?i)\b(round[ps][sd])\b 1791 | name 1792 | keyword.operator.word.mnemonic.sse4.1.packed-floating-point 1793 | 1794 | 1795 | match 1796 | (?i)\b((extract|insert)ps|p((ins|ext)(r[bdq])))\b 1797 | name 1798 | keyword.operator.word.mnemonic.sse4.1.insertion-and-extraction 1799 | 1800 | 1801 | match 1802 | (?i)\b(pmov([sz]x(b[dqw]|dq|wd|wq)))\b 1803 | name 1804 | keyword.operator.word.mnemonic.sse4.1.conversion 1805 | 1806 | 1807 | match 1808 | (?i)\b(mpsadbw|phminposuw|ptest|pcmpeqq|packusdw)\b 1809 | name 1810 | keyword.operator.word.mnemonic.sse4.1.other 1811 | 1812 | 1813 | match 1814 | (?i)\b(pcmp([ei]str[im]|gtq))\b 1815 | name 1816 | keyword.operator.word.mnemonic.sse4.2 1817 | 1818 | 1819 | 1820 | mnemonics-supplemental-amd 1821 | 1822 | patterns 1823 | 1824 | 1825 | match 1826 | (?i)\b(bl([cs](fill|ic?|msk)|cs)|t1mskc|tzmsk)\b 1827 | name 1828 | keyword.operator.word.mnemonic.supplemental.amd.general-purpose 1829 | 1830 | 1831 | match 1832 | (?i)\b(clgi|int3|invlpga|iretw|skinit|stgi|vm(load|mcall|run|save)|monitorx|mwaitx)\b 1833 | name 1834 | keyword.operator.word.mnemonic.supplemental.amd.system 1835 | 1836 | 1837 | match 1838 | (?i)\b([ls]lwpcb|lwp(ins|val))\b 1839 | name 1840 | keyword.operator.word.mnemonic.supplemental.amd.profiling 1841 | 1842 | 1843 | match 1844 | (?i)\b(movnts[ds])\b 1845 | name 1846 | keyword.operator.word.mnemonic.supplemental.amd.memory-management 1847 | 1848 | 1849 | match 1850 | (?i)\b(prefetch|clzero)\b 1851 | name 1852 | keyword.operator.word.mnemonic.supplemental.amd.cache-management 1853 | 1854 | 1855 | match 1856 | (?i)\b((extr|insert)q)\b 1857 | name 1858 | keyword.operator.word.mnemonic.supplemental.amd.sse4.a 1859 | 1860 | 1861 | match 1862 | (?i)\b(vfn?m((add|sub)[ps][ds])|vfm((addsub|subadd)p[ds]))\b 1863 | name 1864 | keyword.operator.word.mnemonic.supplemental.amd.fma4 1865 | 1866 | 1867 | match 1868 | (?i)\b(vp(cmov|(comu?|rot|sh[al])[bdqw]|mac(s?s(d(d|q[hl])|w[dw]))|madcss?wd|perm))\b 1869 | name 1870 | keyword.operator.word.mnemonic.supplemental.amd.xop.simd 1871 | 1872 | 1873 | match 1874 | (?i)\b(vph(addu?(b[dqw]|w[dq]|dq)|sub(bw|dq|wd)))\b 1875 | name 1876 | keyword.operator.word.mnemonic.supplemental.amd.xop.simd-horizontal 1877 | 1878 | 1879 | match 1880 | (?i)\b(vfrcz[ps][ds]|vpermil2p[ds])\b 1881 | name 1882 | keyword.operator.word.mnemonic.supplemental.amd.xop.other 1883 | 1884 | 1885 | match 1886 | (?i)\b(femms)\b 1887 | name 1888 | keyword.operator.word.mnemonic.supplemental.amd.3dnow 1889 | 1890 | 1891 | match 1892 | (?i)\b(p(avgusb|(f2i|i2f)[dw]|mulhrw|swapd)|pf((p?n)?acc|add|max|min|mul|rcp(it[12])?|rsqit1|rsqrt|subr?))\b 1893 | name 1894 | keyword.operator.word.mnemonic.supplemental.amd.3dnow.simd 1895 | 1896 | 1897 | match 1898 | (?i)\b(pfcmp(eq|ge|gt))\b 1899 | name 1900 | keyword.operator.word.mnemonic.supplemental.amd.3dnow.comparison 1901 | 1902 | 1903 | 1904 | mnemonics-supplemental-cyrix 1905 | 1906 | patterns 1907 | 1908 | 1909 | match 1910 | (?i)\b((sv|rs)dc|(wr|rd)shr|paddsiw)\b 1911 | name 1912 | keyword.operator.word.mnemonic.supplemental.cyrix 1913 | 1914 | 1915 | 1916 | mnemonics-supplemental-via 1917 | 1918 | patterns 1919 | 1920 | 1921 | match 1922 | (?i)\b(montmul)\b 1923 | name 1924 | keyword.operator.word.mnemonic.supplemental.via 1925 | 1926 | 1927 | match 1928 | (?i)\b(x(store(rng)?|crypt(ecb|cbc|ctr|cfb|ofb)|sha(1|256)))\b 1929 | name 1930 | keyword.operator.word.mnemonic.supplemental.via.padlock 1931 | 1932 | 1933 | 1934 | mnemonics-system 1935 | 1936 | patterns 1937 | 1938 | 1939 | match 1940 | (?i)\b((cl|st)ac|[ls]([gli]dt|tr|msw)|clts|arpl|lar|lsl|ver[rw]|inv(d|lpg|pcid)|wbinvd)\b 1941 | name 1942 | keyword.operator.word.mnemonic.system 1943 | 1944 | 1945 | match 1946 | (?i)\b(lock|hlt|rsm|(rd|wr)(msr|pkru|[fg]sbase)|rd(pmc|tscp?)|sys(enter|exit))\b 1947 | name 1948 | keyword.operator.word.mnemonic.system 1949 | 1950 | 1951 | match 1952 | (?i)\b(x((save(c|opt|s)?|rstors?)(64)?|[gs]etbv))\b 1953 | name 1954 | keyword.operator.word.mnemonic.system 1955 | 1956 | 1957 | 1958 | mnemonics-tsx 1959 | 1960 | patterns 1961 | 1962 | 1963 | match 1964 | (?i)\b(x(abort|begin|end|test|(res|sus)ldtrk))\b 1965 | name 1966 | keyword.operator.word.mnemonic.tsx 1967 | 1968 | 1969 | 1970 | mnemonics-uirq 1971 | 1972 | patterns 1973 | 1974 | 1975 | match 1976 | (?i)\b((cl|st|test)ui|senduipi|uiret)\b 1977 | name 1978 | keyword.operator.word.mnemonic.uirq 1979 | 1980 | 1981 | 1982 | mnemonics-undocumented 1983 | 1984 | patterns 1985 | 1986 | 1987 | match 1988 | (?i)\b(ret[nf]|icebp|int1|int03|smi|ud1)\b 1989 | name 1990 | keyword.operator.word.mnemonic.undocumented 1991 | 1992 | 1993 | 1994 | mnemonics-vmx 1995 | 1996 | patterns 1997 | 1998 | 1999 | match 2000 | (?i)\b(vm(ptr(ld|st)|clear|read|write|launch|resume|xo(ff|n)|call|func)|inv(ept|vpid))\b 2001 | name 2002 | keyword.operator.word.mnemonic.vmx 2003 | 2004 | 2005 | 2006 | preprocessor 2007 | 2008 | patterns 2009 | 2010 | 2011 | begin 2012 | ^\s*[#%]\s*(error|warning)\b 2013 | captures 2014 | 2015 | 1 2016 | 2017 | name 2018 | keyword.control.import.error.c 2019 | 2020 | 2021 | end 2022 | $ 2023 | name 2024 | meta.preprocessor.diagnostic.c 2025 | patterns 2026 | 2027 | 2028 | match 2029 | (?>\\\s*\n) 2030 | name 2031 | punctuation.separator.continuation.c 2032 | 2033 | 2034 | 2035 | 2036 | begin 2037 | ^\s*[#%]\s*(include|import)\b\s+ 2038 | captures 2039 | 2040 | 1 2041 | 2042 | name 2043 | keyword.control.import.include.c 2044 | 2045 | 2046 | end 2047 | (?=(?://|/\*))|$ 2048 | name 2049 | meta.preprocessor.c.include 2050 | patterns 2051 | 2052 | 2053 | match 2054 | (?>\\\s*\n) 2055 | name 2056 | punctuation.separator.continuation.c 2057 | 2058 | 2059 | begin 2060 | " 2061 | beginCaptures 2062 | 2063 | 0 2064 | 2065 | name 2066 | punctuation.definition.string.begin.c 2067 | 2068 | 2069 | end 2070 | " 2071 | endCaptures 2072 | 2073 | 0 2074 | 2075 | name 2076 | punctuation.definition.string.end.c 2077 | 2078 | 2079 | name 2080 | string.quoted.double.include.c 2081 | 2082 | 2083 | begin 2084 | < 2085 | beginCaptures 2086 | 2087 | 0 2088 | 2089 | name 2090 | punctuation.definition.string.begin.c 2091 | 2092 | 2093 | end 2094 | > 2095 | endCaptures 2096 | 2097 | 0 2098 | 2099 | name 2100 | punctuation.definition.string.end.c 2101 | 2102 | 2103 | name 2104 | string.quoted.other.lt-gt.include.c 2105 | 2106 | 2107 | 2108 | 2109 | begin 2110 | ^\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 2111 | captures 2112 | 2113 | 1 2114 | 2115 | name 2116 | keyword.control.import.c 2117 | 2118 | 2119 | end 2120 | (?=(?://|/\*))|$ 2121 | name 2122 | meta.preprocessor.c 2123 | patterns 2124 | 2125 | 2126 | match 2127 | (?>\\\s*\n) 2128 | name 2129 | punctuation.separator.continuation.c 2130 | 2131 | 2132 | include 2133 | #preprocessor-functions 2134 | 2135 | 2136 | 2137 | 2138 | begin 2139 | ^\s*[#%]\s*(assign|strlen|substr|(end|exit)?rep|push|pop|rotate|use|ifusing|ifusable|def(?:ailas|str|tok)|undef(?:alias)?)\b 2140 | captures 2141 | 2142 | 1 2143 | 2144 | name 2145 | keyword.control 2146 | 2147 | 2148 | end 2149 | $ 2150 | name 2151 | meta.preprocessor.nasm 2152 | patterns 2153 | 2154 | 2155 | match 2156 | (?>\\\s*\n) 2157 | name 2158 | punctuation.separator.continuation.c 2159 | 2160 | 2161 | include 2162 | #preprocessor-functions 2163 | 2164 | 2165 | 2166 | 2167 | 2168 | preprocessor-functions 2169 | 2170 | patterns 2171 | 2172 | 2173 | begin 2174 | ((%)(?:(abs|cond|count|eval|isn?(?:def|macro|ctx|idni?|id|num|str|token|empty|env)?|num|sel|str(?:cat|len)?|substr|tok)\s*(\())) 2175 | captures 2176 | 2177 | 3 2178 | 2179 | name 2180 | support.function.preprocessor.asm.x86_64 2181 | 2182 | 2183 | end 2184 | (\))|$ 2185 | name 2186 | meta.preprocessor.function.asm.x86_64 2187 | patterns 2188 | 2189 | 2190 | include 2191 | #preprocessor-functions 2192 | 2193 | 2194 | 2195 | 2196 | 2197 | registers 2198 | 2199 | patterns 2200 | 2201 | 2202 | match 2203 | (?i)\b(?:[abcd][hl]|[er]?[abcd]x|[er]?(?:di|si|bp|sp)|dil|sil|bpl|spl|r(?:8|9|1[0-5])[bdlw]?)\b 2204 | name 2205 | constant.language.register.general-purpose.asm.x86_64 2206 | 2207 | 2208 | match 2209 | (?i)\b(?:[cdefgs]s)\b 2210 | name 2211 | constant.language.register.segment.asm.x86_64 2212 | 2213 | 2214 | match 2215 | (?i)\b(?:[er]?flags)\b 2216 | name 2217 | constant.language.register.flags.asm.x86_64 2218 | 2219 | 2220 | match 2221 | (?i)\b(?:[er]?ip)\b 2222 | name 2223 | constant.language.register.instruction-pointer.asm.x86_64 2224 | 2225 | 2226 | match 2227 | (?i)\b(?:cr[02-4])\b 2228 | name 2229 | constant.language.register.control.asm.x86_64 2230 | 2231 | 2232 | match 2233 | (?i)\b(?:(?:mm|st|fpr)[0-7])\b 2234 | name 2235 | constant.language.register.mmx.asm.x86_64 2236 | 2237 | 2238 | match 2239 | (?i)\b(?:[xy]mm(?:[0-9]|1[0-5])|mxcsr)\b 2240 | name 2241 | constant.language.register.sse_avx.asm.x86_64 2242 | 2243 | 2244 | match 2245 | (?i)\b(?:zmm(?:[12]?[0-9]|30|31))\b 2246 | name 2247 | constant.language.register.avx512.asm.x86_64 2248 | 2249 | 2250 | match 2251 | (?i)\b(?:bnd(?:[0-3]|cfg[su]|status))\b 2252 | name 2253 | constant.language.register.memory-protection.asm.x86_64 2254 | 2255 | 2256 | match 2257 | (?i)\b(?:(?:[gil]dt)r?|tr)\b 2258 | name 2259 | constant.language.register.system-table-pointer.asm.x86_64 2260 | 2261 | 2262 | match 2263 | (?i)\b(?:dr[0-367])\b 2264 | name 2265 | constant.language.register.debug.asm.x86_64 2266 | 2267 | 2268 | match 2269 | (?i)\b(?:cr8|dr(?:[89]|1[0-5])|efer|tpr|syscfg)\b 2270 | name 2271 | constant.language.register.amd.asm.x86_64 2272 | 2273 | 2274 | match 2275 | (?i)\b(?:db[0-367]|t[67]|tr[3-7]|st)\b 2276 | name 2277 | invalid.deprecated.constant.language.register.asm.x86_64 2278 | 2279 | 2280 | match 2281 | (?i)\b[xy]mm(?:1[6-9]|2[0-9]|3[01])\b 2282 | name 2283 | constant.language.register.general-purpose.alias.asm.x86_64 2284 | 2285 | 2286 | 2287 | strings 2288 | 2289 | patterns 2290 | 2291 | 2292 | begin 2293 | " 2294 | beginCaptures 2295 | 2296 | 0 2297 | 2298 | name 2299 | punctuation.definition.string.begin.asm 2300 | 2301 | 2302 | end 2303 | " 2304 | endCaptures 2305 | 2306 | 0 2307 | 2308 | name 2309 | punctuation.definition.string.end.asm 2310 | 2311 | 2312 | name 2313 | string.quoted.double.asm 2314 | patterns 2315 | 2316 | 2317 | include 2318 | #string_escaped_char 2319 | 2320 | 2321 | include 2322 | #string_placeholder 2323 | 2324 | 2325 | 2326 | 2327 | begin 2328 | ' 2329 | beginCaptures 2330 | 2331 | 0 2332 | 2333 | name 2334 | punctuation.definition.string.begin.asm 2335 | 2336 | 2337 | end 2338 | ' 2339 | endCaptures 2340 | 2341 | 0 2342 | 2343 | name 2344 | punctuation.definition.string.end.asm 2345 | 2346 | 2347 | name 2348 | string.quoted.single.asm 2349 | patterns 2350 | 2351 | 2352 | include 2353 | #string_escaped_char 2354 | 2355 | 2356 | include 2357 | #string_placeholder 2358 | 2359 | 2360 | 2361 | 2362 | begin 2363 | ` 2364 | beginCaptures 2365 | 2366 | 0 2367 | 2368 | name 2369 | punctuation.definition.string.begin.asm 2370 | 2371 | 2372 | end 2373 | ` 2374 | endCaptures 2375 | 2376 | 0 2377 | 2378 | name 2379 | punctuation.definition.string.end.asm 2380 | 2381 | 2382 | name 2383 | string.quoted.backquote.asm 2384 | patterns 2385 | 2386 | 2387 | include 2388 | #string_escaped_char 2389 | 2390 | 2391 | include 2392 | #string_placeholder 2393 | 2394 | 2395 | 2396 | 2397 | 2398 | support 2399 | 2400 | patterns 2401 | 2402 | 2403 | match 2404 | (?i)\b(?:s?byte|(?:[doqtyz]|dq|s[dq]?)?word|(?:d|res)[bdoqtwyz]|ddq)\b 2405 | name 2406 | storage.type.asm.x86_64 2407 | 2408 | 2409 | match 2410 | (?i)\b(?:incbin|equ|times|dup)\b 2411 | name 2412 | support.function.asm.x86_64 2413 | 2414 | 2415 | match 2416 | (?i)\b(?:strict|nosplit|near|far|abs|rel)\b 2417 | name 2418 | storage.modifier.asm.x86_64 2419 | 2420 | 2421 | match 2422 | (?i)\b(?:[ao](?:16|32|64))\b 2423 | name 2424 | storage.modifier.prefix.asm.x86_64 2425 | 2426 | 2427 | match 2428 | (?i)\b(?:rep(?:n?[ez])?|lock|xacquire|xrelease|(?:no)?bnd)\b 2429 | name 2430 | storage.modifier.prefix.asm.x86_64 2431 | 2432 | 2433 | captures 2434 | 2435 | 1 2436 | 2437 | name 2438 | storage.modifier.prefix.vex.asm.x86_64 2439 | 2440 | 2441 | match 2442 | {(vex[23]?|evex|rex)} 2443 | 2444 | 2445 | captures 2446 | 2447 | 1 2448 | 2449 | name 2450 | storage.modifier.opmask.asm.x86_64 2451 | 2452 | 2453 | match 2454 | {(k[1-7])} 2455 | 2456 | 2457 | captures 2458 | 2459 | 1 2460 | 2461 | name 2462 | storage.modifier.precision.asm.x86_64 2463 | 2464 | 2465 | match 2466 | {(1to(?:8|16))} 2467 | 2468 | 2469 | captures 2470 | 2471 | 1 2472 | 2473 | name 2474 | storage.modifier.rounding.asm.x86_64 2475 | 2476 | 2477 | match 2478 | {(z|(?:r[nudz]-)?sae)} 2479 | 2480 | 2481 | match 2482 | \.\.(?:start|imagebase|tlvp|got(?:pc(?:rel)?|(?:tp)?off)?|plt|sym|tlsie)\b 2483 | name 2484 | support.constant.asm.x86_64 2485 | 2486 | 2487 | match 2488 | \b__\?(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)\?__\b 2489 | name 2490 | support.function.asm.x86_64 2491 | 2492 | 2493 | match 2494 | \b__(?:utf(?:(?:16|32)(?:[lb]e)?)|float(?:8|16|32|64|80[me]|128[lh])|bfloat16|Infinity|[QS]?NaN)__\b 2495 | name 2496 | support.function.legacy.asm.x86_64 2497 | 2498 | 2499 | match 2500 | \b__\?NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)\?__\b 2501 | name 2502 | support.function.asm.x86_64 2503 | 2504 | 2505 | match 2506 | \b___\?NASM_PATCHLEVEL\?__\b 2507 | name 2508 | support.function.asm.x86_64 2509 | 2510 | 2511 | match 2512 | \b__\?(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)\?__\b 2513 | name 2514 | support.function.asm.x86_64 2515 | 2516 | 2517 | match 2518 | \b__\?(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)\?__\b 2519 | name 2520 | support.function.asm.x86_64 2521 | 2522 | 2523 | match 2524 | \b__\?USE_(?:\w+)\?__\b 2525 | name 2526 | support.function.asm.x86_64 2527 | 2528 | 2529 | match 2530 | \b__\?PASS\?__\b 2531 | name 2532 | invalid.deprecated.support.constant.altreg.asm.x86_64 2533 | 2534 | 2535 | match 2536 | \b__\?ALIGNMODE\?__\b 2537 | name 2538 | support.constant.smartalign.asm.x86_64 2539 | 2540 | 2541 | match 2542 | \b__\?ALIGN_(\w+)\?__\b 2543 | name 2544 | support.function.smartalign.asm.x86_64 2545 | 2546 | 2547 | match 2548 | \b__NASM_(?:MAJOR|(?:SUB)?MINOR|SNAPSHOT|VER(?:SION_ID)?)__\b 2549 | name 2550 | support.function.asm.x86_64 2551 | 2552 | 2553 | match 2554 | \b___NASM_PATCHLEVEL__\b 2555 | name 2556 | support.function.asm.x86_64 2557 | 2558 | 2559 | match 2560 | \b__(?:FILE|LINE|BITS|OUTPUT_FORMAT|DEBUG_FORMAT)__\b 2561 | name 2562 | support.function.asm.x86_64 2563 | 2564 | 2565 | match 2566 | \b__(?:(?:UTC_)?(?:DATE|TIME)(?:_NUM)?|POSIX_TIME)__\b 2567 | name 2568 | support.function.asm.x86_64 2569 | 2570 | 2571 | match 2572 | \b__USE_(?:\w+)__\b 2573 | name 2574 | support.function.asm.x86_64 2575 | 2576 | 2577 | match 2578 | \b__PASS__\b 2579 | name 2580 | invalid.deprecated.support.constant.altreg.asm.x86_64 2581 | 2582 | 2583 | match 2584 | \b__ALIGNMODE__\b 2585 | name 2586 | support.constant.smartalign.asm.x86_64 2587 | 2588 | 2589 | match 2590 | \b__ALIGN_(\w+)__\b 2591 | name 2592 | support.function.smartalign.asm.x86_64 2593 | 2594 | 2595 | match 2596 | \b(?:Inf|[QS]?NaN)\b 2597 | name 2598 | support.constant.fp.asm.x86_64 2599 | 2600 | 2601 | match 2602 | \b(?:float(?:8|16|32|64|80[me]|128[lh]))\b 2603 | name 2604 | support.function.fp.asm.x86_64 2605 | 2606 | 2607 | match 2608 | (?i)\bilog2(?:[ewfc]|[fc]w)?\b 2609 | name 2610 | support.function.ifunc.asm.x86_64 2611 | 2612 | 2613 | 2614 | 2615 | scopeName 2616 | source.asm.x86_64 2617 | uuid 2618 | 05d6565d-991a-4e88-8e28-63bb21197f32 2619 | 2620 | 2621 | --------------------------------------------------------------------------------