@ 261105.1

191030.2.1.3 · ab639e1b7412fa09f5302cf3cfcfbabef883cf6b

EditorConfig: Lua

Enforce consistent code styles for all Lua files (.lua, .lang, .theme):

* Indent: 2 spaces.
* Trim trailing whitespace.
* Insert final new line.
* UTF-8 encoding.

Manually fix all scripts that didn't pass EClint validation (256 files).

reading declarations

Changes to langDefs/fasm.lang. All files

langDefs/fasm.lang

@@ -1,13 +1,13 @@ --[[ "fasm.lang"-******************************************************************************-*                                                                            *-*                           Flat Assembler (FASM)                            *-*                                                                            *-*                            Language Definition                             *-*                                                                            *-*                             v1.1 - 2017/03/14                              *-*                                                                            *-******************************************************************************+********************************************************************************+*                                                                              *+*                            Flat Assembler (FASM)                             *+*                                                                              *+*                             Language Definition                              *+*                                                                              *+*                              v1.1 - 2017/03/14                               *+*                                                                              *+******************************************************************************** Flat assembler v1.71.60 language definition for Highlight v3.35. Associated file extensions: ".ASM" | ".INC" @@ -17,10 +17,10 @@ Written by Tristano Ajmone:  Released into the public domain according to the Unlicense license:     http://unlicense.org-------------------------------------------------------------------------------+-------------------------------------------------------------------------------- Project repository:     https://github.com/tajmone/fasm-highlighting- ------------------------------------------------------------------------------+-------------------------------------------------------------------------------- Syntax tokens were extracted directly from FASM source file "SOURCE/TABLES.INC" of the MS Windows FASM package ('fasmw17160.zip'); thus ensuring that only FASM- supported token are highlighted. A few tokens were manualy added (see Notes).@@ -35,9 +35,9 @@ and complicated maintainance, so for now I rather opted to keep a long lists.  I've tested the syntax file to a good extent, and it seems to work well, but there might still be edge cases which need fixing (for eg: see #C,D).--------------------------------------------------------------------------------                                   CREDITS-------------------------------------------------------------------------------+--------------------------------------------------------------------------------+                                  CREDITS+-------------------------------------------------------------------------------- My gratitude to André Simon and Tomasz Grysztar for their patience and kind support to all my enquiries. @@ -62,14 +62,14 @@ Sublime FASM-x86 -- Sublime Text 2 package, by René Köcher, based on                     Leonardo Gago's" Assembly-x86" package:     https://github.com/Shirk/Sublime-FASM-x86     https://github.com/ljgago/Assembly-x86-------------------------------------------------------------------------------+-------------------------------------------------------------------------------- FLAT ASSEMBLER -- (C) 1999, Tomasz Grysztar, licensed under simplified BSD                   with a weak copyleft clause:     https://flatassembler.net-------------------------------------------------------------------------------+-------------------------------------------------------------------------------- HIGHLIGHT      -- (C) 2002, André Simon, licensed under GNU-GPL3:     http://www.andre-simon.de-------------------------------------------------------------------------------+-------------------------------------------------------------------------------- ]]  Description="fasm"@@ -101,15 +101,15 @@ Digits=[[ (?x)          # ============ DECIMAL ============         | (?<!\$)\b[0-9_']+[dD]?\b(?!\$)-       ]]+      ]]  Operators=[=[[+-/*=<>()[\]{}:,|&~#`;\\]]=]  Comments={-   { Block=false,-     Nested=false,-     Delimiter = { [[ ; ]] }-   }+  { Block=false,+    Nested=false,+    Delimiter = { [[ ; ]] }+  } }  Strings={@@ -127,24 +127,24 @@ Keywords={     "sil", "si", "esi", "rsi",  -- Source Indexes (8, 16, 32, 64 bit)     "dil", "di", "edi", "rdi",  -- Destination Indexes (8, 16, 32, 64 bit)     -- 8-bit registers-     "al",    "ah",   "bl",     "bh",    "cl",    "ch",    "dl",    "dh",-     "r8b",   "r9b",  "r10b",   "r11b",  "r12b",  "r13b",  "r14b",  "r15b",-     "r8l",   "r9l",  "r10l",   "r11l",  "r12l",  "r13l",  "r14l",  "r15l",+    "al",    "ah",   "bl",     "bh",    "cl",    "ch",    "dl",    "dh",+    "r8b",   "r9b",  "r10b",   "r11b",  "r12b",  "r13b",  "r14b",  "r15b",+    "r8l",   "r9l",  "r10l",   "r11l",  "r12l",  "r13l",  "r14l",  "r15l",     -- 16-bit registers-     "ax",    "bx",   "cx",     "dx",-     "r8w",   "r9w",  "r10w",   "r11w",  "r12w",  "r13w",  "r14w",  "r15w",+    "ax",    "bx",   "cx",     "dx",+    "r8w",   "r9w",  "r10w",   "r11w",  "r12w",  "r13w",  "r14w",  "r15w",     -- 32-bit registers-     "r8d",   "r9d",  "r10d",   "r11d",  "r12d",  "r13d",  "r14d",  "r15d",-     "eax",   "ebx",  "ecx",    "edx",+    "r8d",   "r9d",  "r10d",   "r11d",  "r12d",  "r13d",  "r14d",  "r15d",+    "eax",   "ebx",  "ecx",    "edx",     -- 64-bit registers-     "rax",   "rbx",  "rcx",    "rdx",-     "r8",    "r9",   "r10",    "r11",   "r12",   "r13",   "r14",   "r15",+    "rax",   "rbx",  "rcx",    "rdx",+    "r8",    "r9",   "r10",    "r11",   "r12",   "r13",   "r14",   "r15",     -- Segment registers-     "cs",    "ds",    "es",    "fs",    "gs",    "ss",+    "cs",    "ds",    "es",    "fs",    "gs",    "ss",     -- Floating point stack registers-     "st",    "st0",   "st1",   "st2",   "st3",   "st4",   "st5",   "st6",   "st7",+    "st",    "st0",   "st1",   "st2",   "st3",   "st4",   "st5",   "st6",   "st7",     -- MMX Registers (64-bit)-     "mm0",   "mm1",   "mm2",   "mm3",   "mm4",   "mm5",   "mm6",   "mm7",+    "mm0",   "mm1",   "mm2",   "mm3",   "mm4",   "mm5",   "mm6",   "mm7",     -- SSE registers (128-bit)     "xmm0",  "xmm1",  "xmm2",  "xmm3",  "xmm4",  "xmm5",  "xmm6",  "xmm7",  "xmm8",  "xmm9",     "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15", "xmm16", "xmm17", "xmm18", "xmm19",@@ -165,449 +165,449 @@ Keywords={     -- Bound (MPX) register     "bnd0", "bnd1", "bnd2", "bnd3",     -- Special registers-    "cr0", "cr1",  "cr2",  "cr3",  "cr4",  "cr8",         -- Control registers-           "cr5",  "cr6",  "cr7",  "cr9",  "cr10",-           "cr11", "cr12", "cr13", "cr14", "cr15",-    "dr0", "dr1",  "dr2",  "dr3", " dr8",                 -- Debug registers-           "dr4",  "dr5",  "dr6", " dr7",  "dr9", "dr10",-           "dr11", "dr12", "dr13", "dr14", "dr15",-    "tr3", "tr4", "tr5", "tr6", "tr7",                    -- Test registers-           "tr0", "tr1", "tr2",+    "cr0",  "cr1",  "cr2",  "cr3",  "cr4",  "cr8",          -- Control registers+            "cr5",  "cr6",  "cr7",  "cr9",  "cr10",+            "cr11", "cr12", "cr13", "cr14", "cr15",+    "dr0",  "dr1",  "dr2",  "dr3", " dr8",                    -- Debug registers+            "dr4",  "dr5",  "dr6", " dr7",  "dr9", "dr10",+            "dr11", "dr12", "dr13", "dr14", "dr15",+    "tr3",  "tr4",  "tr5",  "tr6",  "tr7",                     -- Test registers+            "tr0",  "tr1",  "tr2",       },     },   { Id=2, -- =========================== INSTRUCTIONS ===========================     List={     -- Operators-       "and", "mod", "or", "shl", "shr", "xor",-       "bsf", "bsr", "not", "plt", "rva",       -- Single operand operators+      "and", "mod", "or", "shl", "shr", "xor",+      "bsf", "bsr", "not", "plt", "rva",       -- Single operand operators      -- Uncategorized-       "aad", "aam", "adc", "adcx", "add", "addsubps", "adox", "align", "and", "andn",-       "arpl", "assert", "bextr", "blcfill", "blci", "blcic", "blcmsk", "blcs", "blsfill",-       "blsi", "blsic", "blsmsk", "blsr", "bnd", "bndcl", "bndcn", "bndcu", "bndldx",-       "bndmk", "bndmov", "bndstx", "bound", "break", "bsf", "bsr", "bswap", "bt", "btc",-       "btr", "bts", "bzhi", "call", "clac", "clc", "cld", "clflush", "clflushopt", "clgi",-       "cli", "clts", "clwb", "cmc", "cmova", "cmovae", "cmovb", "cmovbe", "cmovc", "cmove",-       "cmovg", "cmovge", "cmovl", "cmovle", "cmovna", "cmovnae", "cmovnb", "cmovnbe",-       "cmovnc", "cmovne", "cmovng", "cmovnge", "cmovnl", "cmovnle", "cmovno", "cmovnp",-       "cmovns", "cmovnz", "cmovo", "cmovp", "cmovpe", "cmovpo", "cmovs", "cmovz", "cmp",-       "cmpeqpd", "cmpeqps", "cmpeqsd", "cmpeqss", "cmplepd", "cmpleps", "cmplesd",-       "cmpless", "cmpltpd", "cmpltps", "cmpltsd", "cmpltss", "cmpneqpd", "cmpneqps",-       "cmpneqsd", "cmpneqss", "cmpnlepd", "cmpnleps", "cmpnlesd", "cmpnless", "cmpnltpd",-       "cmpnltps", "cmpnltsd", "cmpnltss", "cmpordpd", "cmpordps", "cmpordsd", "cmpordss",-       "cmppd", "cmpps", "cmps", "cmpsb", "cmpsd", "cmpss", "cmpunordpd", "cmpunordps",-       "cmpunordsd", "cmpunordss", "cmpxchg", "cmpxchg16b", "cmpxchg8b", "comisd", "comiss",-       "cpuid", "crc32", "cvtdq2pd", "cvtpd2dq", "cvtpd2pi", "cvtpi2pd", "cvtpi2ps",-       "cvtps2pd", "cvtps2pi", "cvtsd2si", "cvtsi2sd", "cvtsi2ss", "cvtss2si", "cvttpd2pi",-       "cvttps2dq", "cvttps2pi", "cvttsd2si", "cvttss2si", "data", "dec", "display", "div",-       "else", "emms", "end", "enter", "entry", "err", "extractps", "extrn", "extrq",-       "f2xm1", "fabs", "fadd", "faddp", "fbld", "fbstp", "fchs", "fclex", "fcmovb",-       "fcmovbe", "fcmove", "fcmovnb", "fcmovnbe", "fcmovne", "fcmovnu", "fcmovu", "fcom",-       "fcomi", "fcomip", "fcomp", "fcompp", "fcos", "fdecstp", "fdisi", "fdiv", "fdivp",-       "fdivr", "fdivrp", "femms", "feni", "ffree", "ffreep", "fiadd", "ficom", "ficomp",-       "fidiv", "fidivr", "fild", "fimul", "fincstp", "finit", "fist", "fistp", "fisttp",-       "fisub", "fisubr", "fld", "fld1", "fldcw", "fldenv", "fldl2e", "fldl2t", "fldlg2",-       "fldln2", "fldpi", "fldz", "fmul", "fmulp", "fnclex", "fndisi", "fneni", "fninit",-       "fnop", "fnsave", "fnstcw", "fnstenv", "fnstsw", "format", "fpatan", "fprem",-       "fprem1", "fptan", "frndint", "frstor", "frstpm", "fsave", "fscale", "fsetpm",-       "fsin", "fsincos", "fsqrt", "fst", "fstcw", "fstenv", "fstp", "fstsw", "fsub",-       "fsubp", "fsubr", "fsubrp", "ftst", "fucom", "fucomi", "fucomip", "fucomp",-       "fucompp", "fwait", "fxam", "fxch", "fxrstor", "fxsave", "fxtract", "fyl2x",-       "fyl2xp1", "getsec", "haddps", "heap", "hlt", "hsubps", "icebp", "idiv", "if",-       "imul", "in", "inc", "ins", "insb", "insertps", "insertq", "int", "int1", "int3",-       "invd", "invlpg", "invlpga", "iret", "ja", "jae", "jb", "jbe", "jc", "je", "jg",-       "jge", "jl", "jle", "jmp", "jna", "jnae", "jnb", "jnbe", "jnc", "jne", "jng", "jnge",-       "jnl", "jnle", "jno", "jnp", "jns", "jnz", "jo", "jp", "jpe", "jpo", "js", "jz",-       "kaddb", "kaddd", "kaddq", "kaddw", "kandb", "kandd", "kandnb", "kandnd", "kandnq",-       "kandnw", "kandq", "kandw", "kmovb", "kmovd", "kmovq", "kmovw", "knotb", "knotd",-       "knotq", "knotw", "korb", "kord", "korq", "kortestb", "kortestd", "kortestq",-       "kortestw", "korw", "kshiftlb", "kshiftld", "kshiftlq", "kshiftlw", "kshiftrb",-       "kshiftrd", "kshiftrq", "kshiftrw", "ktestb", "ktestd", "ktestq", "ktestw",-       "kunpckbw", "kunpckdq", "kunpckwd", "kxnorb", "kxnord", "kxnorq", "kxnorw", "kxorb",-       "kxord", "kxorq", "kxorw", "label", "lahf", "lar", "lddqu", "ldmxcsr", "lds", "lea",-       "leave", "les", "lfence", "lfs", "lgdt", "lgs", "lidt", "lldt", "llwpcb", "lmsw",-       "load", "loadall286", "loadall386", "lock", "lods", "lodsb", "loop", "loope",-       "loopne", "loopnz", "loopz", "lsl", "lss", "ltr", "lwpins", "lwpval", "lzcnt",-       "maskmovdqu", "maskmovq", "mfence", "monitor", "mov", "movapd", "movaps", "movbe",-       "movd", "movdq2q", "movdqa", "movdqu", "movhlps", "movhpd", "movhps", "movlhps",-       "movlpd", "movlps", "movmskpd", "movmskps", "movntdq", "movntdqa", "movnti",-       "movntpd", "movntps", "movntq", "movntsd", "movntss", "movq", "movq2dq", "movs",-       "movsb", "movsd", "movshdup", "movsldup", "movss", "movsx", "movsxd", "movupd",-       "movups", "movzx", "mul", "mulx", "mwait", "neg", "nop", "not", "or", "org", "out",-       "outs", "outsb", "palignr", "pause", "pclmulhqhdq", "pclmulhqhqdq", "pclmulhqlqdq",-       "pclmullqhdq", "pclmullqhqdq", "pclmullqlqdq", "pclmulqdq", "pcommit", "pdep",-       "pext", "pextrb", "pextrd", "pextrq", "pextrw", "pinsrb", "pinsrd", "pinsrq",-       "pinsrw", "pmovmskb", "pmovsxbd", "pmovsxbq", "pmovsxbw", "pmovsxdq", "pmovsxwd",-       "pmovsxwq", "pmovzxbd", "pmovzxbq", "pmovzxbw", "pmovzxdq", "pmovzxwd", "pmovzxwq",-       "pop", "popcnt", "popd", "popf", "popq", "popw", "prefetch", "prefetchnta",-       "prefetcht0", "prefetcht1", "prefetcht2", "prefetchw", "prefetchwt1", "pshufd",-       "pshufhw", "pshuflw", "pshufw", "pslldq", "psrldq", "public", "push", "pushd",-       "pushf", "pushq", "pushw", "rcl", "rcr", "rdfsbase", "rdgsbase", "rdmsr", "rdpkru",-       "rdpmc", "rdrand", "rdseed", "rdtsc", "rdtscp", "rep", "repe", "repeat", "repne",-       "repnz", "repz", "ret", "retf", "retn", "rol", "ror", "rorx", "rsm", "sahf", "sal",-       "sar", "sarx", "sbb", "scas", "scasb", "section", "segment", "seta", "setae", "setb",-       "setbe", "setc", "sete", "setg", "setge", "setl", "setle", "setna", "setnae",-       "setnb", "setnbe", "setnc", "setne", "setng", "setnge", "setnl", "setnle", "setno",-       "setnp", "setns", "setnz", "seto", "setp", "setpe", "setpo", "sets", "setz",-       "sfence", "sgdt", "shl", "shld", "shlx", "shr", "shrd", "shrx", "sidt", "skinit",-       "sldt", "slwpcb", "smsw", "stac", "stack", "stc", "std", "stgi", "sti", "stmxcsr",-       "store", "stos", "stosb", "str", "sub", "swapgs", "syscall", "sysenter", "sysexit",-       "sysret", "t1mskc", "test", "times", "tzcnt", "tzmsk", "ucomisd", "ucomiss", "ud2",-       "useavx256", "useavx512", "verr", "verw", "vgatherdpd", "vgatherdps", "vgatherpf0dpd",-       "vgatherpf0dps", "vgatherpf0qpd", "vgatherpf0qps", "vgatherpf1dpd", "vgatherpf1dps",-       "vgatherpf1qpd", "vgatherpf1qps", "vgatherqpd", "vgatherqps", "virtual", "vldmxcsr",-       "vmcall", "vmfunc", "vmlaunch", "vmload", "vmmcall", "vmresume", "vmrun", "vmsave",-       "vmxoff", "vpcmov", "vpermil2pd", "vpermil2ps", "vpermilmo2pd", "vpermilmo2ps",-       "vpermilmz2pd", "vpermilmz2ps", "vpermiltd2pd", "vpermiltd2ps", "vpgatherdd",-       "vpgatherdq", "vpgatherqd", "vpgatherqq", "vpscatterdd", "vpscatterdq", "vpscatterqd",-       "vpscatterqq", "vscatterdpd", "vscatterdps", "vscatterpf0dpd", "vscatterpf0dps",-       "vscatterpf0qpd", "vscatterpf0qps", "vscatterpf1dpd", "vscatterpf1dps",-       "vscatterpf1qpd", "vscatterpf1qps", "vscatterqpd", "vscatterqps", "vstmxcsr",-       "vzeroall", "vzeroupper", "wait", "wbinvd", "while", "wrfsbase", "wrgsbase", "wrmsr",-       "wrpkru", "xabort", "xacquire", "xadd", "xbegin", "xchg", "xend", "xgetbv", "xlat",-       "xlatb", "xor", "xrelease", "xrstor", "xsave", "xsaveopt", "xsetbv", "xtest",+      "aad", "aam", "adc", "adcx", "add", "addsubps", "adox", "align", "and", "andn",+      "arpl", "assert", "bextr", "blcfill", "blci", "blcic", "blcmsk", "blcs", "blsfill",+      "blsi", "blsic", "blsmsk", "blsr", "bnd", "bndcl", "bndcn", "bndcu", "bndldx",+      "bndmk", "bndmov", "bndstx", "bound", "break", "bsf", "bsr", "bswap", "bt", "btc",+      "btr", "bts", "bzhi", "call", "clac", "clc", "cld", "clflush", "clflushopt", "clgi",+      "cli", "clts", "clwb", "cmc", "cmova", "cmovae", "cmovb", "cmovbe", "cmovc", "cmove",+      "cmovg", "cmovge", "cmovl", "cmovle", "cmovna", "cmovnae", "cmovnb", "cmovnbe",+      "cmovnc", "cmovne", "cmovng", "cmovnge", "cmovnl", "cmovnle", "cmovno", "cmovnp",+      "cmovns", "cmovnz", "cmovo", "cmovp", "cmovpe", "cmovpo", "cmovs", "cmovz", "cmp",+      "cmpeqpd", "cmpeqps", "cmpeqsd", "cmpeqss", "cmplepd", "cmpleps", "cmplesd",+      "cmpless", "cmpltpd", "cmpltps", "cmpltsd", "cmpltss", "cmpneqpd", "cmpneqps",+      "cmpneqsd", "cmpneqss", "cmpnlepd", "cmpnleps", "cmpnlesd", "cmpnless", "cmpnltpd",+      "cmpnltps", "cmpnltsd", "cmpnltss", "cmpordpd", "cmpordps", "cmpordsd", "cmpordss",+      "cmppd", "cmpps", "cmps", "cmpsb", "cmpsd", "cmpss", "cmpunordpd", "cmpunordps",+      "cmpunordsd", "cmpunordss", "cmpxchg", "cmpxchg16b", "cmpxchg8b", "comisd", "comiss",+      "cpuid", "crc32", "cvtdq2pd", "cvtpd2dq", "cvtpd2pi", "cvtpi2pd", "cvtpi2ps",+      "cvtps2pd", "cvtps2pi", "cvtsd2si", "cvtsi2sd", "cvtsi2ss", "cvtss2si", "cvttpd2pi",+      "cvttps2dq", "cvttps2pi", "cvttsd2si", "cvttss2si", "data", "dec", "display", "div",+      "else", "emms", "end", "enter", "entry", "err", "extractps", "extrn", "extrq",+      "f2xm1", "fabs", "fadd", "faddp", "fbld", "fbstp", "fchs", "fclex", "fcmovb",+      "fcmovbe", "fcmove", "fcmovnb", "fcmovnbe", "fcmovne", "fcmovnu", "fcmovu", "fcom",+      "fcomi", "fcomip", "fcomp", "fcompp", "fcos", "fdecstp", "fdisi", "fdiv", "fdivp",+      "fdivr", "fdivrp", "femms", "feni", "ffree", "ffreep", "fiadd", "ficom", "ficomp",+      "fidiv", "fidivr", "fild", "fimul", "fincstp", "finit", "fist", "fistp", "fisttp",+      "fisub", "fisubr", "fld", "fld1", "fldcw", "fldenv", "fldl2e", "fldl2t", "fldlg2",+      "fldln2", "fldpi", "fldz", "fmul", "fmulp", "fnclex", "fndisi", "fneni", "fninit",+      "fnop", "fnsave", "fnstcw", "fnstenv", "fnstsw", "format", "fpatan", "fprem",+      "fprem1", "fptan", "frndint", "frstor", "frstpm", "fsave", "fscale", "fsetpm",+      "fsin", "fsincos", "fsqrt", "fst", "fstcw", "fstenv", "fstp", "fstsw", "fsub",+      "fsubp", "fsubr", "fsubrp", "ftst", "fucom", "fucomi", "fucomip", "fucomp",+      "fucompp", "fwait", "fxam", "fxch", "fxrstor", "fxsave", "fxtract", "fyl2x",+      "fyl2xp1", "getsec", "haddps", "heap", "hlt", "hsubps", "icebp", "idiv", "if",+      "imul", "in", "inc", "ins", "insb", "insertps", "insertq", "int", "int1", "int3",+      "invd", "invlpg", "invlpga", "iret", "ja", "jae", "jb", "jbe", "jc", "je", "jg",+      "jge", "jl", "jle", "jmp", "jna", "jnae", "jnb", "jnbe", "jnc", "jne", "jng", "jnge",+      "jnl", "jnle", "jno", "jnp", "jns", "jnz", "jo", "jp", "jpe", "jpo", "js", "jz",+      "kaddb", "kaddd", "kaddq", "kaddw", "kandb", "kandd", "kandnb", "kandnd", "kandnq",+      "kandnw", "kandq", "kandw", "kmovb", "kmovd", "kmovq", "kmovw", "knotb", "knotd",+      "knotq", "knotw", "korb", "kord", "korq", "kortestb", "kortestd", "kortestq",+      "kortestw", "korw", "kshiftlb", "kshiftld", "kshiftlq", "kshiftlw", "kshiftrb",+      "kshiftrd", "kshiftrq", "kshiftrw", "ktestb", "ktestd", "ktestq", "ktestw",+      "kunpckbw", "kunpckdq", "kunpckwd", "kxnorb", "kxnord", "kxnorq", "kxnorw", "kxorb",+      "kxord", "kxorq", "kxorw", "label", "lahf", "lar", "lddqu", "ldmxcsr", "lds", "lea",+      "leave", "les", "lfence", "lfs", "lgdt", "lgs", "lidt", "lldt", "llwpcb", "lmsw",+      "load", "loadall286", "loadall386", "lock", "lods", "lodsb", "loop", "loope",+      "loopne", "loopnz", "loopz", "lsl", "lss", "ltr", "lwpins", "lwpval", "lzcnt",+      "maskmovdqu", "maskmovq", "mfence", "monitor", "mov", "movapd", "movaps", "movbe",+      "movd", "movdq2q", "movdqa", "movdqu", "movhlps", "movhpd", "movhps", "movlhps",+      "movlpd", "movlps", "movmskpd", "movmskps", "movntdq", "movntdqa", "movnti",+      "movntpd", "movntps", "movntq", "movntsd", "movntss", "movq", "movq2dq", "movs",+      "movsb", "movsd", "movshdup", "movsldup", "movss", "movsx", "movsxd", "movupd",+      "movups", "movzx", "mul", "mulx", "mwait", "neg", "nop", "not", "or", "org", "out",+      "outs", "outsb", "palignr", "pause", "pclmulhqhdq", "pclmulhqhqdq", "pclmulhqlqdq",+      "pclmullqhdq", "pclmullqhqdq", "pclmullqlqdq", "pclmulqdq", "pcommit", "pdep",+      "pext", "pextrb", "pextrd", "pextrq", "pextrw", "pinsrb", "pinsrd", "pinsrq",+      "pinsrw", "pmovmskb", "pmovsxbd", "pmovsxbq", "pmovsxbw", "pmovsxdq", "pmovsxwd",+      "pmovsxwq", "pmovzxbd", "pmovzxbq", "pmovzxbw", "pmovzxdq", "pmovzxwd", "pmovzxwq",+      "pop", "popcnt", "popd", "popf", "popq", "popw", "prefetch", "prefetchnta",+      "prefetcht0", "prefetcht1", "prefetcht2", "prefetchw", "prefetchwt1", "pshufd",+      "pshufhw", "pshuflw", "pshufw", "pslldq", "psrldq", "public", "push", "pushd",+      "pushf", "pushq", "pushw", "rcl", "rcr", "rdfsbase", "rdgsbase", "rdmsr", "rdpkru",+      "rdpmc", "rdrand", "rdseed", "rdtsc", "rdtscp", "rep", "repe", "repeat", "repne",+      "repnz", "repz", "ret", "retf", "retn", "rol", "ror", "rorx", "rsm", "sahf", "sal",+      "sar", "sarx", "sbb", "scas", "scasb", "section", "segment", "seta", "setae", "setb",+      "setbe", "setc", "sete", "setg", "setge", "setl", "setle", "setna", "setnae",+      "setnb", "setnbe", "setnc", "setne", "setng", "setnge", "setnl", "setnle", "setno",+      "setnp", "setns", "setnz", "seto", "setp", "setpe", "setpo", "sets", "setz",+      "sfence", "sgdt", "shl", "shld", "shlx", "shr", "shrd", "shrx", "sidt", "skinit",+      "sldt", "slwpcb", "smsw", "stac", "stack", "stc", "std", "stgi", "sti", "stmxcsr",+      "store", "stos", "stosb", "str", "sub", "swapgs", "syscall", "sysenter", "sysexit",+      "sysret", "t1mskc", "test", "times", "tzcnt", "tzmsk", "ucomisd", "ucomiss", "ud2",+      "useavx256", "useavx512", "verr", "verw", "vgatherdpd", "vgatherdps", "vgatherpf0dpd",+      "vgatherpf0dps", "vgatherpf0qpd", "vgatherpf0qps", "vgatherpf1dpd", "vgatherpf1dps",+      "vgatherpf1qpd", "vgatherpf1qps", "vgatherqpd", "vgatherqps", "virtual", "vldmxcsr",+      "vmcall", "vmfunc", "vmlaunch", "vmload", "vmmcall", "vmresume", "vmrun", "vmsave",+      "vmxoff", "vpcmov", "vpermil2pd", "vpermil2ps", "vpermilmo2pd", "vpermilmo2ps",+      "vpermilmz2pd", "vpermilmz2ps", "vpermiltd2pd", "vpermiltd2ps", "vpgatherdd",+      "vpgatherdq", "vpgatherqd", "vpgatherqq", "vpscatterdd", "vpscatterdq", "vpscatterqd",+      "vpscatterqq", "vscatterdpd", "vscatterdps", "vscatterpf0dpd", "vscatterpf0dps",+      "vscatterpf0qpd", "vscatterpf0qps", "vscatterpf1dpd", "vscatterpf1dps",+      "vscatterpf1qpd", "vscatterpf1qps", "vscatterqpd", "vscatterqps", "vstmxcsr",+      "vzeroall", "vzeroupper", "wait", "wbinvd", "while", "wrfsbase", "wrgsbase", "wrmsr",+      "wrpkru", "xabort", "xacquire", "xadd", "xbegin", "xchg", "xend", "xgetbv", "xlat",+      "xlatb", "xor", "xrelease", "xrstor", "xsave", "xsaveopt", "xsetbv", "xtest",      -- 16bit-       "cbw", "cmpsw", "cwd", "fldenvw", "fnsavew", "fnstenvw", "frstorw", "fsavew",-       "fstenvw", "insw", "iretw", "jcxz", "lodsw", "loopew", "loopnew", "loopnzw", "loopw",-       "loopzw", "movsw", "outsw", "popfw", "pushfw", "retfw", "retnw", "retw", "scasw",-       "stosw",+      "cbw", "cmpsw", "cwd", "fldenvw", "fnsavew", "fnstenvw", "frstorw", "fsavew",+      "fstenvw", "insw", "iretw", "jcxz", "lodsw", "loopew", "loopnew", "loopnzw", "loopw",+      "loopzw", "movsw", "outsw", "popfw", "pushfw", "retfw", "retnw", "retw", "scasw",+      "stosw",     -- 16bit (except 64)-       "popaw", "pushaw",+      "popaw", "pushaw",      -- 32bit-       "cdq", "cwde", "fldenvd", "fnsaved", "fnstenvd", "frstord", "fsaved", "fstenvd",-       "insd", "iretd", "jecxz", "lodsd", "loopd", "looped", "loopned", "loopnzd", "loopzd",-       "outsd", "retfd", "scasd", "stosd",+      "cdq", "cwde", "fldenvd", "fnsaved", "fnstenvd", "frstord", "fsaved", "fstenvd",+      "insd", "iretd", "jecxz", "lodsd", "loopd", "looped", "loopned", "loopnzd", "loopzd",+      "outsd", "retfd", "scasd", "stosd",     -- 32bit (except 64)-       "popad", "popfd", "pushad", "pushfd", "retd", "retnd",+      "popad", "popfd", "pushad", "pushfd", "retd", "retnd",      -- 64bit-       "cdqe", "cmpsq", "cqo", "fxrstor64", "fxsave64", "iretq", "jrcxz", "lodsq", "loopeq",-       "loopneq", "loopnzq", "loopq", "loopzq", "movsq", "rdmsrq", "retfq", "scasq",-       "stosq", "sysexitq", "sysretq", "wrmsrq", "xrstor64", "xsave64", "xsaveopt64",+      "cdqe", "cmpsq", "cqo", "fxrstor64", "fxsave64", "iretq", "jrcxz", "lodsq", "loopeq",+      "loopneq", "loopnzq", "loopq", "loopzq", "movsq", "rdmsrq", "retfq", "scasq",+      "stosq", "sysexitq", "sysretq", "wrmsrq", "xrstor64", "xsave64", "xsaveopt64",     -- 64bit only-       "popfq", "pushfq", "retnq", "retq",+      "popfq", "pushfq", "retnq", "retq",      -- NOT 64bit-       "aaa", "aas", "daa", "das", "into", "popa", "pusha", "salc", "setalc",+      "aaa", "aas", "daa", "das", "into", "popa", "pusha", "salc", "setalc",      -- FMA Instructions-       "vfmadd132pd", "vfmadd132ps", "vfmadd132sd", "vfmadd132ss", "vfmadd213pd",-       "vfmadd213ps", "vfmadd213sd", "vfmadd213ss", "vfmadd231pd", "vfmadd231ps",-       "vfmadd231sd", "vfmadd231ss", "vfmaddsub132pd", "vfmaddsub132ps", "vfmaddsub213pd",-       "vfmaddsub213ps", "vfmaddsub231pd", "vfmaddsub231ps", "vfmsub132pd", "vfmsub132ps",-       "vfmsub132sd", "vfmsub132ss", "vfmsub213pd", "vfmsub213ps", "vfmsub213sd",-       "vfmsub213ss", "vfmsub231pd", "vfmsub231ps", "vfmsub231sd", "vfmsub231ss",-       "vfmsubadd132pd", "vfmsubadd132ps", "vfmsubadd213pd", "vfmsubadd213ps",-       "vfmsubadd231pd", "vfmsubadd231ps", "vfnmadd132pd", "vfnmadd132ps", "vfnmadd132sd",-       "vfnmadd132ss", "vfnmadd213pd", "vfnmadd213ps", "vfnmadd213sd", "vfnmadd213ss",-       "vfnmadd231pd", "vfnmadd231ps", "vfnmadd231sd", "vfnmadd231ss", "vfnmsub132pd",-       "vfnmsub132ps", "vfnmsub132sd", "vfnmsub132ss", "vfnmsub213pd", "vfnmsub213ps",-       "vfnmsub213sd", "vfnmsub213ss", "vfnmsub231pd", "vfnmsub231ps", "vfnmsub231sd",-       "vfnmsub231ss",+      "vfmadd132pd", "vfmadd132ps", "vfmadd132sd", "vfmadd132ss", "vfmadd213pd",+      "vfmadd213ps", "vfmadd213sd", "vfmadd213ss", "vfmadd231pd", "vfmadd231ps",+      "vfmadd231sd", "vfmadd231ss", "vfmaddsub132pd", "vfmaddsub132ps", "vfmaddsub213pd",+      "vfmaddsub213ps", "vfmaddsub231pd", "vfmaddsub231ps", "vfmsub132pd", "vfmsub132ps",+      "vfmsub132sd", "vfmsub132ss", "vfmsub213pd", "vfmsub213ps", "vfmsub213sd",+      "vfmsub213ss", "vfmsub231pd", "vfmsub231ps", "vfmsub231sd", "vfmsub231ss",+      "vfmsubadd132pd", "vfmsubadd132ps", "vfmsubadd213pd", "vfmsubadd213ps",+      "vfmsubadd231pd", "vfmsubadd231ps", "vfnmadd132pd", "vfnmadd132ps", "vfnmadd132sd",+      "vfnmadd132ss", "vfnmadd213pd", "vfnmadd213ps", "vfnmadd213sd", "vfnmadd213ss",+      "vfnmadd231pd", "vfnmadd231ps", "vfnmadd231sd", "vfnmadd231ss", "vfnmsub132pd",+      "vfnmsub132ps", "vfnmsub132sd", "vfnmsub132ss", "vfnmsub213pd", "vfnmsub213ps",+      "vfnmsub213sd", "vfnmsub213ss", "vfnmsub231pd", "vfnmsub231ps", "vfnmsub231sd",+      "vfnmsub231ss",      -- FMA4 Instructions-       "vfmaddpd", "vfmaddps", "vfmaddsd", "vfmaddss", "vfmaddsubpd", "vfmaddsubps",-       "vfmsubaddpd", "vfmsubaddps", "vfmsubpd", "vfmsubps", "vfmsubsd", "vfmsubss",-       "vfnmaddpd", "vfnmaddps", "vfnmaddsd", "vfnmaddss", "vfnmsubpd", "vfnmsubps",-       "vfnmsubsd", "vfnmsubss",+      "vfmaddpd", "vfmaddps", "vfmaddsd", "vfmaddss", "vfmaddsubpd", "vfmaddsubps",+      "vfmsubaddpd", "vfmsubaddps", "vfmsubpd", "vfmsubps", "vfmsubsd", "vfmsubss",+      "vfnmaddpd", "vfnmaddps", "vfnmaddsd", "vfnmaddss", "vfnmsubpd", "vfnmsubps",+      "vfnmsubsd", "vfnmsubss",      -- MMX Instructions-       "packssdw", "packsswb", "packuswb", "paddb", "paddd", "paddq", "paddsb", "paddsw",-       "paddusb", "paddusw", "paddw", "pand", "pandn", "pavgb", "pavgw", "pcmpeqb",-       "pcmpeqd", "pcmpeqw", "pcmpgtb", "pcmpgtd", "pcmpgtw", "pmaddwd", "pmaxsw", "pmaxub",-       "pminsw", "pminub", "pmulhuw", "pmulhw", "pmullw", "pmuludq", "por", "psadbw",-       "pslld", "psllq", "psllw", "psrad", "psraw", "psrld", "psrlq", "psrlw", "psubb",-       "psubd", "psubq", "psubsb", "psubsw", "psubusb", "psubusw", "psubw", "punpckhbw",-       "punpckhdq", "punpckhwd", "punpcklbw", "punpckldq", "punpcklwd", "pxor",+      "packssdw", "packsswb", "packuswb", "paddb", "paddd", "paddq", "paddsb", "paddsw",+      "paddusb", "paddusw", "paddw", "pand", "pandn", "pavgb", "pavgw", "pcmpeqb",+      "pcmpeqd", "pcmpeqw", "pcmpgtb", "pcmpgtd", "pcmpgtw", "pmaddwd", "pmaxsw", "pmaxub",+      "pminsw", "pminub", "pmulhuw", "pmulhw", "pmullw", "pmuludq", "por", "psadbw",+      "pslld", "psllq", "psllw", "psrad", "psraw", "psrld", "psrlq", "psrlw", "psubb",+      "psubd", "psubq", "psubsb", "psubsw", "psubusb", "psubusw", "psubw", "punpckhbw",+      "punpckhdq", "punpckhwd", "punpcklbw", "punpckldq", "punpcklwd", "pxor",      -- SSE Instructions-       "addpd", "addps", "addsd", "addss", "addsubpd", "andnpd", "andnps", "andpd", "andps",-       "cvtdq2ps", "cvtpd2ps", "cvtps2dq", "cvtsd2ss", "cvtss2sd", "cvttpd2dq", "divpd",-       "divps", "divsd", "divss", "haddpd", "hsubpd", "maxpd", "maxps", "maxsd", "maxss",-       "minpd", "minps", "minsd", "minss", "movddup", "mulpd", "mulps", "mulsd", "mulss",-       "orpd", "orps", "punpckhqdq", "punpcklqdq", "rcpps", "rcpss", "rsqrtps", "rsqrtss",-       "shufpd", "shufps", "sqrtpd", "sqrtps", "sqrtsd", "sqrtss", "subpd", "subps",-       "subsd", "subss", "unpckhpd", "unpckhps", "unpcklpd", "unpcklps", "xorpd", "xorps",+      "addpd", "addps", "addsd", "addss", "addsubpd", "andnpd", "andnps", "andpd", "andps",+      "cvtdq2ps", "cvtpd2ps", "cvtps2dq", "cvtsd2ss", "cvtss2sd", "cvttpd2dq", "divpd",+      "divps", "divsd", "divss", "haddpd", "hsubpd", "maxpd", "maxps", "maxsd", "maxss",+      "minpd", "minps", "minsd", "minss", "movddup", "mulpd", "mulps", "mulsd", "mulss",+      "orpd", "orps", "punpckhqdq", "punpcklqdq", "rcpps", "rcpss", "rsqrtps", "rsqrtss",+      "shufpd", "shufps", "sqrtpd", "sqrtps", "sqrtsd", "sqrtss", "subpd", "subps",+      "subsd", "subss", "unpckhpd", "unpckhps", "unpcklpd", "unpcklps", "xorpd", "xorps",      -- SSE4 Instructions-       "aesdec", "aesdeclast", "aesenc", "aesenclast", "aesimc", "aeskeygenassist",-       "blendpd", "blendps", "blendvpd", "blendvps", "dppd", "dpps", "mpsadbw", "packusdw",-       "pblendvb", "pblendw", "pcmpeqq", "pcmpestri", "pcmpestrm", "pcmpgtq", "pcmpistri",-       "pcmpistrm", "phminposuw", "pmaxsb", "pmaxsd", "pmaxud", "pmaxuw", "pminsb",-       "pminsd", "pminud", "pminuw", "pmuldq", "pmulld", "ptest", "roundpd", "roundps",-       "roundsd", "roundss", "sha1msg1", "sha1msg2", "sha1nexte", "sha1rnds4", "sha256msg1",-       "sha256msg2", "sha256rnds2",+      "aesdec", "aesdeclast", "aesenc", "aesenclast", "aesimc", "aeskeygenassist",+      "blendpd", "blendps", "blendvpd", "blendvps", "dppd", "dpps", "mpsadbw", "packusdw",+      "pblendvb", "pblendw", "pcmpeqq", "pcmpestri", "pcmpestrm", "pcmpgtq", "pcmpistri",+      "pcmpistrm", "phminposuw", "pmaxsb", "pmaxsd", "pmaxud", "pmaxuw", "pminsb",+      "pminsd", "pminud", "pminuw", "pmuldq", "pmulld", "ptest", "roundpd", "roundps",+      "roundsd", "roundss", "sha1msg1", "sha1msg2", "sha1nexte", "sha1rnds4", "sha256msg1",+      "sha256msg2", "sha256rnds2",      -- SSSE3 Instructions-       "pabsb", "pabsd", "pabsw", "phaddd", "phaddsw", "phaddw", "phsubd", "phsubsw",-       "phsubw", "pmaddubsw", "pmulhrsw", "pshufb", "psignb", "psignd", "psignw",+      "pabsb", "pabsd", "pabsw", "phaddd", "phaddsw", "phaddw", "phsubd", "phsubsw",+      "phsubw", "pmaddubsw", "pmulhrsw", "pshufb", "psignb", "psignd", "psignw",      -- AVX Instructions-       "vaddpd", "vaddps", "vaddsd", "vaddss", "vaddsubpd", "vaddsubps", "vaesdec",-       "vaesdeclast", "vaesenc", "vaesenclast", "vaesimc", "vaeskeygenassist", "valignd",-       "valignq", "vandnpd", "vandnps", "vandpd", "vandps", "vblendmpd", "vblendmps",-       "vblendpd", "vblendps", "vblendvpd", "vblendvps", "vbroadcastf128", "vbroadcasti128",-       "vbroadcastsd", "vbroadcastss", "vcmpeq_ospd", "vcmpeq_osps", "vcmpeq_ossd",-       "vcmpeq_osss", "vcmpeq_uqpd", "vcmpeq_uqps", "vcmpeq_uqsd", "vcmpeq_uqss",-       "vcmpeq_uspd", "vcmpeq_usps", "vcmpeq_ussd", "vcmpeq_usss", "vcmpeqpd", "vcmpeqps",-       "vcmpeqsd", "vcmpeqss", "vcmpfalse_ospd", "vcmpfalse_osps", "vcmpfalse_ossd",-       "vcmpfalse_osss", "vcmpfalsepd", "vcmpfalseps", "vcmpfalsesd", "vcmpfalsess",-       "vcmpge_oqpd", "vcmpge_oqps", "vcmpge_oqsd", "vcmpge_oqss", "vcmpgepd", "vcmpgeps",-       "vcmpgesd", "vcmpgess", "vcmpgt_oqpd", "vcmpgt_oqps", "vcmpgt_oqsd", "vcmpgt_oqss",-       "vcmpgtpd", "vcmpgtps", "vcmpgtsd", "vcmpgtss", "vcmple_oqpd", "vcmple_oqps",-       "vcmple_oqsd", "vcmple_oqss", "vcmplepd", "vcmpleps", "vcmplesd", "vcmpless",-       "vcmplt_oqpd", "vcmplt_oqps", "vcmplt_oqsd", "vcmplt_oqss", "vcmpltpd", "vcmpltps",-       "vcmpltsd", "vcmpltss", "vcmpneq_oqpd", "vcmpneq_oqps", "vcmpneq_oqsd", "vcmpneq_oqss",-       "vcmpneq_ospd", "vcmpneq_osps", "vcmpneq_ossd", "vcmpneq_osss", "vcmpneq_uspd",-       "vcmpneq_usps", "vcmpneq_ussd", "vcmpneq_usss", "vcmpneqpd", "vcmpneqps",-       "vcmpneqsd", "vcmpneqss", "vcmpnge_uqpd", "vcmpnge_uqps", "vcmpnge_uqsd",-       "vcmpnge_uqss", "vcmpngepd", "vcmpngeps", "vcmpngesd", "vcmpngess", "vcmpngt_uqpd",-       "vcmpngt_uqps", "vcmpngt_uqsd", "vcmpngt_uqss", "vcmpngtpd", "vcmpngtps",-       "vcmpngtsd", "vcmpngtss", "vcmpnle_uqpd", "vcmpnle_uqps", "vcmpnle_uqsd",-       "vcmpnle_uqss", "vcmpnlepd", "vcmpnleps", "vcmpnlesd", "vcmpnless", "vcmpnlt_uqpd",-       "vcmpnlt_uqps", "vcmpnlt_uqsd", "vcmpnlt_uqss", "vcmpnltpd", "vcmpnltps",-       "vcmpnltsd", "vcmpnltss", "vcmpord_spd", "vcmpord_sps", "vcmpord_ssd", "vcmpord_sss",-       "vcmpordpd", "vcmpordps", "vcmpordsd", "vcmpordss", "vcmppd", "vcmpps", "vcmpsd",-       "vcmpss", "vcmptrue_uspd", "vcmptrue_usps", "vcmptrue_ussd", "vcmptrue_usss",-       "vcmptruepd", "vcmptrueps", "vcmptruesd", "vcmptruess", "vcmpunord_spd",-       "vcmpunord_sps", "vcmpunord_ssd", "vcmpunord_sss", "vcmpunordpd", "vcmpunordps",-       "vcmpunordsd", "vcmpunordss", "vcomisd", "vcomiss", "vcompresspd", "vcompressps",-       "vcvtdq2pd", "vcvtdq2ps", "vcvtpd2dq", "vcvtpd2ps", "vcvtpd2qq", "vcvtpd2udq",-       "vcvtpd2uqq", "vcvtph2ps", "vcvtps2dq", "vcvtps2pd", "vcvtps2ph", "vcvtps2qq",-       "vcvtps2udq", "vcvtps2uqq", "vcvtqq2pd", "vcvtqq2ps", "vcvtsd2si", "vcvtsd2ss",-       "vcvtsd2usi", "vcvtsi2sd", "vcvtsi2ss", "vcvtss2sd", "vcvtss2si", "vcvtss2usi",-       "vcvttpd2dq", "vcvttpd2qq", "vcvttpd2udq", "vcvttpd2uqq", "vcvttps2dq", "vcvttps2qq",-       "vcvttps2udq", "vcvttps2uqq", "vcvttsd2si", "vcvttsd2usi", "vcvttss2si", "vcvttss2usi",-       "vcvtudq2pd", "vcvtudq2ps", "vcvtuqq2pd", "vcvtuqq2ps", "vcvtusi2sd", "vcvtusi2ss",-       "vdbpsadbw", "vdivpd", "vdivps", "vdivsd", "vdivss", "vdppd", "vdpps", "vexpandpd",-       "vexpandps", "vextractf128", "vextracti128", "vextractps", "vhaddpd", "vhaddps",-       "vhsubpd", "vhsubps", "vinsertf128", "vinserti128", "vinsertps", "vlddqu",-       "vmaskmovdqu", "vmaskmovpd", "vmaskmovps", "vmaxpd", "vmaxps", "vmaxsd", "vmaxss",-       "vminpd", "vminps", "vminsd", "vminss", "vmovapd", "vmovaps", "vmovd", "vmovddup",-       "vmovdqa", "vmovdqu", "vmovhlps", "vmovhpd", "vmovhps", "vmovlhps", "vmovlpd",-       "vmovlps", "vmovmskpd", "vmovmskps", "vmovntdq", "vmovntdqa", "vmovntpd", "vmovntps",-       "vmovq", "vmovsd", "vmovshdup", "vmovsldup", "vmovss", "vmovupd", "vmovups",-       "vmpsadbw", "vmulpd", "vmulps", "vmulsd", "vmulss", "vorpd", "vorps", "vpabsb",-       "vpabsd", "vpabsq", "vpabsw", "vpackssdw", "vpacksswb", "vpackusdw", "vpackuswb",-       "vpaddb", "vpaddd", "vpaddq", "vpaddsb", "vpaddsw", "vpaddusb", "vpaddusw", "vpaddw",-       "vpalignr", "vpand", "vpandd", "vpandn", "vpandnd", "vpandnq", "vpandq", "vpavgb",-       "vpavgw", "vpblendd", "vpblendmb", "vpblendmd", "vpblendmq", "vpblendmw",-       "vpblendvb", "vpblendw", "vpbroadcastb", "vpbroadcastd", "vpbroadcastq",-       "vpbroadcastw", "vpclmulhqhdq", "vpclmulhqlqdq", "vpclmullqhdq", "vpclmullqlqdq",-       "vpclmulqdq", "vpcmpeqb", "vpcmpeqd", "vpcmpeqq", "vpcmpeqw", "vpcmpestri",-       "vpcmpestrm", "vpcmpgtb", "vpcmpgtd", "vpcmpgtq", "vpcmpgtw", "vpcmpistri",-       "vpcmpistrm", "vpcompressd", "vpcompressq", "vpconflictd", "vpconflictq",-       "vperm2f128", "vperm2i128", "vpermb", "vpermd", "vpermi2b", "vpermi2d", "vpermi2pd",-       "vpermi2ps", "vpermi2q", "vpermi2w", "vpermilpd", "vpermilps", "vpermpd", "vpermps",-       "vpermq", "vpermt2b", "vpermt2d", "vpermt2pd", "vpermt2ps", "vpermt2q", "vpermt2w",-       "vpermw", "vpexpandd", "vpexpandq", "vpextrb", "vpextrd", "vpextrq", "vpextrw",-       "vphaddd", "vphaddsw", "vphaddw", "vphminposuw", "vphsubd", "vphsubsw", "vphsubw",-       "vpinsrb", "vpinsrd", "vpinsrq", "vpinsrw", "vplzcntd", "vplzcntq", "vpmadd52huq",-       "vpmadd52luq", "vpmaddubsw", "vpmaddwd", "vpmaskmovd", "vpmaskmovq", "vpmaxsb",-       "vpmaxsd", "vpmaxsq", "vpmaxsw", "vpmaxub", "vpmaxud", "vpmaxuq", "vpmaxuw",-       "vpminsb", "vpminsd", "vpminsq", "vpminsw", "vpminub", "vpminud", "vpminuq",-       "vpminuw", "vpmovmskb", "vpmovsxbd", "vpmovsxbq", "vpmovsxbw", "vpmovsxdq",-       "vpmovsxwd", "vpmovsxwq", "vpmovzxbd", "vpmovzxbq", "vpmovzxbw", "vpmovzxdq",-       "vpmovzxwd", "vpmovzxwq", "vpmuldq", "vpmulhrsw", "vpmulhuw", "vpmulhw", "vpmulld",-       "vpmullq", "vpmullw", "vpmultishiftqb", "vpmuludq", "vpor", "vpord", "vporq",-       "vprolvd", "vprolvq", "vprorvd", "vprorvq", "vpsadbw", "vpshufb", "vpshufd",-       "vpshufhw", "vpshuflw", "vpsignb", "vpsignd", "vpsignw", "vpslld", "vpslldq",-       "vpsllq", "vpsllvd", "vpsllvq", "vpsllvw", "vpsllw", "vpsrad", "vpsraq", "vpsravd",-       "vpsravq", "vpsravw", "vpsraw", "vpsrld", "vpsrldq", "vpsrlq", "vpsrlvd", "vpsrlvq",-       "vpsrlvw", "vpsrlw", "vpsubb", "vpsubd", "vpsubq", "vpsubsb", "vpsubsw", "vpsubusb",-       "vpsubusw", "vpsubw", "vpternlogd", "vpternlogq", "vptest", "vpunpckhbw",-       "vpunpckhdq", "vpunpckhqdq", "vpunpckhwd", "vpunpcklbw", "vpunpckldq", "vpunpcklqdq",-       "vpunpcklwd", "vpxor", "vpxord", "vpxorq", "vrcpps", "vrcpss", "vroundpd",-       "vroundps", "vroundsd", "vroundss", "vrsqrtps", "vrsqrtss", "vshufpd", "vshufps",-       "vsqrtpd", "vsqrtps", "vsqrtsd", "vsqrtss", "vsubpd", "vsubps", "vsubsd", "vsubss",-       "vtestpd", "vtestps", "vucomisd", "vucomiss", "vunpckhpd", "vunpckhps", "vunpcklpd",-       "vunpcklps", "vxorpd", "vxorps",+      "vaddpd", "vaddps", "vaddsd", "vaddss", "vaddsubpd", "vaddsubps", "vaesdec",+      "vaesdeclast", "vaesenc", "vaesenclast", "vaesimc", "vaeskeygenassist", "valignd",+      "valignq", "vandnpd", "vandnps", "vandpd", "vandps", "vblendmpd", "vblendmps",+      "vblendpd", "vblendps", "vblendvpd", "vblendvps", "vbroadcastf128", "vbroadcasti128",+      "vbroadcastsd", "vbroadcastss", "vcmpeq_ospd", "vcmpeq_osps", "vcmpeq_ossd",+      "vcmpeq_osss", "vcmpeq_uqpd", "vcmpeq_uqps", "vcmpeq_uqsd", "vcmpeq_uqss",+      "vcmpeq_uspd", "vcmpeq_usps", "vcmpeq_ussd", "vcmpeq_usss", "vcmpeqpd", "vcmpeqps",+      "vcmpeqsd", "vcmpeqss", "vcmpfalse_ospd", "vcmpfalse_osps", "vcmpfalse_ossd",+      "vcmpfalse_osss", "vcmpfalsepd", "vcmpfalseps", "vcmpfalsesd", "vcmpfalsess",+      "vcmpge_oqpd", "vcmpge_oqps", "vcmpge_oqsd", "vcmpge_oqss", "vcmpgepd", "vcmpgeps",+      "vcmpgesd", "vcmpgess", "vcmpgt_oqpd", "vcmpgt_oqps", "vcmpgt_oqsd", "vcmpgt_oqss",+      "vcmpgtpd", "vcmpgtps", "vcmpgtsd", "vcmpgtss", "vcmple_oqpd", "vcmple_oqps",+      "vcmple_oqsd", "vcmple_oqss", "vcmplepd", "vcmpleps", "vcmplesd", "vcmpless",+      "vcmplt_oqpd", "vcmplt_oqps", "vcmplt_oqsd", "vcmplt_oqss", "vcmpltpd", "vcmpltps",+      "vcmpltsd", "vcmpltss", "vcmpneq_oqpd", "vcmpneq_oqps", "vcmpneq_oqsd", "vcmpneq_oqss",+      "vcmpneq_ospd", "vcmpneq_osps", "vcmpneq_ossd", "vcmpneq_osss", "vcmpneq_uspd",+      "vcmpneq_usps", "vcmpneq_ussd", "vcmpneq_usss", "vcmpneqpd", "vcmpneqps",+      "vcmpneqsd", "vcmpneqss", "vcmpnge_uqpd", "vcmpnge_uqps", "vcmpnge_uqsd",+      "vcmpnge_uqss", "vcmpngepd", "vcmpngeps", "vcmpngesd", "vcmpngess", "vcmpngt_uqpd",+      "vcmpngt_uqps", "vcmpngt_uqsd", "vcmpngt_uqss", "vcmpngtpd", "vcmpngtps",+      "vcmpngtsd", "vcmpngtss", "vcmpnle_uqpd", "vcmpnle_uqps", "vcmpnle_uqsd",+      "vcmpnle_uqss", "vcmpnlepd", "vcmpnleps", "vcmpnlesd", "vcmpnless", "vcmpnlt_uqpd",+      "vcmpnlt_uqps", "vcmpnlt_uqsd", "vcmpnlt_uqss", "vcmpnltpd", "vcmpnltps",+      "vcmpnltsd", "vcmpnltss", "vcmpord_spd", "vcmpord_sps", "vcmpord_ssd", "vcmpord_sss",+      "vcmpordpd", "vcmpordps", "vcmpordsd", "vcmpordss", "vcmppd", "vcmpps", "vcmpsd",+      "vcmpss", "vcmptrue_uspd", "vcmptrue_usps", "vcmptrue_ussd", "vcmptrue_usss",+      "vcmptruepd", "vcmptrueps", "vcmptruesd", "vcmptruess", "vcmpunord_spd",+      "vcmpunord_sps", "vcmpunord_ssd", "vcmpunord_sss", "vcmpunordpd", "vcmpunordps",+      "vcmpunordsd", "vcmpunordss", "vcomisd", "vcomiss", "vcompresspd", "vcompressps",+      "vcvtdq2pd", "vcvtdq2ps", "vcvtpd2dq", "vcvtpd2ps", "vcvtpd2qq", "vcvtpd2udq",+      "vcvtpd2uqq", "vcvtph2ps", "vcvtps2dq", "vcvtps2pd", "vcvtps2ph", "vcvtps2qq",+      "vcvtps2udq", "vcvtps2uqq", "vcvtqq2pd", "vcvtqq2ps", "vcvtsd2si", "vcvtsd2ss",+      "vcvtsd2usi", "vcvtsi2sd", "vcvtsi2ss", "vcvtss2sd", "vcvtss2si", "vcvtss2usi",+      "vcvttpd2dq", "vcvttpd2qq", "vcvttpd2udq", "vcvttpd2uqq", "vcvttps2dq", "vcvttps2qq",+      "vcvttps2udq", "vcvttps2uqq", "vcvttsd2si", "vcvttsd2usi", "vcvttss2si", "vcvttss2usi",+      "vcvtudq2pd", "vcvtudq2ps", "vcvtuqq2pd", "vcvtuqq2ps", "vcvtusi2sd", "vcvtusi2ss",+      "vdbpsadbw", "vdivpd", "vdivps", "vdivsd", "vdivss", "vdppd", "vdpps", "vexpandpd",+      "vexpandps", "vextractf128", "vextracti128", "vextractps", "vhaddpd", "vhaddps",+      "vhsubpd", "vhsubps", "vinsertf128", "vinserti128", "vinsertps", "vlddqu",+      "vmaskmovdqu", "vmaskmovpd", "vmaskmovps", "vmaxpd", "vmaxps", "vmaxsd", "vmaxss",+      "vminpd", "vminps", "vminsd", "vminss", "vmovapd", "vmovaps", "vmovd", "vmovddup",+      "vmovdqa", "vmovdqu", "vmovhlps", "vmovhpd", "vmovhps", "vmovlhps", "vmovlpd",+      "vmovlps", "vmovmskpd", "vmovmskps", "vmovntdq", "vmovntdqa", "vmovntpd", "vmovntps",+      "vmovq", "vmovsd", "vmovshdup", "vmovsldup", "vmovss", "vmovupd", "vmovups",+      "vmpsadbw", "vmulpd", "vmulps", "vmulsd", "vmulss", "vorpd", "vorps", "vpabsb",+      "vpabsd", "vpabsq", "vpabsw", "vpackssdw", "vpacksswb", "vpackusdw", "vpackuswb",+      "vpaddb", "vpaddd", "vpaddq", "vpaddsb", "vpaddsw", "vpaddusb", "vpaddusw", "vpaddw",+      "vpalignr", "vpand", "vpandd", "vpandn", "vpandnd", "vpandnq", "vpandq", "vpavgb",+      "vpavgw", "vpblendd", "vpblendmb", "vpblendmd", "vpblendmq", "vpblendmw",+      "vpblendvb", "vpblendw", "vpbroadcastb", "vpbroadcastd", "vpbroadcastq",+      "vpbroadcastw", "vpclmulhqhdq", "vpclmulhqlqdq", "vpclmullqhdq", "vpclmullqlqdq",+      "vpclmulqdq", "vpcmpeqb", "vpcmpeqd", "vpcmpeqq", "vpcmpeqw", "vpcmpestri",+      "vpcmpestrm", "vpcmpgtb", "vpcmpgtd", "vpcmpgtq", "vpcmpgtw", "vpcmpistri",+      "vpcmpistrm", "vpcompressd", "vpcompressq", "vpconflictd", "vpconflictq",+      "vperm2f128", "vperm2i128", "vpermb", "vpermd", "vpermi2b", "vpermi2d", "vpermi2pd",+      "vpermi2ps", "vpermi2q", "vpermi2w", "vpermilpd", "vpermilps", "vpermpd", "vpermps",+      "vpermq", "vpermt2b", "vpermt2d", "vpermt2pd", "vpermt2ps", "vpermt2q", "vpermt2w",+      "vpermw", "vpexpandd", "vpexpandq", "vpextrb", "vpextrd", "vpextrq", "vpextrw",+      "vphaddd", "vphaddsw", "vphaddw", "vphminposuw", "vphsubd", "vphsubsw", "vphsubw",+      "vpinsrb", "vpinsrd", "vpinsrq", "vpinsrw", "vplzcntd", "vplzcntq", "vpmadd52huq",+      "vpmadd52luq", "vpmaddubsw", "vpmaddwd", "vpmaskmovd", "vpmaskmovq", "vpmaxsb",+      "vpmaxsd", "vpmaxsq", "vpmaxsw", "vpmaxub", "vpmaxud", "vpmaxuq", "vpmaxuw",+      "vpminsb", "vpminsd", "vpminsq", "vpminsw", "vpminub", "vpminud", "vpminuq",+      "vpminuw", "vpmovmskb", "vpmovsxbd", "vpmovsxbq", "vpmovsxbw", "vpmovsxdq",+      "vpmovsxwd", "vpmovsxwq", "vpmovzxbd", "vpmovzxbq", "vpmovzxbw", "vpmovzxdq",+      "vpmovzxwd", "vpmovzxwq", "vpmuldq", "vpmulhrsw", "vpmulhuw", "vpmulhw", "vpmulld",+      "vpmullq", "vpmullw", "vpmultishiftqb", "vpmuludq", "vpor", "vpord", "vporq",+      "vprolvd", "vprolvq", "vprorvd", "vprorvq", "vpsadbw", "vpshufb", "vpshufd",+      "vpshufhw", "vpshuflw", "vpsignb", "vpsignd", "vpsignw", "vpslld", "vpslldq",+      "vpsllq", "vpsllvd", "vpsllvq", "vpsllvw", "vpsllw", "vpsrad", "vpsraq", "vpsravd",+      "vpsravq", "vpsravw", "vpsraw", "vpsrld", "vpsrldq", "vpsrlq", "vpsrlvd", "vpsrlvq",+      "vpsrlvw", "vpsrlw", "vpsubb", "vpsubd", "vpsubq", "vpsubsb", "vpsubsw", "vpsubusb",+      "vpsubusw", "vpsubw", "vpternlogd", "vpternlogq", "vptest", "vpunpckhbw",+      "vpunpckhdq", "vpunpckhqdq", "vpunpckhwd", "vpunpcklbw", "vpunpckldq", "vpunpcklqdq",+      "vpunpcklwd", "vpxor", "vpxord", "vpxorq", "vrcpps", "vrcpss", "vroundpd",+      "vroundps", "vroundsd", "vroundss", "vrsqrtps", "vrsqrtss", "vshufpd", "vshufps",+      "vsqrtpd", "vsqrtps", "vsqrtsd", "vsqrtss", "vsubpd", "vsubps", "vsubsd", "vsubss",+      "vtestpd", "vtestps", "vucomisd", "vucomiss", "vunpckhpd", "vunpckhps", "vunpcklpd",+      "vunpcklps", "vxorpd", "vxorps",      -- AVX-512 Instructions-       "vbroadcastf32x2", "vbroadcastf32x4", "vbroadcastf32x8", "vbroadcastf64x2",-       "vbroadcastf64x4", "vbroadcasti32x2", "vbroadcasti32x4", "vbroadcasti32x8",-       "vbroadcasti64x2", "vbroadcasti64x4", "vexp2pd", "vexp2ps", "vextractf32x4",-       "vextractf32x8", "vextractf64x2", "vextractf64x4", "vextracti32x4", "vextracti32x8",-       "vextracti64x2", "vextracti64x4", "vfixupimmpd", "vfixupimmps", "vfixupimmsd",-       "vfixupimmss", "vfpclasspd", "vfpclassps", "vfpclasssd", "vfpclassss", "vgetexppd",-       "vgetexpps", "vgetexpsd", "vgetexpss", "vgetmantpd", "vgetmantps", "vgetmantsd",-       "vgetmantss", "vinsertf32x4", "vinsertf32x8", "vinsertf64x2", "vinsertf64x4",-       "vinserti32x4", "vinserti32x8", "vinserti64x2", "vinserti64x4", "vmovdqa32",-       "vmovdqa64", "vmovdqu16", "vmovdqu32", "vmovdqu64", "vmovdqu8", "vpbroadcastmb2q",-       "vpbroadcastmw2d", "vpcmpb", "vpcmpd", "vpcmpleb", "vpcmpled", "vpcmpleq", "vpcmpleub",-       "vpcmpleud", "vpcmpleuq", "vpcmpleuw", "vpcmplew", "vpcmpltb", "vpcmpltd",-       "vpcmpltq", "vpcmpltub", "vpcmpltud", "vpcmpltuq", "vpcmpltuw", "vpcmpltw",-       "vpcmpneqb", "vpcmpneqd", "vpcmpneqq", "vpcmpnequb", "vpcmpnequd", "vpcmpnequq",-       "vpcmpnequw", "vpcmpneqw", "vpcmpnleb", "vpcmpnled", "vpcmpnleq", "vpcmpnleub",-       "vpcmpnleud", "vpcmpnleuq", "vpcmpnleuw", "vpcmpnlew", "vpcmpnltb", "vpcmpnltd",-       "vpcmpnltq", "vpcmpnltub", "vpcmpnltud", "vpcmpnltuq", "vpcmpnltuw", "vpcmpnltw",-       "vpcmpq", "vpcmpub", "vpcmpud", "vpcmpuq", "vpcmpuw", "vpcmpw", "vpmovb2m",-       "vpmovd2m", "vpmovdb", "vpmovdw", "vpmovm2b", "vpmovm2d", "vpmovm2q", "vpmovm2w",-       "vpmovq2m", "vpmovqb", "vpmovqd", "vpmovqw", "vpmovsdb", "vpmovsdw", "vpmovsqb",-       "vpmovsqd", "vpmovsqw", "vpmovswb", "vpmovusdb", "vpmovusdw", "vpmovusqb",-       "vpmovusqd", "vpmovusqw", "vpmovuswb", "vpmovw2m", "vpmovwb", "vprold", "vprolq",-       "vprord", "vprorq", "vptestmb", "vptestmd", "vptestmq", "vptestmw", "vptestnmb",-       "vptestnmd", "vptestnmq", "vptestnmw", "vrangepd", "vrangeps", "vrangesd",-       "vrangess", "vrcp14pd", "vrcp14ps", "vrcp14sd", "vrcp14ss", "vrcp28pd", "vrcp28ps",-       "vrcp28sd", "vrcp28ss", "vreducepd", "vreduceps", "vreducesd", "vreducess",-       "vrndscalepd", "vrndscaleps", "vrndscalesd", "vrndscaless", "vrsqrt14pd",-       "vrsqrt14ps", "vrsqrt14sd", "vrsqrt14ss", "vrsqrt28pd", "vrsqrt28ps", "vrsqrt28sd",-       "vrsqrt28ss", "vscalefpd", "vscalefps", "vscalefsd", "vscalefss", "vshuff32x4",-       "vshuff64x2", "vshufi32x4", "vshufi64x2",+      "vbroadcastf32x2", "vbroadcastf32x4", "vbroadcastf32x8", "vbroadcastf64x2",+      "vbroadcastf64x4", "vbroadcasti32x2", "vbroadcasti32x4", "vbroadcasti32x8",+      "vbroadcasti64x2", "vbroadcasti64x4", "vexp2pd", "vexp2ps", "vextractf32x4",+      "vextractf32x8", "vextractf64x2", "vextractf64x4", "vextracti32x4", "vextracti32x8",+      "vextracti64x2", "vextracti64x4", "vfixupimmpd", "vfixupimmps", "vfixupimmsd",+      "vfixupimmss", "vfpclasspd", "vfpclassps", "vfpclasssd", "vfpclassss", "vgetexppd",+      "vgetexpps", "vgetexpsd", "vgetexpss", "vgetmantpd", "vgetmantps", "vgetmantsd",+      "vgetmantss", "vinsertf32x4", "vinsertf32x8", "vinsertf64x2", "vinsertf64x4",+      "vinserti32x4", "vinserti32x8", "vinserti64x2", "vinserti64x4", "vmovdqa32",+      "vmovdqa64", "vmovdqu16", "vmovdqu32", "vmovdqu64", "vmovdqu8", "vpbroadcastmb2q",+      "vpbroadcastmw2d", "vpcmpb", "vpcmpd", "vpcmpleb", "vpcmpled", "vpcmpleq", "vpcmpleub",+      "vpcmpleud", "vpcmpleuq", "vpcmpleuw", "vpcmplew", "vpcmpltb", "vpcmpltd",+      "vpcmpltq", "vpcmpltub", "vpcmpltud", "vpcmpltuq", "vpcmpltuw", "vpcmpltw",+      "vpcmpneqb", "vpcmpneqd", "vpcmpneqq", "vpcmpnequb", "vpcmpnequd", "vpcmpnequq",+      "vpcmpnequw", "vpcmpneqw", "vpcmpnleb", "vpcmpnled", "vpcmpnleq", "vpcmpnleub",+      "vpcmpnleud", "vpcmpnleuq", "vpcmpnleuw", "vpcmpnlew", "vpcmpnltb", "vpcmpnltd",+      "vpcmpnltq", "vpcmpnltub", "vpcmpnltud", "vpcmpnltuq", "vpcmpnltuw", "vpcmpnltw",+      "vpcmpq", "vpcmpub", "vpcmpud", "vpcmpuq", "vpcmpuw", "vpcmpw", "vpmovb2m",+      "vpmovd2m", "vpmovdb", "vpmovdw", "vpmovm2b", "vpmovm2d", "vpmovm2q", "vpmovm2w",+      "vpmovq2m", "vpmovqb", "vpmovqd", "vpmovqw", "vpmovsdb", "vpmovsdw", "vpmovsqb",+      "vpmovsqd", "vpmovsqw", "vpmovswb", "vpmovusdb", "vpmovusdw", "vpmovusqb",+      "vpmovusqd", "vpmovusqw", "vpmovuswb", "vpmovw2m", "vpmovwb", "vprold", "vprolq",+      "vprord", "vprorq", "vptestmb", "vptestmd", "vptestmq", "vptestmw", "vptestnmb",+      "vptestnmd", "vptestnmq", "vptestnmw", "vrangepd", "vrangeps", "vrangesd",+      "vrangess", "vrcp14pd", "vrcp14ps", "vrcp14sd", "vrcp14ss", "vrcp28pd", "vrcp28ps",+      "vrcp28sd", "vrcp28ss", "vreducepd", "vreduceps", "vreducesd", "vreducess",+      "vrndscalepd", "vrndscaleps", "vrndscalesd", "vrndscaless", "vrsqrt14pd",+      "vrsqrt14ps", "vrsqrt14sd", "vrsqrt14ss", "vrsqrt28pd", "vrsqrt28ps", "vrsqrt28sd",+      "vrsqrt28ss", "vscalefpd", "vscalefps", "vscalefsd", "vscalefss", "vshuff32x4",+      "vshuff64x2", "vshufi32x4", "vshufi64x2",      -- XOP Instructions-       "vfrczpd", "vfrczps", "vfrczsd", "vfrczss", "vpcomb", "vpcomd", "vpcomeqb",-       "vpcomeqd", "vpcomeqq", "vpcomequb", "vpcomequd", "vpcomequq", "vpcomequw",-       "vpcomeqw", "vpcomfalseb", "vpcomfalsed", "vpcomfalseq", "vpcomfalseub",-       "vpcomfalseud", "vpcomfalseuq", "vpcomfalseuw", "vpcomfalsew", "vpcomgeb",-       "vpcomged", "vpcomgeq", "vpcomgeub", "vpcomgeud", "vpcomgeuq", "vpcomgeuw",-       "vpcomgew", "vpcomgtb", "vpcomgtd", "vpcomgtq", "vpcomgtub", "vpcomgtud",-       "vpcomgtuq", "vpcomgtuw", "vpcomgtw", "vpcomleb", "vpcomled", "vpcomleq",-       "vpcomleub", "vpcomleud", "vpcomleuq", "vpcomleuw", "vpcomlew", "vpcomltb",-       "vpcomltd", "vpcomltq", "vpcomltub", "vpcomltud", "vpcomltuq", "vpcomltuw",-       "vpcomltw", "vpcomneqb", "vpcomneqd", "vpcomneqq", "vpcomnequb", "vpcomnequd",-       "vpcomnequq", "vpcomnequw", "vpcomneqw", "vpcomq", "vpcomtrueb", "vpcomtrued",-       "vpcomtrueq", "vpcomtrueub", "vpcomtrueud", "vpcomtrueuq", "vpcomtrueuw",-       "vpcomtruew", "vpcomub", "vpcomud", "vpcomuq", "vpcomuw", "vpcomw", "vphaddbd",-       "vphaddbq", "vphaddbw", "vphadddq", "vphaddubd", "vphaddubq", "vphaddubw",-       "vphaddudq", "vphadduwd", "vphadduwq", "vphaddwd", "vphaddwq", "vphsubbw",-       "vphsubdq", "vphsubwd", "vpmacsdd", "vpmacsdqh", "vpmacsdql", "vpmacssdd",-       "vpmacssdqh", "vpmacssdql", "vpmacsswd", "vpmacssww", "vpmacswd", "vpmacsww",-       "vpmadcsswd", "vpmadcswd", "vpperm", "vprotb", "vprotd", "vprotq", "vprotw",-       "vpshab", "vpshad", "vpshaq", "vpshaw", "vpshlb", "vpshld", "vpshlq", "vpshlw",+      "vfrczpd", "vfrczps", "vfrczsd", "vfrczss", "vpcomb", "vpcomd", "vpcomeqb",+      "vpcomeqd", "vpcomeqq", "vpcomequb", "vpcomequd", "vpcomequq", "vpcomequw",+      "vpcomeqw", "vpcomfalseb", "vpcomfalsed", "vpcomfalseq", "vpcomfalseub",+      "vpcomfalseud", "vpcomfalseuq", "vpcomfalseuw", "vpcomfalsew", "vpcomgeb",+      "vpcomged", "vpcomgeq", "vpcomgeub", "vpcomgeud", "vpcomgeuq", "vpcomgeuw",+      "vpcomgew", "vpcomgtb", "vpcomgtd", "vpcomgtq", "vpcomgtub", "vpcomgtud",+      "vpcomgtuq", "vpcomgtuw", "vpcomgtw", "vpcomleb", "vpcomled", "vpcomleq",+      "vpcomleub", "vpcomleud", "vpcomleuq", "vpcomleuw", "vpcomlew", "vpcomltb",+      "vpcomltd", "vpcomltq", "vpcomltub", "vpcomltud", "vpcomltuq", "vpcomltuw",+      "vpcomltw", "vpcomneqb", "vpcomneqd", "vpcomneqq", "vpcomnequb", "vpcomnequd",+      "vpcomnequq", "vpcomnequw", "vpcomneqw", "vpcomq", "vpcomtrueb", "vpcomtrued",+      "vpcomtrueq", "vpcomtrueub", "vpcomtrueud", "vpcomtrueuq", "vpcomtrueuw",+      "vpcomtruew", "vpcomub", "vpcomud", "vpcomuq", "vpcomuw", "vpcomw", "vphaddbd",+      "vphaddbq", "vphaddbw", "vphadddq", "vphaddubd", "vphaddubq", "vphaddubw",+      "vphaddudq", "vphadduwd", "vphadduwq", "vphaddwd", "vphaddwq", "vphsubbw",+      "vphsubdq", "vphsubwd", "vpmacsdd", "vpmacsdqh", "vpmacsdql", "vpmacssdd",+      "vpmacssdqh", "vpmacssdql", "vpmacsswd", "vpmacssww", "vpmacswd", "vpmacsww",+      "vpmadcsswd", "vpmadcswd", "vpperm", "vprotb", "vprotd", "vprotq", "vprotw",+      "vpshab", "vpshad", "vpshaq", "vpshaw", "vpshlb", "vpshld", "vpshlq", "vpshlw",      -- 3DNow! Instructions-       "pavgusb", "pf2id", "pf2iw", "pfacc", "pfadd", "pfcmpeq", "pfcmpge", "pfcmpgt",-       "pfmax", "pfmin", "pfmul", "pfnacc", "pfpnacc", "pfrcp", "pfrcpit1", "pfrcpit2",-       "pfrsqit1", "pfrsqrt", "pfsub", "pfsubr", "pi2fd", "pi2fw", "pmulhrw", "pswapd",+      "pavgusb", "pf2id", "pf2iw", "pfacc", "pfadd", "pfcmpeq", "pfcmpge", "pfcmpgt",+      "pfmax", "pfmin", "pfmul", "pfnacc", "pfpnacc", "pfrcp", "pfrcpit1", "pfrcpit2",+      "pfrsqit1", "pfrsqrt", "pfsub", "pfsubr", "pi2fd", "pi2fw", "pmulhrw", "pswapd",      -- VMX Instructions-        "invept", "invpcid", "invvpid", "vmclear", "vmptrld", "vmptrst", "vmread",-        "vmwrite", "vmxon",+      "invept", "invpcid", "invvpid", "vmclear", "vmptrld", "vmptrst", "vmread",+      "vmwrite", "vmxon",     },   },-  { Id=3, -- ============================== LABELS ==============================-    Regex=[[ ^\s*([.]{0,2}[A-Za-z0-9_]+): ]] ------- Labels defined with ":" --------+  { Id=3, -- ============================= LABELS ==============================+    Regex=[[ ^\s*([.]{0,2}[A-Za-z0-9_]+): ]] ----- Labels defined with ":" -----   },-  { Id=3, -- ------------------------ Labeled directive --------------- [See: #C]+  { Id=3, -- ------------------------ Labeled directive -------------- [See: #C]     Regex=[[ ^\s*([.]{0,2}[A-Za-z0-9_]+)[ \t]+(?:d[bdfpqtuw]|r[bdfpqtw]|file) ]]   },-  { Id=3, -- ------------------------- Anonymous Labels --------------------------    Regex=[[ (@[@brf]) ]]                                            -- [See: #5]+  { Id=3, -- ------------------------ Anonymous Labels -------------------------+    Regex=[[ (@[@brf]) ]]                                           -- [See: #5]   },-  { Id=3, -- -------------------------- The $ Operator- --------------------------    Regex=[[ (?<!\w|\$)\${1,2}(?!\w|\$) ]]                           -- [See: #6]+  { Id=3, -- ------------------------- The $ Operator- -------------------------+    Regex=[[ (?<!\w|\$)\${1,2}(?!\w|\$) ]]                          -- [See: #6]     -- $  = Current offset in an addressing space.     -- $$ = base address of current addressing space.   },-  { Id=4, -- ======================= COMPILER DIRECTIVES ========================+  { Id=4, -- ====================== COMPILER DIRECTIVES ========================     List={-       "z",       -- ??? undocumented                                   [See: #A]+      "z",       -- ??? undocumented                                   [See: #A]     -- Size operators-       "byte", "word", "dword", "fword", "pword", "qword",     -- 8, 16, 32, 48, 48, 64 bit-       "tbyte", "tword", "dqword", "xword", "qqword", "yword", -- 80, 80, 128, 128, 256, 256 bit-       "zword",   -- ??? undocumented                                   [See: #B]-       "dqqword", -- ??? undocumented                                   [See: #B]+      "byte", "word", "dword", "fword", "pword", "qword",     -- 8, 16, 32, 48, 48, 64 bit+      "tbyte", "tword", "dqword", "xword", "qqword", "yword", -- 80, 80, 128, 128, 256, 256 bit+      "zword",   -- ??? undocumented                                   [See: #B]+      "dqqword", -- ??? undocumented                                   [See: #B]     -- Data directives       "db", "dd", "df", "dp", "dq", "dt", "du", "dw", -- Define    (initialized data)       "rb", "rd", "rf", "rp", "rq", "rt", "rw",       -- Reserve (uninitialized data)       "file",                                         -- Include from file     -- Jump types-       "short", "near", "far",+      "short", "near", "far",     -- Preprocessor directives-       "define", "include", "irp", "irps", "irpv", "macro", "match", "postpone",-       "purge", "rept", "restore", "restruc", "struc",+      "define", "include", "irp", "irps", "irpv", "macro", "match", "postpone",+      "purge", "rept", "restore", "restruc", "struc",     -- Macro directives-       "common", "forward", "local", "reverse",+      "common", "forward", "local", "reverse",     -- Directive operators-       "align", "as", "at", "defined", "dup", "eq", "eqtype", "from", "in", "on",-       "ptr", "relativeto", "used",+      "align", "as", "at", "defined", "dup", "eq", "eqtype", "from", "in", "on",+      "ptr", "relativeto", "used",     -- AVX-512 rounding modes-       "rd", "rn", "ru", "rz", "sae",+      "rd", "rn", "ru", "rz", "sae",     -- Memory operand modifiers (unity multiplier)-       "1to2", "1to4", "1to8", "1to16", "1to32", "1to64",            -- [See: #3]+      "1to2", "1to4", "1to8", "1to16", "1to32", "1to64",            -- [See: #3]     -- Format directives       "binary", "use16", "use32", "use64",       -- MS-DOS MZ executable       "mz",       -- PE (Portable Executable)       "pe", "pe64",-            "console", "gui", "native", "efi", "efiboot", "efiruntime", "dll", "wdm",-            "nx", "large",+      "console", "gui", "native", "efi", "efiboot", "efiruntime", "dll", "wdm",+      "nx", "large",       -- COFF (Common Object File Format)       "coff",-            "ms", "ms64", "static",+      "ms", "ms64", "static",       -- ELF (Executable and Linkable Format)       "elf", "elf64",-             "interpreter", "dynamic", "note", "gnustack", "gnuehframe",+      "interpreter", "dynamic", "note", "gnustack", "gnuehframe",     -- Section directives-       "code", "data", "readable", "writable", "writeable", "executable",-       "shareable", "discardable", "notpageable", "linkremove", "linkinfo",-       "export", "import", "resource", "fixups",+      "code", "data", "readable", "writable", "writeable", "executable",+      "shareable", "discardable", "notpageable", "linkremove", "linkinfo",+      "export", "import", "resource", "fixups",     },   }, }  --[[-==============================================================================+================================================================================                                     NOTES-==============================================================================-[ 1] ESCAPED QUOTES -- Two consecutive single- ('') or double-quotes ("") inside-     a string are treated as a single literal quote. The negative lookarounds-     in the RegEx ensure that escaped quotes don't cause the current string to-     end and immediately start a new one -- as would happen with a simpler-     [=["|']=] RegEx, which "seems" to work but actually breaks single strings-     into multiple one.--[ 2] IP REGISTER -- Omission of the 'ip' register (16-bit) from the keywords-     is not a mistake. Even though I've seen in it in most highlighters syntax-     files I've looked into, it is not a part of FASM's reserved keywords and-     no instruction refers to it, so it shouldn't be highlighted.--[ 3] The tokens "1to32" and "1to64" are not present in "TABLE.INC", but they-     are mentioned in FASM's (1.71) online documentation. So I've manually-     added them to ensure backward compatibility with older code.-[ 4] OCTAL "Q" -- The alternative "q" syntax for octal numbers was introduced-     in Fasm v1.71.56.-[ 5] "@@" ANONYMOUS LABELS -- The anonymous labels token "@@", "@b"/"@r" and-     "@f" were manually added (not in 'TABLE.INC').-[ 6] "$" AND "$$" -- Manually added (not in 'TABLE.INC'). I've arbitrarily-     chosen to highlight them with samle color as labels, for two reasons:-     (1) like labels, they define an offset in the memory space; therefore-     color-sameness make sense; (2) they usually appear next to arythmetic-     operators, so a different coloring is preferable.-==============================================================================-                             TODO / KNOWN ISSUES                              -==============================================================================+================================================================================+[ 1]  ESCAPED QUOTES -- Two consecutive single- ('') or double-quotes ("") inside+      a string are treated as a single literal quote. The negative lookarounds+      in the RegEx ensure that escaped quotes don't cause the current string to+      end and immediately start a new one -- as would happen with a simpler+      [=["|']=] RegEx, which "seems" to work but actually breaks single strings+      into multiple one.++[ 2]  IP REGISTER -- Omission of the 'ip' register (16-bit) from the keywords+      is not a mistake. Even though I've seen in it in most highlighters syntax+      files I've looked into, it is not a part of FASM's reserved keywords and+      no instruction refers to it, so it shouldn't be highlighted.++[ 3]  The tokens "1to32" and "1to64" are not present in "TABLE.INC", but they+      are mentioned in FASM's (1.71) online documentation. So I've manually+      added them to ensure backward compatibility with older code.+[ 4]  OCTAL "Q" -- The alternative "q" syntax for octal numbers was introduced+      in Fasm v1.71.56.+[ 5]  "@@" ANONYMOUS LABELS -- The anonymous labels token "@@", "@b"/"@r" and+      "@f" were manually added (not in 'TABLE.INC').+[ 6]  "$" AND "$$" -- Manually added (not in 'TABLE.INC'). I've arbitrarily+      chosen to highlight them with samle color as labels, for two reasons:+      (1) like labels, they define an offset in the memory space; therefore+      color-sameness make sense; (2) they usually appear next to arythmetic+      operators, so a different coloring is preferable.+================================================================================+                              TODO / KNOWN ISSUES+================================================================================ [ A] "Z" TOKEN -- I haven't found any references about the "z" token, and I'm-     not sure how it should be handled by the highlighter.+      not sure how it should be handled by the highlighter. [ B] "ZWORD" AND "DQQWORD" -- I couldn't find any references for the "zword"-     and "dqqword" tokens, they are undocumented. I assume them to be Size-     operators.-[ C] Labeled directives are matched only if the line is not interrputed by a-     "\" character (carry on next line). Catching similar cases would have-     been too complex (comments can follow the "\").-     So highlighting of this label will fail:+      and "dqqword" tokens, they are undocumented. I assume them to be Size+      operators.+[ C]  Labeled directives are matched only if the line is not interrputed by a+      "\" character (carry on next line). Catching similar cases would have+      been too complex (comments can follow the "\").+      So highlighting of this label will fail:          some_label \   ; <- this edge case is hard to catch!             db 224-[ D] This file contains only tokens found in FASM v1.71.60, I'm not sure if-     older versions of FASM supported tokens which are now deprecated, but if-     this was the case it might be worth adding them to the keywords list so-     that older source code might be handled properly too.-==============================================================================+[ D]  This file contains only tokens found in FASM v1.71.60, I'm not sure if+      older versions of FASM supported tokens which are now deprecated, but if+      this was the case it might be worth adding them to the keywords list so+      that older source code might be handled properly too.+================================================================================                                   CHANGELOG-==============================================================================+================================================================================ v1.0 (2017/03/14)   -- First release.   -- Flat Assembler v1.71.60 (2017/03/04).   -- Highlight v3.35 (2017/02/28). v1.1 (2017/03/14)   -- Implemented some missing features for numbers (thanks to @bitRAKE for-     pointing them out):-     -- DECIMAL NUMBERS FIX: implemented the (optional) "d" suffix.-     -- ALL NUMBER TYPES FIX: implemented single quote (') and underscore (_) for+    pointing them out):+    -- DECIMAL NUMBERS FIX: implemented the (optional) "d" suffix.+    -- ALL NUMBER TYPES FIX: implemented single quote (') and underscore (_) for         splitting long numbers (eg: 1'000'000 or 1_000_000). ]]