codekingpro/portable-devtools
114k
1" Vim syntax file2" Language: Microsoft Macro Assembler (80x86)3" Orig Author: Rob Brady <robb@datatone.com>4" Maintainer: Wu Yongwei <wuyongwei@gmail.com>5" Last Change: 2023-12-20 10:20:04 +08006 7" Quit when a syntax file was already loaded8if exists("b:current_syntax")9 finish10endif11 12let s:cpo_save = &cpo13set cpo&vim14 15syn iskeyword @,48-57,_,36,60,62,63,@-@16 17syn case ignore18 19 20syn match masmIdentifier "[@a-z_$?][@a-z0-9_$?<>]*"21syn match masmLabel "^\s*[@a-z_$?][@a-z0-9_$?]*:"he=e-122 23syn match masmDecimal "[-+]\?\d\+[dt]\?"24syn match masmBinary "[-+]\?[0-1]\+[by]" "put this before hex or 0bfh dies!25syn match masmOctal "[-+]\?[0-7]\+[oq]"26syn match masmHexadecimal "[-+]\?[0-9]\x*h"27syn match masmFloatRaw "[-+]\?[0-9]\x*r"28syn match masmFloat "[-+]\?\d\+\.\(\d*\(E[-+]\?\d\+\)\?\)\?"29 30syn match masmComment ";.*" contains=@Spell31syn region masmComment start=+COMMENT\s*\z(\S\)+ end=+\z1.*+ contains=@Spell32syn region masmString start=+'+ end=+'+ oneline contains=@Spell33syn region masmString start=+"+ end=+"+ oneline contains=@Spell34 35syn region masmTitleArea start=+\<TITLE\s+lc=5 start=+\<SUBTITLE\s+lc=8 start=+\<SUBTTL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmTitle36syn region masmTextArea start=+\<NAME\s+lc=4 start=+\<INCLUDE\s+lc=7 start=+\<INCLUDELIB\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmText37syn match masmTitle "[^\t ;]\([^;]*[^\t ;]\)\?" contained contains=@Spell38syn match masmText "[^\t ;]\([^;]*[^\t ;]\)\?" contained39 40syn region masmOptionOpt start=+\<OPTION\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption41syn region masmContextOpt start=+\<PUSHCONTEXT\s+lc=11 start=+\<POPCONTEXT\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmOption42syn region masmModelOpt start=+\.MODEL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmType43syn region masmSegmentOpt start=+\<SEGMENT\s+lc=7 end=+$+ end=+;+me=e-1 contains=masmOption,masmString44syn region masmProcOpt start=+\<PROC\s+lc=4 end=+$+ end=+;+me=e-1 contains=masmOption,masmType,masmRegister,masmIdentifier45syn region masmAssumeOpt start=+\<ASSUME\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmOperator,masmType,masmRegister,masmIdentifier46syn region masmExpression start=+\.IF\s+lc=3 start=+\.WHILE\s+lc=6 start=+\.UNTIL\s+lc=6 start=+\<IF\s+lc=2 start=+\<IF2\s+lc=3 start=+\<ELSEIF\s+lc=6 start=+\<ELSEIF2\s+lc=7 start=+\<REPEAT\s+lc=6 start=+\<WHILE\s+lc=5 end=+$+ end=+;+me=e-1 contains=masmType,masmOperator,masmRegister,masmIdentifier,masmDecimal,masmBinary,masmHexadecimal,masmFloatRaw,masmString47 48syn keyword masmOption TINY SMALL COMPACT MEDIUM LARGE HUGE contained49syn keyword masmOption NEARSTACK FARSTACK contained50syn keyword masmOption PUBLIC PRIVATE STACK COMMON MEMORY AT contained51syn keyword masmOption BYTE WORD DWORD PARA PAGE contained52syn keyword masmOption USE16 USE32 FLAT contained53syn keyword masmOption INFO READ WRITE EXECUTE SHARED contained54syn keyword masmOption NOPAGE NOCACHE DISCARD contained55syn keyword masmOption READONLY USES FRAME contained56syn keyword masmOption CASEMAP DOTNAME NODOTNAME EMULATOR contained57syn keyword masmOption NOEMULATOR EPILOGUE EXPR16 EXPR32 contained58syn keyword masmOption LANGUAGE LJMP NOLJMP M510 NOM510 contained59syn keyword masmOption NOKEYWORD NOSIGNEXTEND OFFSET contained60syn keyword masmOption OLDMACROS NOOLDMACROS OLDSTRUCTS contained61syn keyword masmOption NOOLDSTRUCTS PROC PROLOGUE READONLY contained62syn keyword masmOption NOREADONLY SCOPED NOSCOPED SEGMENT contained63syn keyword masmOption SETIF2 contained64syn keyword masmOption ABS ALL ASSUMES CPU ERROR EXPORT contained65syn keyword masmOption FORCEFRAME LISTING LOADDS NONE contained66syn keyword masmOption NONUNIQUE NOTHING OS_DOS RADIX REQ contained67syn keyword masmType STDCALL SYSCALL C BASIC FORTRAN PASCAL68syn keyword masmType PTR NEAR FAR NEAR16 FAR16 NEAR32 FAR3269syn keyword masmType REAL4 REAL8 REAL10 BYTE SBYTE TBYTE70syn keyword masmType WORD DWORD QWORD FWORD SWORD SDWORD71syn keyword masmType SQWORD OWORD MMWORD XMMWORD YMMWORD72syn keyword masmOperator AND NOT OR SHL SHR XOR MOD DUP73syn keyword masmOperator EQ GE GT LE LT NE74syn keyword masmOperator LROFFSET SEG LENGTH LENGTHOF SIZE SIZEOF75syn keyword masmOperator CODEPTR DATAPTR FAR NEAR SHORT THIS TYPE76syn keyword masmOperator HIGH HIGHWORD LOW LOWWORD OPATTR MASK WIDTH77syn match masmOperator "OFFSET\(\sFLAT:\)\?"78syn match masmOperator ".TYPE\>"79syn match masmOperator "CARRY?"80syn match masmOperator "OVERFLOW?"81syn match masmOperator "PARITY?"82syn match masmOperator "SIGN?"83syn match masmOperator "ZERO?"84syn keyword masmDirective ALIAS ASSUME CATSTR COMM DB DD DF DOSSEG DQ DT85syn keyword masmDirective DW ECHO ELSE ELSEIF ELSEIF1 ELSEIF2 ELSEIFB86syn keyword masmDirective ELSEIFDEF ELSEIFDIF ELSEIFDIFI ELSEIFE87syn keyword masmDirective ELSEIFIDN ELSEIFIDNI ELSEIFNB ELSEIFNDEF END88syn keyword masmDirective ENDIF ENDM ENDP ENDS EQU EVEN EXITM EXTERN89syn keyword masmDirective EXTERNDEF EXTRN FOR FORC GOTO GROUP IF IF1 IF290syn keyword masmDirective IFB IFDEF IFDIF IFDIFI IFE IFIDN IFIDNI IFNB91syn keyword masmDirective IFNDEF INCLUDE INCLUDELIB INSTR INVOKE IRP92syn keyword masmDirective IRPC LABEL LOCAL MACRO NAME OPTION ORG PAGE93syn keyword masmDirective POPCONTEXT PROC PROTO PUBLIC PURGE PUSHCONTEXT94syn keyword masmDirective RECORD REPEAT REPT SEGMENT SIZESTR STRUC95syn keyword masmDirective STRUCT SUBSTR SUBTITLE SUBTTL TEXTEQU TITLE96syn keyword masmDirective TYPEDEF UNION WHILE97syn match masmDirective "\.8086\>"98syn match masmDirective "\.8087\>"99syn match masmDirective "\.NO87\>"100syn match masmDirective "\.186\>"101syn match masmDirective "\.286\>"102syn match masmDirective "\.286C\>"103syn match masmDirective "\.286P\>"104syn match masmDirective "\.287\>"105syn match masmDirective "\.386\>"106syn match masmDirective "\.386C\>"107syn match masmDirective "\.386P\>"108syn match masmDirective "\.387\>"109syn match masmDirective "\.486\>"110syn match masmDirective "\.486P\>"111syn match masmDirective "\.586\>"112syn match masmDirective "\.586P\>"113syn match masmDirective "\.686\>"114syn match masmDirective "\.686P\>"115syn match masmDirective "\.K3D\>"116syn match masmDirective "\.MMX\>"117syn match masmDirective "\.XMM\>"118syn match masmDirective "\.ALPHA\>"119syn match masmDirective "\.DOSSEG\>"120syn match masmDirective "\.SEQ\>"121syn match masmDirective "\.CODE\>"122syn match masmDirective "\.CONST\>"123syn match masmDirective "\.DATA\>"124syn match masmDirective "\.DATA?"125syn match masmDirective "\.EXIT\>"126syn match masmDirective "\.FARDATA\>"127syn match masmDirective "\.FARDATA?"128syn match masmDirective "\.MODEL\>"129syn match masmDirective "\.STACK\>"130syn match masmDirective "\.STARTUP\>"131syn match masmDirective "\.IF\>"132syn match masmDirective "\.ELSE\>"133syn match masmDirective "\.ELSEIF\>"134syn match masmDirective "\.ENDIF\>"135syn match masmDirective "\.REPEAT\>"136syn match masmDirective "\.UNTIL\>"137syn match masmDirective "\.UNTILCXZ\>"138syn match masmDirective "\.WHILE\>"139syn match masmDirective "\.ENDW\>"140syn match masmDirective "\.BREAK\>"141syn match masmDirective "\.CONTINUE\>"142syn match masmDirective "\.ERR\>"143syn match masmDirective "\.ERR1\>"144syn match masmDirective "\.ERR2\>"145syn match masmDirective "\.ERRB\>"146syn match masmDirective "\.ERRDEF\>"147syn match masmDirective "\.ERRDIF\>"148syn match masmDirective "\.ERRDIFI\>"149syn match masmDirective "\.ERRE\>"150syn match masmDirective "\.ERRIDN\>"151syn match masmDirective "\.ERRIDNI\>"152syn match masmDirective "\.ERRNB\>"153syn match masmDirective "\.ERRNDEF\>"154syn match masmDirective "\.ERRNZ\>"155syn match masmDirective "\.LALL\>"156syn match masmDirective "\.SALL\>"157syn match masmDirective "\.XALL\>"158syn match masmDirective "\.LFCOND\>"159syn match masmDirective "\.SFCOND\>"160syn match masmDirective "\.TFCOND\>"161syn match masmDirective "\.CREF\>"162syn match masmDirective "\.NOCREF\>"163syn match masmDirective "\.XCREF\>"164syn match masmDirective "\.LIST\>"165syn match masmDirective "\.NOLIST\>"166syn match masmDirective "\.XLIST\>"167syn match masmDirective "\.LISTALL\>"168syn match masmDirective "\.LISTIF\>"169syn match masmDirective "\.NOLISTIF\>"170syn match masmDirective "\.LISTMACRO\>"171syn match masmDirective "\.NOLISTMACRO\>"172syn match masmDirective "\.LISTMACROALL\>"173syn match masmDirective "\.FPO\>"174syn match masmDirective "\.RADIX\>"175syn match masmDirective "\.SAFESEH\>"176syn match masmDirective "%OUT\>"177syn match masmDirective "ALIGN\>"178syn match masmOption "ALIGN([0-9]\+)"179 180syn keyword masmRegister AX BX CX DX SI DI BP SP181syn keyword masmRegister CS DS SS ES FS GS182syn keyword masmRegister AH BH CH DH AL BL CL DL183syn keyword masmRegister EAX EBX ECX EDX ESI EDI EBP ESP184syn keyword masmRegister CR0 CR2 CR3 CR4185syn keyword masmRegister DR0 DR1 DR2 DR3 DR6 DR7186syn keyword masmRegister TR3 TR4 TR5 TR6 TR7187syn match masmRegister "ST([0-7])"188 189" x86-64 registers190syn keyword masmRegister RAX RBX RCX RDX RSI RDI RBP RSP191syn keyword masmRegister R8 R9 R10 R11 R12 R13 R14 R15192syn keyword masmRegister R8D R9D R10D R11D R12D R13D R14D R15D193syn keyword masmRegister R8W R9W R10W R11W R12W R13W R14W R15W194syn keyword masmRegister R8B R9B R10B R11B R12B R13B R14B R15B195 196" SSE/AVX registers197syn match masmRegister "\(X\|Y\|Z\)MM[12]\?[0-9]\>"198syn match masmRegister "\(X\|Y\|Z\)MM3[01]\>"199 200" Instruction prefixes201syn keyword masmOpcode LOCK REP REPE REPNE REPNZ REPZ202 203" 8086/8088 opcodes204syn keyword masmOpcode AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD205syn keyword masmOpcode CLI CMC CMP CMPS CMPSB CMPSW CWD DAA DAS DEC206syn keyword masmOpcode DIV ESC HLT IDIV IMUL IN INC INT INTO IRET207syn keyword masmOpcode JCXZ JMP LAHF LDS LEA LES LODS LODSB LODSW208syn keyword masmOpcode LOOP LOOPE LOOPEW LOOPNE LOOPNEW LOOPNZ209syn keyword masmOpcode LOOPNZW LOOPW LOOPZ LOOPZW MOV MOVS MOVSB210syn keyword masmOpcode MOVSW MUL NEG NOP NOT OR OUT POP POPF PUSH211syn keyword masmOpcode PUSHF RCL RCR RET RETF RETN ROL ROR SAHF SAL212syn keyword masmOpcode SAR SBB SCAS SCASB SCASW SHL SHR STC STD STI213syn keyword masmOpcode STOS STOSB STOSW SUB TEST WAIT XCHG XLAT XLATB214syn keyword masmOpcode XOR215syn match masmOpcode "J\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"216 217" 80186 opcodes218syn keyword masmOpcode BOUND ENTER INS INSB INSW LEAVE OUTS OUTSB219syn keyword masmOpcode OUTSW POPA PUSHA PUSHW220 221" 80286 opcodes222syn keyword masmOpcode ARPL LAR LSL SGDT SIDT SLDT SMSW STR VERR VERW223 224" 80286/80386 privileged opcodes225syn keyword masmOpcode CLTS LGDT LIDT LLDT LMSW LTR226 227" 80386 opcodes228syn keyword masmOpcode BSF BSR BT BTC BTR BTS CDQ CMPSD CWDE INSD229syn keyword masmOpcode IRETD IRETDF IRETF JECXZ LFS LGS LODSD LOOPD230syn keyword masmOpcode LOOPED LOOPNED LOOPNZD LOOPZD LSS MOVSD MOVSX231syn keyword masmOpcode MOVZX OUTSD POPAD POPFD PUSHAD PUSHD PUSHFD232syn keyword masmOpcode SCASD SHLD SHRD STOSD233syn match masmOpcode "SET\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"234 235" 80486 opcodes236syn keyword masmOpcode BSWAP CMPXCHG INVD INVLPG WBINVD XADD237 238" Floating-point opcodes as of 487239syn keyword masmOpFloat F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX240syn keyword masmOpFloat FNCLEX FCOM FCOMP FCOMPP FCOS FDECSTP FDISI241syn keyword masmOpFloat FNDISI FDIV FDIVP FDIVR FDIVRP FENI FNENI242syn keyword masmOpFloat FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD243syn keyword masmOpFloat FIMUL FINCSTP FINIT FNINIT FIST FISTP FISUB244syn keyword masmOpFloat FISUBR FLD FLDCW FLDENV FLDLG2 FLDLN2 FLDL2E245syn keyword masmOpFloat FLDL2T FLDPI FLDZ FLD1 FMUL FMULP FNOP FPATAN246syn keyword masmOpFloat FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FNSAVE247syn keyword masmOpFloat FSCALE FSETPM FSIN FSINCOS FSQRT FST FSTCW248syn keyword masmOpFloat FNSTCW FSTENV FNSTENV FSTP FSTSW FNSTSW FSUB249syn keyword masmOpFloat FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP FUCOMPP250syn keyword masmOpFloat FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1251 252" Floating-point opcodes in Pentium and later processors253syn keyword masmOpFloat FCMOVE FCMOVNE FCMOVB FCMOVBE FCMOVNB FCMOVNBE254syn keyword masmOpFloat FCMOVU FCMOVNU FCOMI FUCOMI FCOMIP FUCOMIP255syn keyword masmOpFloat FXSAVE FXRSTOR256 257" MMX opcodes (Pentium w/ MMX, Pentium II, and later)258syn keyword masmOpcode MOVD MOVQ PACKSSWB PACKSSDW PACKUSWB259syn keyword masmOpcode PUNPCKHBW PUNPCKHWD PUNPCKHDQ260syn keyword masmOpcode PUNPCKLBW PUNPCKLWD PUNPCKLDQ261syn keyword masmOpcode PADDB PADDW PADDD PADDSB PADDSW PADDUSB PADDUSW262syn keyword masmOpcode PSUBB PSUBW PSUBD PSUBSB PSUBSW PSUBUSB PSUBUSW263syn keyword masmOpcode PMULHW PMULLW PMADDWD264syn keyword masmOpcode PCMPEQB PCMPEQW PCMPEQD PCMPGTB PCMPGTW PCMPGTD265syn keyword masmOpcode PAND PANDN POR PXOR266syn keyword masmOpcode PSLLW PSLLD PSLLQ PSRLW PSRLD PSRLQ PSRAW PSRAD267syn keyword masmOpcode EMMS268 269" SSE opcodes (Pentium III and later)270syn keyword masmOpcode MOVAPS MOVUPS MOVHPS MOVHLPS MOVLPS MOVLHPS271syn keyword masmOpcode MOVMSKPS MOVSS272syn keyword masmOpcode ADDPS ADDSS SUBPS SUBSS MULPS MULSS DIVPS DIVSS273syn keyword masmOpcode RCPPS RCPSS SQRTPS SQRTSS RSQRTPS RSQRTSS274syn keyword masmOpcode MAXPS MAXSS MINPS MINSS275syn keyword masmOpcode CMPPS CMPSS COMISS UCOMISS276syn keyword masmOpcode ANDPS ANDNPS ORPS XORPS277syn keyword masmOpcode SHUFPS UNPCKHPS UNPCKLPS278syn keyword masmOpcode CVTPI2PS CVTSI2SS CVTPS2PI CVTTPS2PI279syn keyword masmOpcode CVTSS2SI CVTTSS2SI280syn keyword masmOpcode LDMXCSR STMXCSR281syn keyword masmOpcode PAVGB PAVGW PEXTRW PINSRW PMAXUB PMAXSW282syn keyword masmOpcode PMINUB PMINSW PMOVMSKB PMULHUW PSADBW PSHUFW283syn keyword masmOpcode MASKMOVQ MOVNTQ MOVNTPS SFENCE284syn keyword masmOpcode PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHNTA285 286" SSE2 opcodes (Pentium 4 and later)287syn keyword masmOpcode MOVAPD MOVUPD MOVHPD MOVLPD MOVMSKPD MOVSD288syn keyword masmOpcode ADDPD ADDSD SUBPD SUBSD MULPD MULSD DIVPD DIVSD289syn keyword masmOpcode SQRTPD SQRTSD MAXPD MAXSD MINPD MINSD290syn keyword masmOpcode ANDPD ANDNPD ORPD XORPD291syn keyword masmOpcode CMPPD CMPSD COMISD UCOMISD292syn keyword masmOpcode SHUFPD UNPCKHPD UNPCKLPD293syn keyword masmOpcode CVTPD2PI CVTTPD2PI CVTPI2PD CVTPD2DQ294syn keyword masmOpcode CVTTPD2DQ CVTDQ2PD CVTPS2PD CVTPD2PS295syn keyword masmOpcode CVTSS2SD CVTSD2SS CVTSD2SI CVTTSD2SI CVTSI2SD296syn keyword masmOpcode CVTDQ2PS CVTPS2DQ CVTTPS2DQ297syn keyword masmOpcode MOVDQA MOVDQU MOVQ2DQ MOVDQ2Q PMULUDQ298syn keyword masmOpcode PADDQ PSUBQ PSHUFLW PSHUFHW PSHUFD299syn keyword masmOpcode PSLLDQ PSRLDQ PUNPCKHQDQ PUNPCKLQDQ300syn keyword masmOpcode CLFLUSH LFENCE MFENCE PAUSE MASKMOVDQU301syn keyword masmOpcode MOVNTPD MOVNTDQ MOVNTI302 303" SSE3 opcodes (Pentium 4 w/ Hyper-Threading and later)304syn keyword masmOpcode FISTTP LDDQU ADDSUBPS ADDSUBPD305syn keyword masmOpcode HADDPS HSUBPS HADDPD HSUBPD306syn keyword masmOpcode MOVSHDUP MOVSLDUP MOVDDUP MONITOR MWAIT307 308" SSSE3 opcodes (Core and later)309syn keyword masmOpcode PSIGNB PSIGNW PSIGND PABSB PABSW PABSD310syn keyword masmOpcode PALIGNR PSHUFB PMULHRSW PMADDUBSW311syn keyword masmOpcode PHSUBW PHSUBD PHSUBSW PHADDW PHADDD PHADDSW312 313" SSE 4.1 opcodes (Penryn and later)314syn keyword masmOpcode MPSADBW PHMINPOSUW PMULDQ PMULLD DPPS DPPD315syn keyword masmOpcode BLENDPS BLENDPD BLENDVPS BLENDVPD316syn keyword masmOpcode PBLENDVB PBLENDW317syn keyword masmOpcode PMINSB PMAXSB PMINSD PMAXSD318syn keyword masmOpcode PMINUW PMAXUW PMINUD PMAXUD319syn keyword masmOpcode ROUNDPS ROUNDSS ROUNDPD ROUNDSD320syn keyword masmOpcode INSERTPS PINSRB PINSRD PINSRQ321syn keyword masmOpcode EXTRACTPS PEXTRB PEXTRD PEXTRQ322syn keyword masmOpcode PMOVSXBW PMOVZXBW PMOVSXBD PMOVZXBD323syn keyword masmOpcode PMOVSXBQ PMOVZXBQ PMOVSXWD PMOVZXWD324syn keyword masmOpcode PMOVSXWQ PMOVZXWQ PMOVSXDQ PMOVZXDQ325syn keyword masmOpcode PTEST PCMPEQQ PACKUSDW MOVNTDQA326 327" SSE 4.2 opcodes (Nehalem and later)328syn keyword masmOpcode PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ329syn keyword masmOpcode CRC32 POPCNT LZCNT330 331" AES-NI (Westmere (2010) and later)332syn keyword masmOpcode AESENC AESENCLAST AESDEC AESDECLAST333syn keyword masmOpcode AESKEYGENASSIST AESIMC PCLMULQDQ334 335" AVX (Sandy Bridge (2011) and later)336syn keyword masmOpcode VBROADCASTSS VBROADCASTSD VBROADCASTF128337syn keyword masmOpcode VINSERTF128 VEXTRACTF128 VMASKMOVPS VMASKMOVPD338syn keyword masmOpcode VPERMILPS VPERMILPD VPERM2F128339syn keyword masmOpcode VZEROALL VZEROUPPER340 341" AVX-2 (Haswell and later)342syn keyword masmOpcode VPBROADCASTB VPBROADCASTW VPBROADCASTD343syn keyword masmOpcode VPBROADCASTQ VBROADCASTI128344syn keyword masmOpcode VINSERTI128 VEXTRACTI128345syn keyword masmOpcode VGATHERDPD VGATHERQPD VGATHERDPS VGATHERQPS346syn keyword masmOpcode VPGATHERDD VPGATHERDQ VPGATHERQD VPGATHERQQ347syn keyword masmOpcode VPMASKMOVD VPMASKMOVQ348syn keyword masmOpcode PERMPS VPERMD VPERMPD VPERMQ VPERM2I128349syn keyword masmOpcode VPBLENDD VPSLLVD VPSLLVQ VPSRLVD VPSRLVQ350syn keyword masmOpcode VPSRAVD351 352" AVX-512 (Knights Landing/Skylake-X and later)353syn keyword masmOpcode KAND KANDN KMOV KUNPCK KNOT KOR KORTEST354syn keyword masmOpcode KSHIFTL KSHIFTR KXNOR KXOR KADD KTEST355syn keyword masmOpcode VBLENDMPD VBLENDMPS356syn keyword masmOpcode VPBLENDMD VPBLENDMQ VPBLENDMB VPBLENDMW357syn keyword masmOpcode VPCMPD VPCMPUD VPCMPQ VPCMPUQ358syn keyword masmOpcode VPCMPB VPCMPUB VPCMPW VPCMPUW359syn keyword masmOpcode VPTESTMD VPTESTMQ VPTESTNMD VPTESTNMQ360syn keyword masmOpcode VPTESTMB VPTESTMW VPTESTNMB VPTESTNMW361syn keyword masmOpcode VCOMPRESSPD VCOMPRESSPS VPCOMPRESSD VPCOMPRESSQ362syn keyword masmOpcode VEXPANDPD VEXPANDPS VPEXPANDD VPEXPANDQ363syn keyword masmOpcode VPERMB VPERMW VPERMT2B VPERMT2W VPERMI2PD364syn keyword masmOpcode VPERMI2PS VPERMI2D VPERMI2Q VPERMI2B VPERMI2W365syn keyword masmOpcode VPERMT2PS VPERMT2PD VPERMT2D VPERMT2Q366syn keyword masmOpcode VSHUFF32x4 VSHUFF64x2 VSHUFI32x4 VSHUFI64x2367syn keyword masmOpcode VPMULTISHIFTQB VPTERNLOGD VPTERNLOGQ368syn keyword masmOpcode VPMOVQD VPMOVSQD VPMOVUSQD VPMOVQW VPMOVSQW369syn keyword masmOpcode VPMOVUSQW VPMOVQB VPMOVSQB VPMOVUSQB VPMOVDW370syn keyword masmOpcode VPMOVSDW VPMOVUSDW VPMOVDB VPMOVSDB VPMOVUSDB371syn keyword masmOpcode VPMOVWB VPMOVSWB VPMOVUSWB372syn keyword masmOpcode VCVTPS2UDQ VCVTPD2UDQ VCVTTPS2UDQ VCVTTPD2UDQ373syn keyword masmOpcode VCVTSS2USI VCVTSD2USI VCVTTSS2USI VCVTTSD2USI374syn keyword masmOpcode VCVTPS2QQ VCVTPD2QQ VCVTPS2UQQ VCVTPD2UQQ375syn keyword masmOpcode VCVTTPS2QQ VCVTTPD2QQ VCVTTPS2UQQ VCVTTPD2UQQ376syn keyword masmOpcode VCVTUDQ2PS VCVTUDQ2PD VCVTUSI2PS VCVTUSI2PD377syn keyword masmOpcode VCVTUSI2SD VCVTUSI2SS VCVTUQQ2PS VCVTUQQ2PD378syn keyword masmOpcode VCVTQQ2PD VCVTQQ2PS VGETEXPPD379syn keyword masmOpcode VGETEXPPS VGETEXPSD VGETEXPSS380syn keyword masmOpcode VGETMANTPD VGETMANTPS VGETMANTSD VGETMANTSS381syn keyword masmOpcode VFIXUPIMMPD VFIXUPIMMPS VFIXUPIMMSD VFIXUPIMMSS382syn keyword masmOpcode VRCP14PD VRCP14PS VRCP14SD VRCP14SS383syn keyword masmOpcode VRNDSCALEPS VRNDSCALEPD VRNDSCALESS VRNDSCALESD384syn keyword masmOpcode VRSQRT14PD VRSQRT14PS VRSQRT14SD VRSQRT14SS385syn keyword masmOpcode VSCALEFPS VSCALEFPD VSCALEFSS VSCALEFSD386syn keyword masmOpcode VBROADCASTI32X2 VBROADCASTI32X4 VBROADCASTI32X8387syn keyword masmOpcode VBROADCASTI64X2 VBROADCASTI64X4388syn keyword masmOpcode VALIGND VALIGNQ VDBPSADBW VPABSQ VPMAXSQ389syn keyword masmOpcode VPMAXUQ VPMINSQ VPMINUQ VPROLD VPROLVD VPROLQ390syn keyword masmOpcode VPROLVQ VPRORD VPRORVD VPRORQ VPRORVQ391syn keyword masmOpcode VPSCATTERDD VPSCATTERDQ VPSCATTERQD VPSCATTERQQ392syn keyword masmOpcode VSCATTERDPS VSCATTERDPD VSCATTERQPS VSCATTERQPD393syn keyword masmOpcode VPCONFLICTD VPCONFLICTQ VPLZCNTD VPLZCNTQ394syn keyword masmOpcode VPBROADCASTMB2Q VPBROADCASTMW2D395syn keyword masmOpcode VEXP2PD VEXP2PS396syn keyword masmOpcode VRCP28PD VRCP28PS VRCP28SD VRCP28SS397syn keyword masmOpcode VRSQRT28PD VRSQRT28PS VRSQRT28SD VRSQRT28SS398syn keyword masmOpcode VGATHERPF0DPS VGATHERPF0QPS VGATHERPF0DPD399syn keyword masmOpcode VGATHERPF0QPD VGATHERPF1DPS VGATHERPF1QPS400syn keyword masmOpcode VGATHERPF1DPD VGATHERPF1QPD VSCATTERPF0DPS401syn keyword masmOpcode VSCATTERPF0QPS VSCATTERPF0DPD VSCATTERPF0QPD402syn keyword masmOpcode VSCATTERPF1DPS VSCATTERPF1QPS VSCATTERPF1DPD403syn keyword masmOpcode VSCATTERPF1QPD404syn keyword masmOpcode V4FMADDPS V4FMADDSS V4FNMADDPS V4FNMADDSS405syn keyword masmOpcode VP4DPWSSD VP4DPWSSDS406syn keyword masmOpcode VFPCLASSPS VFPCLASSPD VFPCLASSSS VFPCLASSSD407syn keyword masmOpcode VRANGEPS VRANGEPD VRANGESS VRANGESD408syn keyword masmOpcode VREDUCEPS VREDUCEPD VREDUCESS VREDUCESD409syn keyword masmOpcode VPMOVM2D VPMOVM2Q VPMOVM2B VPMOVM2W VPMOVD2M410syn keyword masmOpcode VPMOVQ2M VPMOVB2M VPMOVW2M VPMULLQ411syn keyword masmOpcode VPCOMPRESSB VPCOMPRESSW VPEXPANDB VPEXPANDW412syn keyword masmOpcode VPSHLD VPSHLDV VPSHRD VPSHRDV413syn keyword masmOpcode VPDPBUSD VPDPBUSDS VPDPWSSD VPDPWSSDS414syn keyword masmOpcode VPMADD52LUQ VPMADD52HUQ415syn keyword masmOpcode VPOPCNTD VPOPCNTQ VPOPCNTB VPOPCNTW416syn keyword masmOpcode VPSHUFBITQMB VP2INTERSECTD VP2INTERSECTQ417syn keyword masmOpcode VGF2P8AFFINEINVQB VGF2P8AFFINEQB418syn keyword masmOpcode VGF2P8MULB VPCLMULQDQ419syn keyword masmOpcode VAESDEC VAESDECLAST VAESENC VAESENCLAST420syn keyword masmOpcode VCVTNE2PS2BF16 VCVTNEPS2BF16 VDPBF16PS421syn keyword masmOpcode VADDPH VADDSH VSUBPH VSUBSH VMULPH VMULSH422syn keyword masmOpcode VDIVPH VDIVSH VSQRTPH VSQRTSH423syn keyword masmOpcode VFMADD132PH VFMADD213PH VFMADD231PH424syn keyword masmOpcode VFMADD132SH VFMADD213SH VFMADD231SH425syn keyword masmOpcode VFNMADD132PH VFNMADD213PH VFNMADD231PH426syn keyword masmOpcode VFNMADD132SH VFNMADD213SH VFNMADD231SH427syn keyword masmOpcode VFMSUB132PH VFMSUB213PH VFMSUB231PH428syn keyword masmOpcode VFMSUB132SH VFMSUB213SH VFMSUB231SH429syn keyword masmOpcode VFNMSUB132PH VFNMSUB213PH VFNMSUB231PH430syn keyword masmOpcode VFNMSUB132SH VFNMSUB213SH VFNMSUB231SH431syn keyword masmOpcode VFMADDSUB132PH VFMADDSUB213PH VFMADDSUB231PH432syn keyword masmOpcode VFMSUBADD132PH VFMSUBADD213PH VFMSUBADD231PH433syn keyword masmOpcode VREDUCEPH VREDUCESH VRNDSCALEPH VRNDSCALESH434syn keyword masmOpcode VSCALEFPH VSCALEFSH VFMULCPH VFMULCSH VFCMULCPH435syn keyword masmOpcode VFCMULCSH VFMADDCPH VFMADDCSH VFCMADDCPH436syn keyword masmOpcode VFCMADDCSH VRCPPH VRCPSH VRSQRTPH VRSQRTSH437syn keyword masmOpcode VCMPPH VCMPSH VCOMISH VUCOMISH VMAXPH VMAXSH438syn keyword masmOpcode VMINPH VMINSH VFPCLASSPH VFPCLASSSH439syn keyword masmOpcode VCVTW2PH VCVTUW2PH VCVTDQ2PH VCVTUDQ2PH440syn keyword masmOpcode VCVTQQ2PH VCVTUQQ2PH VCVTPS2PHX VCVTPD2PH441syn keyword masmOpcode VCVTSI2SH VCVTUSI2SH VCVTSS2SH VCVTSD2SH442syn keyword masmOpcode VCVTPH2W VCVTTPH2W VCVTPH2UW VCVTTPH2UW443syn keyword masmOpcode VCVTPH2DQ VCVTTPH2DQ VCVTPH2UDQ VCVTTPH2UDQ444syn keyword masmOpcode VCVTPH2QQ VCVTTPH2QQ VCVTPH2UQQ VCVTTPH2UQQ445syn keyword masmOpcode VCVTPH2PSX VCVTPH2PD VCVTSH2SI VCVTTSH2SI446syn keyword masmOpcode VCVTSH2USI VCVTTSH2USI VCVTSH2SS VCVTSH2SD447syn keyword masmOpcode VGETEXPPH VGETEXPSH VGETMANTPH VGETMANTSH448syn keyword masmOpcode VMOVSH VMOVW VADDPD VADDPS VADDSD VADDSS449syn keyword masmOpcode VANDPD VANDPS VANDNPD VANDNPS450syn keyword masmOpcode VCMPPD VCMPPS VCMPSD VCMPSS451syn keyword masmOpcode VCOMISD VCOMISS VDIVPD VDIVPS VDIVSD VDIVSS452syn keyword masmOpcode VCVTDQ2PD VCVTDQ2PS VCVTPD2DQ VCVTPD2PS453syn keyword masmOpcode VCVTPH2PS VCVTPS2PH VCVTPS2DQ VCVTPS2PD454syn keyword masmOpcode VCVTSD2SI VCVTSD2SS VCVTSI2SD VCVTSI2SS455syn keyword masmOpcode VCVTSS2SD VCVTSS2SI VCVTTPD2DQ VCVTTPS2DQ456syn keyword masmOpcode VCVTTSD2SI VCVTTSS2SI VMAXPD VMAXPS457syn keyword masmOpcode VMAXSD VMAXSS VMINPD VMINPS VMINSD VMINSS458syn keyword masmOpcode VMOVAPD VMOVAPS VMOVD VMOVQ VMOVDDUP459syn keyword masmOpcode VMOVHLPS VMOVHPD VMOVHPS VMOVLHPS VMOVLPD460syn keyword masmOpcode VMOVLPS VMOVNTDQA VMOVNTDQ VMOVNTPD VMOVNTPS461syn keyword masmOpcode VMOVSD VMOVSHDUP VMOVSLDUP VMOVSS VMOVUPD462syn keyword masmOpcode VMOVUPS VMOVDQA VMOVDQA32 VMOVDQA64463syn keyword masmOpcode VMOVDQU VMOVDQU8 VMOVDQU16 VMOVDQU32 VMOVDQU64464syn keyword masmOpcode VMULPD VMULPS465syn keyword masmOpcode VMULSD VMULSS VORPD VORPS VSQRTPD VSQRTPS466syn keyword masmOpcode VSQRTSD VSQRTSS VSUBPD VSUBPS VSUBSD VSUBSS467syn keyword masmOpcode VUCOMISD VUCOMISS VUNPCKHPD VUNPCKHPS VUNPCKLPD468syn keyword masmOpcode VUNPCKLPS VXORPD VXORPS VEXTRACTPS VINSERTPS469syn keyword masmOpcode VPEXTRB VPEXTRW VPEXTRD VPEXTRQ VPINSRB VPINSRW470syn keyword masmOpcode VPINSRD VPINSRQ VPACKSSWB VPACKSSDW VPACKUSDW471syn keyword masmOpcode VPACKUSWB VPADDB VPADDW VPADDD VPADDQ VPADDSB472syn keyword masmOpcode VPADDSW VPADDUSB VPADDUSW VPAND VPANDD VPANDQ473syn keyword masmOpcode VPANDND VPANDNQ VPAVGB VPAVGW VPCMPEQB VPCMPEQW474syn keyword masmOpcode VPCMPEQD VPCMPEQQ VPCMPGTB VPCMPGTW VPCMPGTD475syn keyword masmOpcode VPCMPGTQ VPMAXSB VPMAXSW VPMAXSD VPMAXSQ476syn keyword masmOpcode VPMAXUB VPMAXUW VPMAXUD VPMAXUQ VPMINSB VPMINSW477syn keyword masmOpcode VPMINSD VPMINSQ VPMINUB VPMINUW VPMINUD VPMINUQ478syn keyword masmOpcode VPMOVSXBW VPMOVSXBD VPMOVSXBQ VPMOVSXWD479syn keyword masmOpcode VPMOVSXWQ VPMOVSXDQ VPMOVZXBW VPMOVZXBD480syn keyword masmOpcode VPMOVZXBQ VPMOVZXWD VPMOVZXWQ VPMOVZXDQ VPMULDQ481syn keyword masmOpcode VPMULUDQ VPMULHRSW VPMULHUW VPMULHW VPMULLD482syn keyword masmOpcode VPMULLQ VPMULLW VPORD VPORQ VPSUBB VPSUBW483syn keyword masmOpcode VPSUBD VPSUBQ VPSUBSB VPSUBSW VPSUBUSB VPSUBUSW484syn keyword masmOpcode VPUNPCKHBW VPUNPCKHWD VPUNPCKHDQ VPUNPCKHQDQ485syn keyword masmOpcode VPUNPCKLBW VPUNPCKLWD VPUNPCKLDQ VPUNPCKLQDQ486syn keyword masmOpcode VPXOR VPXORD VPXORQ487syn keyword masmOpcode VPSADBW VPSHUFB VPSHUFHW VPSHUFLW488syn keyword masmOpcode VPSHUFD VPSLLDQ VPSLLW VPSLLD VPSLLQ VPSRAW489syn keyword masmOpcode VPSRAD VPSRAQ VPSRLDQ VPSRLW VPSRLD VPSRLQ490syn keyword masmOpcode VPSLLVW VPSRLVW VPSHUFPD VPSHUFPS VEXTRACTF32X4491syn keyword masmOpcode VEXTRACTF64X2 VEXTRACTF32X8 VEXTRACTF64X4492syn keyword masmOpcode VEXTRACTI32X4 VEXTRACTI64X2 VEXTRACTI32X8493syn keyword masmOpcode VEXTRACTI64X4 VINSERTF32x4 VINSERTF64X2494syn keyword masmOpcode VINSERTF32X8 VINSERTF64x4 VINSERTI32X4495syn keyword masmOpcode VINSERTI64X2 VINSERTI32X8 VINSERTI64X4496syn keyword masmOpcode VPABSB VPABSW VPABSD VPABSQ VPALIGNR497syn keyword masmOpcode VPMADDUBSW VPMADDWD498syn keyword masmOpcode VFMADD132PD VFMADD213PD VFMADD231PD499syn keyword masmOpcode VFMADD132PS VFMADD213PS VFMADD231PS500syn keyword masmOpcode VFMADD132SD VFMADD213SD VFMADD231SD501syn keyword masmOpcode VFMADD132SS VFMADD213SS VFMADD231SS502syn keyword masmOpcode VFMADDSUB132PD VFMADDSUB213PD VFMADDSUB231PD503syn keyword masmOpcode VFMADDSUB132PS VFMADDSUB213PS VFMADDSUB231PS504syn keyword masmOpcode VFMSUBADD132PD VFMSUBADD213PD VFMSUBADD231PD505syn keyword masmOpcode VFMSUBADD132PS VFMSUBADD213PS VFMSUBADD231PS506syn keyword masmOpcode VFMSUB132PD VFMSUB213PD VFMSUB231PD507syn keyword masmOpcode VFMSUB132PS VFMSUB213PS VFMSUB231PS508syn keyword masmOpcode VFMSUB132SD VFMSUB213SD VFMSUB231SD509syn keyword masmOpcode VFMSUB132SS VFMSUB213SS VFMSUB231SS510syn keyword masmOpcode VFNMADD132PD VFNMADD213PD VFNMADD231PD511syn keyword masmOpcode VFNMADD132PS VFNMADD213PS VFNMADD231PS512syn keyword masmOpcode VFNMADD132SD VFNMADD213SD VFNMADD231SD513syn keyword masmOpcode VFNMADD132SS VFNMADD213SS VFNMADD231SS514syn keyword masmOpcode VFNMSUB132PD VFNMSUB213PD VFNMSUB231PD515syn keyword masmOpcode VFNMSUB132PS VFNMSUB213PS VFNMSUB231PS516syn keyword masmOpcode VFNMSUB132SD VFNMSUB213SD VFNMSUB231SD517syn keyword masmOpcode VFNMSUB132SS VFNMSUB213SS VFNMSUB231SS518syn keyword masmOpcode VPSRAVW VPSRAVQ519 520" Other opcodes in Pentium and later processors521syn keyword masmOpcode CMPXCHG8B CPUID UD2 MOVSXD522syn keyword masmOpcode RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT523syn match masmOpcode "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"524 525" Not really used by MASM, but useful for viewing GCC-generated assembly code526" in Intel syntax527syn match masmHexadecimal "[-+]\?0[Xx]\x*"528syn keyword masmOpcode MOVABS529 530" The default highlighting531hi def link masmLabel PreProc532hi def link masmComment Comment533hi def link masmDirective Statement534hi def link masmType Type535hi def link masmOperator Type536hi def link masmOption Special537hi def link masmRegister Special538hi def link masmString String539hi def link masmText String540hi def link masmTitle Title541hi def link masmOpcode Statement542hi def link masmOpFloat Statement543 544hi def link masmHexadecimal Number545hi def link masmDecimal Number546hi def link masmOctal Number547hi def link masmBinary Number548hi def link masmFloatRaw Number549hi def link masmFloat Number550 551hi def link masmIdentifier Identifier552 553syntax sync minlines=50554 555let b:current_syntax = "masm"556 557let &cpo = s:cpo_save558unlet s:cpo_save559 560" vim: ts=8561 