Mercurial > vim
view runtime/syntax/masm.vim @ 33266:db6ecb403e75 v9.0.1901
patch 9.0.1901: win32: not correctly freeing environment
Commit: https://github.com/vim/vim/commit/ad29f6af0a2edcd1c9e78d8defe86b2155937f7c
Author: Ken Takata <kentkt@csc.jp>
Date: Sat Sep 16 13:56:02 2023 +0200
patch 9.0.1901: win32: not correctly freeing environment
Problem: win32: not correctly freeing environment
Solution: After we call GetEnvironmentStringsW, we should call
FreeEnvironmentStringsW
closes: #13096
closes: #13094
Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ken Takata <kentkt@csc.jp>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Sat, 16 Sep 2023 14:00:03 +0200 |
parents | 8752bc69eea9 |
children | aa22836fb698 |
line wrap: on
line source
" Vim syntax file " Language: Microsoft Macro Assembler (80x86) " Orig Author: Rob Brady <robb@datatone.com> " Maintainer: Wu Yongwei <wuyongwei@gmail.com> " Last Change: 2023-09-09 20:48:26 +0800 " Quit when a syntax file was already loaded if exists("b:current_syntax") finish endif let s:cpo_save = &cpo set cpo&vim syn iskeyword @,48-57,_,36,60,62,63,@-@ syn case ignore syn match masmIdentifier "[@a-z_$?][@a-z0-9_$?<>]*" syn match masmLabel "^\s*[@a-z_$?][@a-z0-9_$?]*:"he=e-1 syn match masmDecimal "[-+]\?\d\+[dt]\?" syn match masmBinary "[-+]\?[0-1]\+[by]" "put this before hex or 0bfh dies! syn match masmOctal "[-+]\?[0-7]\+[oq]" syn match masmHexadecimal "[-+]\?[0-9]\x*h" syn match masmFloatRaw "[-+]\?[0-9]\x*r" syn match masmFloat "[-+]\?\d\+\.\(\d*\(E[-+]\?\d\+\)\?\)\?" syn match masmComment ";.*" contains=@Spell syn region masmComment start=+COMMENT\s*\z(\S\)+ end=+\z1.*+ contains=@Spell syn region masmString start=+'+ end=+'+ oneline contains=@Spell syn region masmString start=+"+ end=+"+ oneline contains=@Spell syn region masmTitleArea start=+\<TITLE\s+lc=5 start=+\<SUBTITLE\s+lc=8 start=+\<SUBTTL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmTitle syn region masmTextArea start=+\<NAME\s+lc=4 start=+\<INCLUDE\s+lc=7 start=+\<INCLUDELIB\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmText syn match masmTitle "[^\t ;]\([^;]*[^\t ;]\)\?" contained contains=@Spell syn match masmText "[^\t ;]\([^;]*[^\t ;]\)\?" contained syn region masmOptionOpt start=+\<OPTION\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption syn region masmContextOpt start=+\<PUSHCONTEXT\s+lc=11 start=+\<POPCONTEXT\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmOption syn region masmModelOpt start=+\.MODEL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmType syn region masmSegmentOpt start=+\<SEGMENT\s+lc=7 end=+$+ end=+;+me=e-1 contains=masmOption,masmString syn region masmProcOpt start=+\<PROC\s+lc=4 end=+$+ end=+;+me=e-1 contains=masmOption,masmType,masmRegister,masmIdentifier syn region masmAssumeOpt start=+\<ASSUME\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmOperator,masmType,masmRegister,masmIdentifier syn 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,masmString syn keyword masmOption TINY SMALL COMPACT MEDIUM LARGE HUGE contained syn keyword masmOption NEARSTACK FARSTACK contained syn keyword masmOption PUBLIC PRIVATE STACK COMMON MEMORY AT contained syn keyword masmOption BYTE WORD DWORD PARA PAGE contained syn keyword masmOption USE16 USE32 FLAT contained syn keyword masmOption INFO READ WRITE EXECUTE SHARED contained syn keyword masmOption NOPAGE NOCACHE DISCARD contained syn keyword masmOption READONLY USES FRAME contained syn keyword masmOption CASEMAP DOTNAME NODOTNAME EMULATOR contained syn keyword masmOption NOEMULATOR EPILOGUE EXPR16 EXPR32 contained syn keyword masmOption LANGUAGE LJMP NOLJMP M510 NOM510 contained syn keyword masmOption NOKEYWORD NOSIGNEXTEND OFFSET contained syn keyword masmOption OLDMACROS NOOLDMACROS OLDSTRUCTS contained syn keyword masmOption NOOLDSTRUCTS PROC PROLOGUE READONLY contained syn keyword masmOption NOREADONLY SCOPED NOSCOPED SEGMENT contained syn keyword masmOption SETIF2 contained syn keyword masmOption ABS ALL ASSUMES CPU ERROR EXPORT contained syn keyword masmOption FORCEFRAME LISTING LOADDS NONE contained syn keyword masmOption NONUNIQUE NOTHING OS_DOS RADIX REQ contained syn keyword masmType STDCALL SYSCALL C BASIC FORTRAN PASCAL syn keyword masmType PTR NEAR FAR NEAR16 FAR16 NEAR32 FAR32 syn keyword masmType REAL4 REAL8 REAL10 BYTE SBYTE TBYTE syn keyword masmType WORD DWORD QWORD FWORD SWORD SDWORD syn keyword masmType SQWORD OWORD MMWORD XMMWORD YMMWORD syn keyword masmOperator AND NOT OR SHL SHR XOR MOD DUP syn keyword masmOperator EQ GE GT LE LT NE syn keyword masmOperator LROFFSET SEG LENGTH LENGTHOF SIZE SIZEOF syn keyword masmOperator CODEPTR DATAPTR FAR NEAR SHORT THIS TYPE syn keyword masmOperator HIGH HIGHWORD LOW LOWWORD OPATTR MASK WIDTH syn match masmOperator "OFFSET\(\sFLAT:\)\?" syn match masmOperator ".TYPE\>" syn match masmOperator "CARRY?" syn match masmOperator "OVERFLOW?" syn match masmOperator "PARITY?" syn match masmOperator "SIGN?" syn match masmOperator "ZERO?" syn keyword masmDirective ALIAS ASSUME CATSTR COMM DB DD DF DOSSEG DQ DT syn keyword masmDirective DW ECHO ELSE ELSEIF ELSEIF1 ELSEIF2 ELSEIFB syn keyword masmDirective ELSEIFDEF ELSEIFDIF ELSEIFDIFI ELSEIFE syn keyword masmDirective ELSEIFIDN ELSEIFIDNI ELSEIFNB ELSEIFNDEF END syn keyword masmDirective ENDIF ENDM ENDP ENDS EQU EVEN EXITM EXTERN syn keyword masmDirective EXTERNDEF EXTRN FOR FORC GOTO GROUP IF IF1 IF2 syn keyword masmDirective IFB IFDEF IFDIF IFDIFI IFE IFIDN IFIDNI IFNB syn keyword masmDirective IFNDEF INCLUDE INCLUDELIB INSTR INVOKE IRP syn keyword masmDirective IRPC LABEL LOCAL MACRO NAME OPTION ORG PAGE syn keyword masmDirective POPCONTEXT PROC PROTO PUBLIC PURGE PUSHCONTEXT syn keyword masmDirective RECORD REPEAT REPT SEGMENT SIZESTR STRUC syn keyword masmDirective STRUCT SUBSTR SUBTITLE SUBTTL TEXTEQU TITLE syn keyword masmDirective TYPEDEF UNION WHILE syn match masmDirective "\.8086\>" syn match masmDirective "\.8087\>" syn match masmDirective "\.NO87\>" syn match masmDirective "\.186\>" syn match masmDirective "\.286\>" syn match masmDirective "\.286C\>" syn match masmDirective "\.286P\>" syn match masmDirective "\.287\>" syn match masmDirective "\.386\>" syn match masmDirective "\.386C\>" syn match masmDirective "\.386P\>" syn match masmDirective "\.387\>" syn match masmDirective "\.486\>" syn match masmDirective "\.486P\>" syn match masmDirective "\.586\>" syn match masmDirective "\.586P\>" syn match masmDirective "\.686\>" syn match masmDirective "\.686P\>" syn match masmDirective "\.K3D\>" syn match masmDirective "\.MMX\>" syn match masmDirective "\.XMM\>" syn match masmDirective "\.ALPHA\>" syn match masmDirective "\.DOSSEG\>" syn match masmDirective "\.SEQ\>" syn match masmDirective "\.CODE\>" syn match masmDirective "\.CONST\>" syn match masmDirective "\.DATA\>" syn match masmDirective "\.DATA?" syn match masmDirective "\.EXIT\>" syn match masmDirective "\.FARDATA\>" syn match masmDirective "\.FARDATA?" syn match masmDirective "\.MODEL\>" syn match masmDirective "\.STACK\>" syn match masmDirective "\.STARTUP\>" syn match masmDirective "\.IF\>" syn match masmDirective "\.ELSE\>" syn match masmDirective "\.ELSEIF\>" syn match masmDirective "\.ENDIF\>" syn match masmDirective "\.REPEAT\>" syn match masmDirective "\.UNTIL\>" syn match masmDirective "\.UNTILCXZ\>" syn match masmDirective "\.WHILE\>" syn match masmDirective "\.ENDW\>" syn match masmDirective "\.BREAK\>" syn match masmDirective "\.CONTINUE\>" syn match masmDirective "\.ERR\>" syn match masmDirective "\.ERR1\>" syn match masmDirective "\.ERR2\>" syn match masmDirective "\.ERRB\>" syn match masmDirective "\.ERRDEF\>" syn match masmDirective "\.ERRDIF\>" syn match masmDirective "\.ERRDIFI\>" syn match masmDirective "\.ERRE\>" syn match masmDirective "\.ERRIDN\>" syn match masmDirective "\.ERRIDNI\>" syn match masmDirective "\.ERRNB\>" syn match masmDirective "\.ERRNDEF\>" syn match masmDirective "\.ERRNZ\>" syn match masmDirective "\.LALL\>" syn match masmDirective "\.SALL\>" syn match masmDirective "\.XALL\>" syn match masmDirective "\.LFCOND\>" syn match masmDirective "\.SFCOND\>" syn match masmDirective "\.TFCOND\>" syn match masmDirective "\.CREF\>" syn match masmDirective "\.NOCREF\>" syn match masmDirective "\.XCREF\>" syn match masmDirective "\.LIST\>" syn match masmDirective "\.NOLIST\>" syn match masmDirective "\.XLIST\>" syn match masmDirective "\.LISTALL\>" syn match masmDirective "\.LISTIF\>" syn match masmDirective "\.NOLISTIF\>" syn match masmDirective "\.LISTMACRO\>" syn match masmDirective "\.NOLISTMACRO\>" syn match masmDirective "\.LISTMACROALL\>" syn match masmDirective "\.FPO\>" syn match masmDirective "\.RADIX\>" syn match masmDirective "\.SAFESEH\>" syn match masmDirective "%OUT\>" syn match masmDirective "ALIGN\>" syn match masmOption "ALIGN([0-9]\+)" syn keyword masmRegister AX BX CX DX SI DI BP SP syn keyword masmRegister CS DS SS ES FS GS syn keyword masmRegister AH BH CH DH AL BL CL DL syn keyword masmRegister EAX EBX ECX EDX ESI EDI EBP ESP syn keyword masmRegister CR0 CR2 CR3 CR4 syn keyword masmRegister DR0 DR1 DR2 DR3 DR6 DR7 syn keyword masmRegister TR3 TR4 TR5 TR6 TR7 syn match masmRegister "ST([0-7])" " x86-64 registers syn keyword masmRegister RAX RBX RCX RDX RSI RDI RBP RSP syn keyword masmRegister R8 R9 R10 R11 R12 R13 R14 R15 syn keyword masmRegister R8D R9D R10D R11D R12D R13D R14D R15D syn keyword masmRegister R8W R9W R10W R11W R12W R13W R14W R15W syn keyword masmRegister R8B R9B R10B R11B R12B R13B R14B R15B " SSE/AVX registers syn match masmRegister "\(X\|Y\|Z\)MM[12]\?[0-9]\>" syn match masmRegister "\(X\|Y\|Z\)MM3[01]\>" " Instruction prefixes syn keyword masmOpcode LOCK REP REPE REPNE REPNZ REPZ " 8086/8088 opcodes syn keyword masmOpcode AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD syn keyword masmOpcode CLI CMC CMP CMPS CMPSB CMPSW CWD DAA DAS DEC syn keyword masmOpcode DIV ESC HLT IDIV IMUL IN INC INT INTO IRET syn keyword masmOpcode JCXZ JMP LAHF LDS LEA LES LODS LODSB LODSW syn keyword masmOpcode LOOP LOOPE LOOPEW LOOPNE LOOPNEW LOOPNZ syn keyword masmOpcode LOOPNZW LOOPW LOOPZ LOOPZW MOV MOVS MOVSB syn keyword masmOpcode MOVSW MUL NEG NOP NOT OR OUT POP POPF PUSH syn keyword masmOpcode PUSHF RCL RCR RET RETF RETN ROL ROR SAHF SAL syn keyword masmOpcode SAR SBB SCAS SCASB SCASW SHL SHR STC STD STI syn keyword masmOpcode STOS STOSB STOSW SUB TEST WAIT XCHG XLAT XLATB syn keyword masmOpcode XOR syn match masmOpcode "J\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" " 80186 opcodes syn keyword masmOpcode BOUND ENTER INS INSB INSW LEAVE OUTS OUTSB syn keyword masmOpcode OUTSW POPA PUSHA PUSHW " 80286 opcodes syn keyword masmOpcode ARPL LAR LSL SGDT SIDT SLDT SMSW STR VERR VERW " 80286/80386 privileged opcodes syn keyword masmOpcode CLTS LGDT LIDT LLDT LMSW LTR " 80386 opcodes syn keyword masmOpcode BSF BSR BT BTC BTR BTS CDQ CMPSD CWDE INSD syn keyword masmOpcode IRETD IRETDF IRETF JECXZ LFS LGS LODSD LOOPD syn keyword masmOpcode LOOPED LOOPNED LOOPNZD LOOPZD LSS MOVSD MOVSX syn keyword masmOpcode MOVZX OUTSD POPAD POPFD PUSHAD PUSHD PUSHFD syn keyword masmOpcode SCASD SHLD SHRD STOSD syn match masmOpcode "SET\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" " 80486 opcodes syn keyword masmOpcode BSWAP CMPXCHG INVD INVLPG WBINVD XADD " Floating-point opcodes as of 487 syn keyword masmOpFloat F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX syn keyword masmOpFloat FNCLEX FCOM FCOMP FCOMPP FCOS FDECSTP FDISI syn keyword masmOpFloat FNDISI FDIV FDIVP FDIVR FDIVRP FENI FNENI syn keyword masmOpFloat FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD syn keyword masmOpFloat FIMUL FINCSTP FINIT FNINIT FIST FISTP FISUB syn keyword masmOpFloat FISUBR FLD FLDCW FLDENV FLDLG2 FLDLN2 FLDL2E syn keyword masmOpFloat FLDL2T FLDPI FLDZ FLD1 FMUL FMULP FNOP FPATAN syn keyword masmOpFloat FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FNSAVE syn keyword masmOpFloat FSCALE FSETPM FSIN FSINCOS FSQRT FST FSTCW syn keyword masmOpFloat FNSTCW FSTENV FNSTENV FSTP FSTSW FNSTSW FSUB syn keyword masmOpFloat FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP FUCOMPP syn keyword masmOpFloat FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1 " Floating-point opcodes in Pentium and later processors syn keyword masmOpFloat FCMOVE FCMOVNE FCMOVB FCMOVBE FCMOVNB FCMOVNBE syn keyword masmOpFloat FCMOVU FCMOVNU FCOMI FUCOMI FCOMIP FUCOMIP syn keyword masmOpFloat FXSAVE FXRSTOR " MMX opcodes (Pentium w/ MMX, Pentium II, and later) syn keyword masmOpcode MOVD MOVQ PACKSSWB PACKSSDW PACKUSWB syn keyword masmOpcode PUNPCKHBW PUNPCKHWD PUNPCKHDQ syn keyword masmOpcode PUNPCKLBW PUNPCKLWD PUNPCKLDQ syn keyword masmOpcode PADDB PADDW PADDD PADDSB PADDSW PADDUSB PADDUSW syn keyword masmOpcode PSUBB PSUBW PSUBD PSUBSB PSUBSW PSUBUSB PSUBUSW syn keyword masmOpcode PMULHW PMULLW PMADDWD syn keyword masmOpcode PCMPEQB PCMPEQW PCMPEQD PCMPGTB PCMPGTW PCMPGTD syn keyword masmOpcode PAND PANDN POR PXOR syn keyword masmOpcode PSLLW PSLLD PSLLQ PSRLW PSRLD PSRLQ PSRAW PSRAD syn keyword masmOpcode EMMS " SSE opcodes (Pentium III and later) syn keyword masmOpcode MOVAPS MOVUPS MOVHPS MOVHLPS MOVLPS MOVLHPS syn keyword masmOpcode MOVMSKPS MOVSS syn keyword masmOpcode ADDPS ADDSS SUBPS SUBSS MULPS MULSS DIVPS DIVSS syn keyword masmOpcode RCPPS RCPSS SQRTPS SQRTSS RSQRTPS RSQRTSS syn keyword masmOpcode MAXPS MAXSS MINPS MINSS syn keyword masmOpcode CMPPS CMPSS COMISS UCOMISS syn keyword masmOpcode ANDPS ANDNPS ORPS XORPS syn keyword masmOpcode SHUFPS UNPCKHPS UNPCKLPS syn keyword masmOpcode CVTPI2PS CVTSI2SS CVTPS2PI CVTTPS2PI syn keyword masmOpcode CVTSS2SI CVTTSS2SI syn keyword masmOpcode LDMXCSR STMXCSR syn keyword masmOpcode PAVGB PAVGW PEXTRW PINSRW PMAXUB PMAXSW syn keyword masmOpcode PMINUB PMINSW PMOVMSKB PMULHUW PSADBW PSHUFW syn keyword masmOpcode MASKMOVQ MOVNTQ MOVNTPS SFENCE syn keyword masmOpcode PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHNTA " SSE2 opcodes (Pentium 4 and later) syn keyword masmOpcode MOVAPD MOVUPD MOVHPD MOVLPD MOVMSKPD MOVSD syn keyword masmOpcode ADDPD ADDSD SUBPD SUBSD MULPD MULSD DIVPD DIVSD syn keyword masmOpcode SQRTPD SQRTSD MAXPD MAXSD MINPD MINSD syn keyword masmOpcode ANDPD ANDNPD ORPD XORPD syn keyword masmOpcode CMPPD CMPSD COMISD UCOMISD syn keyword masmOpcode SHUFPD UNPCKHPD UNPCKLPD syn keyword masmOpcode CVTPD2PI CVTTPD2PI CVTPI2PD CVTPD2DQ syn keyword masmOpcode CVTTPD2DQ CVTDQ2PD CVTPS2PD CVTPD2PS syn keyword masmOpcode CVTSS2SD CVTSD2SS CVTSD2SI CVTTSD2SI CVTSI2SD syn keyword masmOpcode CVTDQ2PS CVTPS2DQ CVTTPS2DQ syn keyword masmOpcode MOVDQA MOVDQU MOVQ2DQ MOVDQ2Q PMULUDQ syn keyword masmOpcode PADDQ PSUBQ PSHUFLW PSHUFHW PSHUFD syn keyword masmOpcode PSLLDQ PSRLDQ PUNPCKHQDQ PUNPCKLQDQ syn keyword masmOpcode CLFLUSH LFENCE MFENCE PAUSE MASKMOVDQU syn keyword masmOpcode MOVNTPD MOVNTDQ MOVNTI " SSE3 opcodes (Pentium 4 w/ Hyper-Threading and later) syn keyword masmOpcode FISTTP LDDQU ADDSUBPS ADDSUBPD syn keyword masmOpcode HADDPS HSUBPS HADDPD HSUBPD syn keyword masmOpcode MOVSHDUP MOVSLDUP MOVDDUP MONITOR MWAIT " SSSE3 opcodes (Core and later) syn keyword masmOpcode PSIGNB PSIGNW PSIGND PABSB PABSW PABSD syn keyword masmOpcode PALIGNR PSHUFB PMULHRSW PMADDUBSW syn keyword masmOpcode PHSUBW PHSUBD PHSUBSW PHADDW PHADDD PHADDSW " SSE 4.1 opcodes (Penryn and later) syn keyword masmOpcode MPSADBW PHMINPOSUW PMULDQ PMULLD DPPS DPPD syn keyword masmOpcode BLENDPS BLENDPD BLENDVPS BLENDVPD syn keyword masmOpcode PBLENDVB PBLENDW syn keyword masmOpcode PMINSB PMAXSB PMINSD PMAXSD syn keyword masmOpcode PMINUW PMAXUW PMINUD PMAXUD syn keyword masmOpcode ROUNDPS ROUNDSS ROUNDPD ROUNDSD syn keyword masmOpcode INSERTPS PINSRB PINSRD PINSRQ syn keyword masmOpcode EXTRACTPS PEXTRB PEXTRD PEXTRQ syn keyword masmOpcode PMOVSXBW PMOVZXBW PMOVSXBD PMOVZXBD syn keyword masmOpcode PMOVSXBQ PMOVZXBQ PMOVSXWD PMOVZXWD syn keyword masmOpcode PMOVSXWQ PMOVZXWQ PMOVSXDQ PMOVZXDQ syn keyword masmOpcode PTEST PCMPEQQ PACKUSDW MOVNTDQA " SSE 4.2 opcodes (Nehalem and later) syn keyword masmOpcode PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ syn keyword masmOpcode CRC32 POPCNT LZCNT " AES-NI (Westmere (2010) and later) syn keyword masmOpcode AESENC AESENCLAST AESDEC AESDECLAST syn keyword masmOpcode AESKEYGENASSIST AESIMC PCLMULQDQ " AVX (Sandy Bridge (2011) and later) syn keyword masmOpcode VBROADCASTSS VBROADCASTSD VBROADCASTF128 syn keyword masmOpcode VINSERTF128 VEXTRACTF128 VMASKMOVPS VMASKMOVPD syn keyword masmOpcode VPERMILPS VPERMILPD VPERM2F128 syn keyword masmOpcode VZEROALL VZEROUPPER " AVX-2 (Haswell and later) syn keyword masmOpcode VPBROADCASTB VPBROADCASTW VPBROADCASTD syn keyword masmOpcode VPBROADCASTQ VBROADCASTI128 syn keyword masmOpcode VINSERTI128 VEXTRACTI128 syn keyword masmOpcode VGATHERDPD VGATHERQPD VGATHERDPS VGATHERQPS syn keyword masmOpcode VPGATHERDD VPGATHERDQ VPGATHERQD VPGATHERQQ syn keyword masmOpcode VPMASKMOVD VPMASKMOVQ syn keyword masmOpcode PERMPS VPERMD VPERMPD VPERMQ VPERM2I128 syn keyword masmOpcode VPBLENDD VPSLLVD VPSLLVQ VPSRLVD VPSRLVQ syn keyword masmOpcode VPSRAVD " AVX-512 (Knights Landing/Skylake-X and later) syn keyword masmOpcode KAND KANDN KMOV KUNPCK KNOT KOR KORTEST syn keyword masmOpcode KSHIFTL KSHIFTR KXNOR KXOR KADD KTEST syn keyword masmOpcode VBLENDMPD VBLENDMPS syn keyword masmOpcode VPBLENDMD VPBLENDMQ VPBLENDMB VPBLENDMW syn keyword masmOpcode VPCMPD VPCMPUD VPCMPQ VPCMPUQ syn keyword masmOpcode VPCMPB VPCMPUB VPCMPW VPCMPUW syn keyword masmOpcode VPTESTMD VPTESTMQ VPTESTNMD VPTESTNMQ syn keyword masmOpcode VPTESTMB VPTESTMW VPTESTNMB VPTESTNMW syn keyword masmOpcode VCOMPRESSPD VCOMPRESSPS VPCOMPRESSD VPCOMPRESSQ syn keyword masmOpcode VEXPANDPD VEXPANDPS VPEXPANDD VPEXPANDQ syn keyword masmOpcode VPERMB VPERMW VPERMT2B VPERMT2W VPERMI2PD syn keyword masmOpcode VPERMI2PS VPERMI2D VPERMI2Q VPERMI2B VPERMI2W syn keyword masmOpcode VPERMT2PS VPERMT2PD VPERMT2D VPERMT2Q syn keyword masmOpcode VSHUFF32x4 VSHUFF64x2 VSHUFI32x4 VSHUFI64x2 syn keyword masmOpcode VPMULTISHIFTQB VPTERNLOGD VPTERNLOGQ syn keyword masmOpcode VPMOVQD VPMOVSQD VPMOVUSQD VPMOVQW VPMOVSQW syn keyword masmOpcode VPMOVUSQW VPMOVQB VPMOVSQB VPMOVUSQB VPMOVDW syn keyword masmOpcode VPMOVSDW VPMOVUSDW VPMOVDB VPMOVSDB VPMOVUSDB syn keyword masmOpcode VPMOVWB VPMOVSWB VPMOVUSWB syn keyword masmOpcode VCVTPS2UDQ VCVTPD2UDQ VCVTTPS2UDQ VCVTTPD2UDQ syn keyword masmOpcode VCVTSS2USI VCVTSD2USI VCVTTSS2USI VCVTTSD2USI syn keyword masmOpcode VCVTPS2QQ VCVTPD2QQ VCVTPS2UQQ VCVTPD2UQQ syn keyword masmOpcode VCVTTPS2QQ VCVTTPD2QQ VCVTTPS2UQQ VCVTTPD2UQQ syn keyword masmOpcode VCVTUDQ2PS VCVTUDQ2PD VCVTUSI2PS VCVTUSI2PD syn keyword masmOpcode VCVTUSI2SD VCVTUSI2SS VCVTUQQ2PS VCVTUQQ2PD syn keyword masmOpcode VCVTQQ2PD VCVTQQ2PS VGETEXPPD syn keyword masmOpcode VGETEXPPS VGETEXPSD VGETEXPSS syn keyword masmOpcode VGETMANTPD VGETMANTPS VGETMANTSD VGETMANTSS syn keyword masmOpcode VFIXUPIMMPD VFIXUPIMMPS VFIXUPIMMSD VFIXUPIMMSS syn keyword masmOpcode VRCP14PD VRCP14PS VRCP14SD VRCP14SS syn keyword masmOpcode VRNDSCALEPS VRNDSCALEPD VRNDSCALESS VRNDSCALESD syn keyword masmOpcode VRSQRT14PD VRSQRT14PS VRSQRT14SD VRSQRT14SS syn keyword masmOpcode VSCALEFPS VSCALEFPD VSCALEFSS VSCALEFSD syn keyword masmOpcode VBROADCASTI32X2 VBROADCASTI32X4 VBROADCASTI32X8 syn keyword masmOpcode VBROADCASTI64X2 VBROADCASTI64X4 syn keyword masmOpcode VALIGND VALIGNQ VDBPSADBW VPABSQ VPMAXSQ syn keyword masmOpcode VPMAXUQ VPMINSQ VPMINUQ VPROLD VPROLVD VPROLQ syn keyword masmOpcode VPROLVQ VPRORD VPRORVD VPRORQ VPRORVQ syn keyword masmOpcode VPSCATTERDD VPSCATTERDQ VPSCATTERQD VPSCATTERQQ syn keyword masmOpcode VSCATTERDPS VSCATTERDPD VSCATTERQPS VSCATTERQPD syn keyword masmOpcode VPCONFLICTD VPCONFLICTQ VPLZCNTD VPLZCNTQ syn keyword masmOpcode VPBROADCASTMB2Q VPBROADCASTMW2D syn keyword masmOpcode VEXP2PD VEXP2PS syn keyword masmOpcode VRCP28PD VRCP28PS VRCP28SD VRCP28SS syn keyword masmOpcode VRSQRT28PD VRSQRT28PS VRSQRT28SD VRSQRT28SS syn keyword masmOpcode VGATHERPF0DPS VGATHERPF0QPS VGATHERPF0DPD syn keyword masmOpcode VGATHERPF0QPD VGATHERPF1DPS VGATHERPF1QPS syn keyword masmOpcode VGATHERPF1DPD VGATHERPF1QPD VSCATTERPF0DPS syn keyword masmOpcode VSCATTERPF0QPS VSCATTERPF0DPD VSCATTERPF0QPD syn keyword masmOpcode VSCATTERPF1DPS VSCATTERPF1QPS VSCATTERPF1DPD syn keyword masmOpcode VSCATTERPF1QPD syn keyword masmOpcode V4FMADDPS V4FMADDSS V4FNMADDPS V4FNMADDSS syn keyword masmOpcode VP4DPWSSD VP4DPWSSDS syn keyword masmOpcode VFPCLASSPS VFPCLASSPD VFPCLASSSS VFPCLASSSD syn keyword masmOpcode VRANGEPS VRANGEPD VRANGESS VRANGESD syn keyword masmOpcode VREDUCEPS VREDUCEPD VREDUCESS VREDUCESD syn keyword masmOpcode VPMOVM2D VPMOVM2Q VPMOVM2B VPMOVM2W VPMOVD2M syn keyword masmOpcode VPMOVQ2M VPMOVB2M VPMOVW2M VPMULLQ syn keyword masmOpcode VPCOMPRESSB VPCOMPRESSW VPEXPANDB VPEXPANDW syn keyword masmOpcode VPSHLD VPSHLDV VPSHRD VPSHRDV syn keyword masmOpcode VPDPBUSD VPDPBUSDS VPDPWSSD VPDPWSSDS syn keyword masmOpcode VPMADD52LUQ VPMADD52HUQ syn keyword masmOpcode VPOPCNTD VPOPCNTQ VPOPCNTB VPOPCNTW syn keyword masmOpcode VPSHUFBITQMB VP2INTERSECTD VP2INTERSECTQ syn keyword masmOpcode VGF2P8AFFINEINVQB VGF2P8AFFINEQB syn keyword masmOpcode VGF2P8MULB VPCLMULQDQ syn keyword masmOpcode VAESDEC VAESDECLAST VAESENC VAESENCLAST syn keyword masmOpcode VCVTNE2PS2BF16 VCVTNEPS2BF16 VDPBF16PS syn keyword masmOpcode VADDPH VADDSH VSUBPH VSUBSH VMULPH VMULSH syn keyword masmOpcode VDIVPH VDIVSH VSQRTPH VSQRTSH syn keyword masmOpcode VFMADD132PH VFMADD213PH VFMADD231PH syn keyword masmOpcode VFMADD132SH VFMADD213SH VFMADD231SH syn keyword masmOpcode VFNMADD132PH VFNMADD213PH VFNMADD231PH syn keyword masmOpcode VFNMADD132SH VFNMADD213SH VFNMADD231SH syn keyword masmOpcode VFMSUB132PH VFMSUB213PH VFMSUB231PH syn keyword masmOpcode VFMSUB132SH VFMSUB213SH VFMSUB231SH syn keyword masmOpcode VFNMSUB132PH VFNMSUB213PH VFNMSUB231PH syn keyword masmOpcode VFNMSUB132SH VFNMSUB213SH VFNMSUB231SH syn keyword masmOpcode VFMADDSUB132PH VFMADDSUB213PH VFMADDSUB231PH syn keyword masmOpcode VFMSUBADD132PH VFMSUBADD213PH VFMSUBADD231PH syn keyword masmOpcode VREDUCEPH VREDUCESH VRNDSCALEPH VRNDSCALESH syn keyword masmOpcode VSCALEFPH VSCALEFSH VFMULCPH VFMULCSH VFCMULCPH syn keyword masmOpcode VFCMULCSH VFMADDCPH VFMADDCSH VFCMADDCPH syn keyword masmOpcode VFCMADDCSH VRCPPH VRCPSH VRSQRTPH VRSQRTSH syn keyword masmOpcode VCMPPH VCMPSH VCOMISH VUCOMISH VMAXPH VMAXSH syn keyword masmOpcode VMINPH VMINSH VFPCLASSPH VFPCLASSSH syn keyword masmOpcode VCVTW2PH VCVTUW2PH VCVTDQ2PH VCVTUDQ2PH syn keyword masmOpcode VCVTQQ2PH VCVTUQQ2PH VCVTPS2PHX VCVTPD2PH syn keyword masmOpcode VCVTSI2SH VCVTUSI2SH VCVTSS2SH VCVTSD2SH syn keyword masmOpcode VCVTPH2W VCVTTPH2W VCVTPH2UW VCVTTPH2UW syn keyword masmOpcode VCVTPH2DQ VCVTTPH2DQ VCVTPH2UDQ VCVTTPH2UDQ syn keyword masmOpcode VCVTPH2QQ VCVTTPH2QQ VCVTPH2UQQ VCVTTPH2UQQ syn keyword masmOpcode VCVTPH2PSX VCVTPH2PD VCVTSH2SI VCVTTSH2SI syn keyword masmOpcode VCVTSH2USI VCVTTSH2USI VCVTSH2SS VCVTSH2SD syn keyword masmOpcode VGETEXPPH VGETEXPSH VGETMANTPH VGETMANTSH syn keyword masmOpcode VMOVSH VMOVW VADDPD VADDPS VADDSD VADDSS syn keyword masmOpcode VANDPD VANDPS VANDNPD VANDNPS syn keyword masmOpcode VCMPPD VCMPPS VCMPSD VCMPSS syn keyword masmOpcode VCOMISD VCOMISS VDIVPD VDIVPS VDIVSD VDIVSS syn keyword masmOpcode VCVTDQ2PD VCVTDQ2PS VCVTPD2DQ VCVTPD2PS syn keyword masmOpcode VCVTPH2PS VCVTPS2PH VCVTPS2DQ VCVTPS2PD syn keyword masmOpcode VCVTSD2SI VCVTSD2SS VCVTSI2SD VCVTSI2SS syn keyword masmOpcode VCVTSS2SD VCVTSS2SI VCVTTPD2DQ VCVTTPS2DQ syn keyword masmOpcode VCVTTSD2SI VCVTTSS2SI VMAXPD VMAXPS syn keyword masmOpcode VMAXSD VMAXSS VMINPD VMINPS VMINSD VMINSS syn keyword masmOpcode VMOVAPD VMOVAPS VMOVD VMOVQ VMOVDDUP syn keyword masmOpcode VMOVHLPS VMOVHPD VMOVHPS VMOVLHPS VMOVLPD syn keyword masmOpcode VMOVLPS VMOVNTDQA VMOVNTDQ VMOVNTPD VMOVNTPS syn keyword masmOpcode VMOVSD VMOVSHDUP VMOVSLDUP VMOVSS VMOVUPD syn keyword masmOpcode VMOVUPS VMOVDQA32 VMOVDQA64 VMOVDQU8 syn keyword masmOpcode VMOVDQU16 VMOVDQU32 VMOVDQU64 VMULPD VMULPS syn keyword masmOpcode VMULSD VMULSS VORPD VORPS VSQRTPD VSQRTPS syn keyword masmOpcode VSQRTSD VSQRTSS VSUBPD VSUBPS VSUBSD VSUBSS syn keyword masmOpcode VUCOMISD VUCOMISS VUNPCKHPD VUNPCKHPS VUNPCKLPD syn keyword masmOpcode VUNPCKLPS VXORPD VXORPS VEXTRACTPS VINSERTPS syn keyword masmOpcode VPEXTRB VPEXTRW VPEXTRD VPEXTRQ VPINSRB VPINSRW syn keyword masmOpcode VPINSRD VPINSRQ VPACKSSWB VPACKSSDW VPACKUSDW syn keyword masmOpcode VPACKUSWB VPADDB VPADDW VPADDD VPADDQ VPADDSB syn keyword masmOpcode VPADDSW VPADDUSB VPADDUSW VPANDD VPANDQ VPANDND syn keyword masmOpcode VPANDNQ VPAVGB VPAVGW VPCMPEQB VPCMPEQW syn keyword masmOpcode VPCMPEQD VPCMPEQQ VPCMPGTB VPCMPGTW VPCMPGTD syn keyword masmOpcode VPCMPGTQ VPMAXSB VPMAXSW VPMAXSD VPMAXSQ syn keyword masmOpcode VPMAXUB VPMAXUW VPMAXUD VPMAXUQ VPMINSB VPMINSW syn keyword masmOpcode VPMINSD VPMINSQ VPMINUB VPMINUW VPMINUD VPMINUQ syn keyword masmOpcode VPMOVSXBW VPMOVSXBD VPMOVSXBQ VPMOVSXWD syn keyword masmOpcode VPMOVSXWQ VPMOVSXDQ VPMOVZXBW VPMOVZXBD syn keyword masmOpcode VPMOVZXBQ VPMOVZXWD VPMOVZXWQ VPMOVZXDQ VPMULDQ syn keyword masmOpcode VPMULUDQ VPMULHRSW VPMULHUW VPMULHW VPMULLD syn keyword masmOpcode VPMULLQ VPMULLW VPORD VPORQ VPSUBB VPSUBW syn keyword masmOpcode VPSUBD VPSUBQ VPSUBSB VPSUBSW VPSUBUSB VPSUBUSW syn keyword masmOpcode VPUNPCKHBW VPUNPCKHWD VPUNPCKHDQ VPUNPCKHQDQ syn keyword masmOpcode VPUNPCKLBW VPUNPCKLWD VPUNPCKLDQ VPUNPCKLQDQ syn keyword masmOpcode VPXORD VPXORQ VPSADBW VPSHUFB VPSHUFHW VPSHUFLW syn keyword masmOpcode VPSHUFD VPSLLDQ VPSLLW VPSLLD VPSLLQ VPSRAW syn keyword masmOpcode VPSRAD VPSRAQ VPSRLDQ VPSRLW VPSRLD VPSRLQ syn keyword masmOpcode VPSLLVW VPSRLVW VPSHUFPD VPSHUFPS VEXTRACTF32X4 syn keyword masmOpcode VEXTRACTF64X2 VEXTRACTF32X8 VEXTRACTF64X4 syn keyword masmOpcode VEXTRACTI32X4 VEXTRACTI64X2 VEXTRACTI32X8 syn keyword masmOpcode VEXTRACTI64X4 VINSERTF32x4 VINSERTF64X2 syn keyword masmOpcode VINSERTF32X8 VINSERTF64x4 VINSERTI32X4 syn keyword masmOpcode VINSERTI64X2 VINSERTI32X8 VINSERTI64X4 syn keyword masmOpcode VPABSB VPABSW VPABSD VPABSQ VPALIGNR syn keyword masmOpcode VPMADDUBSW VPMADDWD syn keyword masmOpcode VFMADD132PD VFMADD213PD VFMADD231PD syn keyword masmOpcode VFMADD132PS VFMADD213PS VFMADD231PS syn keyword masmOpcode VFMADD132SD VFMADD213SD VFMADD231SD syn keyword masmOpcode VFMADD132SS VFMADD213SS VFMADD231SS syn keyword masmOpcode VFMADDSUB132PD VFMADDSUB213PD VFMADDSUB231PD syn keyword masmOpcode VFMADDSUB132PS VFMADDSUB213PS VFMADDSUB231PS syn keyword masmOpcode VFMSUBADD132PD VFMSUBADD213PD VFMSUBADD231PD syn keyword masmOpcode VFMSUBADD132PS VFMSUBADD213PS VFMSUBADD231PS syn keyword masmOpcode VFMSUB132PD VFMSUB213PD VFMSUB231PD syn keyword masmOpcode VFMSUB132PS VFMSUB213PS VFMSUB231PS syn keyword masmOpcode VFMSUB132SD VFMSUB213SD VFMSUB231SD syn keyword masmOpcode VFMSUB132SS VFMSUB213SS VFMSUB231SS syn keyword masmOpcode VFNMADD132PD VFNMADD213PD VFNMADD231PD syn keyword masmOpcode VFNMADD132PS VFNMADD213PS VFNMADD231PS syn keyword masmOpcode VFNMADD132SD VFNMADD213SD VFNMADD231SD syn keyword masmOpcode VFNMADD132SS VFNMADD213SS VFNMADD231SS syn keyword masmOpcode VFNMSUB132PD VFNMSUB213PD VFNMSUB231PD syn keyword masmOpcode VFNMSUB132PS VFNMSUB213PS VFNMSUB231PS syn keyword masmOpcode VFNMSUB132SD VFNMSUB213SD VFNMSUB231SD syn keyword masmOpcode VFNMSUB132SS VFNMSUB213SS VFNMSUB231SS syn keyword masmOpcode VPSRAVW VPSRAVQ " Other opcodes in Pentium and later processors syn keyword masmOpcode CMPXCHG8B CPUID UD2 syn keyword masmOpcode RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT syn match masmOpcode "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" " Not really used by MASM, but useful for viewing GCC-generated assembly code " in Intel syntax syn match masmHexadecimal "[-+]\?0[Xx]\x*" syn keyword masmOpcode MOVABS " The default highlighting hi def link masmLabel PreProc hi def link masmComment Comment hi def link masmDirective Statement hi def link masmType Type hi def link masmOperator Type hi def link masmOption Special hi def link masmRegister Special hi def link masmString String hi def link masmText String hi def link masmTitle Title hi def link masmOpcode Statement hi def link masmOpFloat Statement hi def link masmHexadecimal Number hi def link masmDecimal Number hi def link masmOctal Number hi def link masmBinary Number hi def link masmFloatRaw Number hi def link masmFloat Number hi def link masmIdentifier Identifier syntax sync minlines=50 let b:current_syntax = "masm" let &cpo = s:cpo_save unlet s:cpo_save " vim: ts=8