neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

masm.vim (28626B)


      1 " Vim syntax file
      2 " 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 +0800
      6 
      7 " Quit when a syntax file was already loaded
      8 if exists("b:current_syntax")
      9  finish
     10 endif
     11 
     12 let s:cpo_save = &cpo
     13 set cpo&vim
     14 
     15 syn iskeyword @,48-57,_,36,60,62,63,@-@
     16 
     17 syn case ignore
     18 
     19 
     20 syn match masmIdentifier	"[@a-z_$?][@a-z0-9_$?<>]*"
     21 syn match masmLabel		"^\s*[@a-z_$?][@a-z0-9_$?]*:"he=e-1
     22 
     23 syn match masmDecimal		"[-+]\?\d\+[dt]\?"
     24 syn match masmBinary		"[-+]\?[0-1]\+[by]"  "put this before hex or 0bfh dies!
     25 syn match masmOctal		"[-+]\?[0-7]\+[oq]"
     26 syn match masmHexadecimal	"[-+]\?[0-9]\x*h"
     27 syn match masmFloatRaw		"[-+]\?[0-9]\x*r"
     28 syn match masmFloat		"[-+]\?\d\+\.\(\d*\(E[-+]\?\d\+\)\?\)\?"
     29 
     30 syn match masmComment		";.*" contains=@Spell
     31 syn region masmComment		start=+COMMENT\s*\z(\S\)+ end=+\z1.*+ contains=@Spell
     32 syn region masmString		start=+'+ end=+'+ oneline contains=@Spell
     33 syn region masmString		start=+"+ end=+"+ oneline contains=@Spell
     34 
     35 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
     36 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
     37 syn match masmTitle		"[^\t ;]\([^;]*[^\t ;]\)\?" contained contains=@Spell
     38 syn match masmText		"[^\t ;]\([^;]*[^\t ;]\)\?" contained
     39 
     40 syn region masmOptionOpt	start=+\<OPTION\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption
     41 syn region masmContextOpt	start=+\<PUSHCONTEXT\s+lc=11 start=+\<POPCONTEXT\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmOption
     42 syn region masmModelOpt		start=+\.MODEL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmType
     43 syn region masmSegmentOpt	start=+\<SEGMENT\s+lc=7 end=+$+ end=+;+me=e-1 contains=masmOption,masmString
     44 syn region masmProcOpt		start=+\<PROC\s+lc=4 end=+$+ end=+;+me=e-1 contains=masmOption,masmType,masmRegister,masmIdentifier
     45 syn region masmAssumeOpt	start=+\<ASSUME\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmOperator,masmType,masmRegister,masmIdentifier
     46 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
     47 
     48 syn keyword masmOption		TINY SMALL COMPACT MEDIUM LARGE HUGE contained
     49 syn keyword masmOption		NEARSTACK FARSTACK contained
     50 syn keyword masmOption		PUBLIC PRIVATE STACK COMMON MEMORY AT contained
     51 syn keyword masmOption		BYTE WORD DWORD PARA PAGE contained
     52 syn keyword masmOption		USE16 USE32 FLAT contained
     53 syn keyword masmOption		INFO READ WRITE EXECUTE SHARED contained
     54 syn keyword masmOption		NOPAGE NOCACHE DISCARD contained
     55 syn keyword masmOption		READONLY USES FRAME contained
     56 syn keyword masmOption		CASEMAP DOTNAME NODOTNAME EMULATOR contained
     57 syn keyword masmOption		NOEMULATOR EPILOGUE EXPR16 EXPR32 contained
     58 syn keyword masmOption		LANGUAGE LJMP NOLJMP M510 NOM510 contained
     59 syn keyword masmOption		NOKEYWORD NOSIGNEXTEND OFFSET contained
     60 syn keyword masmOption		OLDMACROS NOOLDMACROS OLDSTRUCTS contained
     61 syn keyword masmOption		NOOLDSTRUCTS PROC PROLOGUE READONLY contained
     62 syn keyword masmOption		NOREADONLY SCOPED NOSCOPED SEGMENT contained
     63 syn keyword masmOption		SETIF2 contained
     64 syn keyword masmOption		ABS ALL ASSUMES CPU ERROR EXPORT contained
     65 syn keyword masmOption		FORCEFRAME LISTING LOADDS NONE contained
     66 syn keyword masmOption		NONUNIQUE NOTHING OS_DOS RADIX REQ contained
     67 syn keyword masmType		STDCALL SYSCALL C BASIC FORTRAN PASCAL
     68 syn keyword masmType		PTR NEAR FAR NEAR16 FAR16 NEAR32 FAR32
     69 syn keyword masmType		REAL4 REAL8 REAL10 BYTE SBYTE TBYTE
     70 syn keyword masmType		WORD DWORD QWORD FWORD SWORD SDWORD
     71 syn keyword masmType		SQWORD OWORD MMWORD XMMWORD YMMWORD
     72 syn keyword masmOperator	AND NOT OR SHL SHR XOR MOD DUP
     73 syn keyword masmOperator	EQ GE GT LE LT NE
     74 syn keyword masmOperator	LROFFSET SEG LENGTH LENGTHOF SIZE SIZEOF
     75 syn keyword masmOperator	CODEPTR DATAPTR FAR NEAR SHORT THIS TYPE
     76 syn keyword masmOperator	HIGH HIGHWORD LOW LOWWORD OPATTR MASK WIDTH
     77 syn match   masmOperator	"OFFSET\(\sFLAT:\)\?"
     78 syn match   masmOperator	".TYPE\>"
     79 syn match   masmOperator	"CARRY?"
     80 syn match   masmOperator	"OVERFLOW?"
     81 syn match   masmOperator	"PARITY?"
     82 syn match   masmOperator	"SIGN?"
     83 syn match   masmOperator	"ZERO?"
     84 syn keyword masmDirective	ALIAS ASSUME CATSTR COMM DB DD DF DOSSEG DQ DT
     85 syn keyword masmDirective	DW ECHO ELSE ELSEIF ELSEIF1 ELSEIF2 ELSEIFB
     86 syn keyword masmDirective	ELSEIFDEF ELSEIFDIF ELSEIFDIFI ELSEIFE
     87 syn keyword masmDirective	ELSEIFIDN ELSEIFIDNI ELSEIFNB ELSEIFNDEF END
     88 syn keyword masmDirective	ENDIF ENDM ENDP ENDS EQU EVEN EXITM EXTERN
     89 syn keyword masmDirective	EXTERNDEF EXTRN FOR FORC GOTO GROUP IF IF1 IF2
     90 syn keyword masmDirective	IFB IFDEF IFDIF IFDIFI IFE IFIDN IFIDNI IFNB
     91 syn keyword masmDirective	IFNDEF INCLUDE INCLUDELIB INSTR INVOKE IRP
     92 syn keyword masmDirective	IRPC LABEL LOCAL MACRO NAME OPTION ORG PAGE
     93 syn keyword masmDirective	POPCONTEXT PROC PROTO PUBLIC PURGE PUSHCONTEXT
     94 syn keyword masmDirective	RECORD REPEAT REPT SEGMENT SIZESTR STRUC
     95 syn keyword masmDirective	STRUCT SUBSTR SUBTITLE SUBTTL TEXTEQU TITLE
     96 syn keyword masmDirective	TYPEDEF UNION WHILE
     97 syn match   masmDirective	"\.8086\>"
     98 syn match   masmDirective	"\.8087\>"
     99 syn match   masmDirective	"\.NO87\>"
    100 syn match   masmDirective	"\.186\>"
    101 syn match   masmDirective	"\.286\>"
    102 syn match   masmDirective	"\.286C\>"
    103 syn match   masmDirective	"\.286P\>"
    104 syn match   masmDirective	"\.287\>"
    105 syn match   masmDirective	"\.386\>"
    106 syn match   masmDirective	"\.386C\>"
    107 syn match   masmDirective	"\.386P\>"
    108 syn match   masmDirective	"\.387\>"
    109 syn match   masmDirective	"\.486\>"
    110 syn match   masmDirective	"\.486P\>"
    111 syn match   masmDirective	"\.586\>"
    112 syn match   masmDirective	"\.586P\>"
    113 syn match   masmDirective	"\.686\>"
    114 syn match   masmDirective	"\.686P\>"
    115 syn match   masmDirective	"\.K3D\>"
    116 syn match   masmDirective	"\.MMX\>"
    117 syn match   masmDirective	"\.XMM\>"
    118 syn match   masmDirective	"\.ALPHA\>"
    119 syn match   masmDirective	"\.DOSSEG\>"
    120 syn match   masmDirective	"\.SEQ\>"
    121 syn match   masmDirective	"\.CODE\>"
    122 syn match   masmDirective	"\.CONST\>"
    123 syn match   masmDirective	"\.DATA\>"
    124 syn match   masmDirective	"\.DATA?"
    125 syn match   masmDirective	"\.EXIT\>"
    126 syn match   masmDirective	"\.FARDATA\>"
    127 syn match   masmDirective	"\.FARDATA?"
    128 syn match   masmDirective	"\.MODEL\>"
    129 syn match   masmDirective	"\.STACK\>"
    130 syn match   masmDirective	"\.STARTUP\>"
    131 syn match   masmDirective	"\.IF\>"
    132 syn match   masmDirective	"\.ELSE\>"
    133 syn match   masmDirective	"\.ELSEIF\>"
    134 syn match   masmDirective	"\.ENDIF\>"
    135 syn match   masmDirective	"\.REPEAT\>"
    136 syn match   masmDirective	"\.UNTIL\>"
    137 syn match   masmDirective	"\.UNTILCXZ\>"
    138 syn match   masmDirective	"\.WHILE\>"
    139 syn match   masmDirective	"\.ENDW\>"
    140 syn match   masmDirective	"\.BREAK\>"
    141 syn match   masmDirective	"\.CONTINUE\>"
    142 syn match   masmDirective	"\.ERR\>"
    143 syn match   masmDirective	"\.ERR1\>"
    144 syn match   masmDirective	"\.ERR2\>"
    145 syn match   masmDirective	"\.ERRB\>"
    146 syn match   masmDirective	"\.ERRDEF\>"
    147 syn match   masmDirective	"\.ERRDIF\>"
    148 syn match   masmDirective	"\.ERRDIFI\>"
    149 syn match   masmDirective	"\.ERRE\>"
    150 syn match   masmDirective	"\.ERRIDN\>"
    151 syn match   masmDirective	"\.ERRIDNI\>"
    152 syn match   masmDirective	"\.ERRNB\>"
    153 syn match   masmDirective	"\.ERRNDEF\>"
    154 syn match   masmDirective	"\.ERRNZ\>"
    155 syn match   masmDirective	"\.LALL\>"
    156 syn match   masmDirective	"\.SALL\>"
    157 syn match   masmDirective	"\.XALL\>"
    158 syn match   masmDirective	"\.LFCOND\>"
    159 syn match   masmDirective	"\.SFCOND\>"
    160 syn match   masmDirective	"\.TFCOND\>"
    161 syn match   masmDirective	"\.CREF\>"
    162 syn match   masmDirective	"\.NOCREF\>"
    163 syn match   masmDirective	"\.XCREF\>"
    164 syn match   masmDirective	"\.LIST\>"
    165 syn match   masmDirective	"\.NOLIST\>"
    166 syn match   masmDirective	"\.XLIST\>"
    167 syn match   masmDirective	"\.LISTALL\>"
    168 syn match   masmDirective	"\.LISTIF\>"
    169 syn match   masmDirective	"\.NOLISTIF\>"
    170 syn match   masmDirective	"\.LISTMACRO\>"
    171 syn match   masmDirective	"\.NOLISTMACRO\>"
    172 syn match   masmDirective	"\.LISTMACROALL\>"
    173 syn match   masmDirective	"\.FPO\>"
    174 syn match   masmDirective	"\.RADIX\>"
    175 syn match   masmDirective	"\.SAFESEH\>"
    176 syn match   masmDirective	"%OUT\>"
    177 syn match   masmDirective	"ALIGN\>"
    178 syn match   masmOption		"ALIGN([0-9]\+)"
    179 
    180 syn keyword masmRegister	AX BX CX DX SI DI BP SP
    181 syn keyword masmRegister	CS DS SS ES FS GS
    182 syn keyword masmRegister	AH BH CH DH AL BL CL DL
    183 syn keyword masmRegister	EAX EBX ECX EDX ESI EDI EBP ESP
    184 syn keyword masmRegister	CR0 CR2 CR3 CR4
    185 syn keyword masmRegister	DR0 DR1 DR2 DR3 DR6 DR7
    186 syn keyword masmRegister	TR3 TR4 TR5 TR6 TR7
    187 syn match   masmRegister	"ST([0-7])"
    188 
    189 " x86-64 registers
    190 syn keyword masmRegister	RAX RBX RCX RDX RSI RDI RBP RSP
    191 syn keyword masmRegister	R8 R9 R10 R11 R12 R13 R14 R15
    192 syn keyword masmRegister	R8D R9D R10D R11D R12D R13D R14D R15D
    193 syn keyword masmRegister	R8W R9W R10W R11W R12W R13W R14W R15W
    194 syn keyword masmRegister	R8B R9B R10B R11B R12B R13B R14B R15B
    195 
    196 " SSE/AVX registers
    197 syn match   masmRegister	"\(X\|Y\|Z\)MM[12]\?[0-9]\>"
    198 syn match   masmRegister	"\(X\|Y\|Z\)MM3[01]\>"
    199 
    200 " Instruction prefixes
    201 syn keyword masmOpcode		LOCK REP REPE REPNE REPNZ REPZ
    202 
    203 " 8086/8088 opcodes
    204 syn keyword masmOpcode		AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD
    205 syn keyword masmOpcode		CLI CMC CMP CMPS CMPSB CMPSW CWD DAA DAS DEC
    206 syn keyword masmOpcode		DIV ESC HLT IDIV IMUL IN INC INT INTO IRET
    207 syn keyword masmOpcode		JCXZ JMP LAHF LDS LEA LES LODS LODSB LODSW
    208 syn keyword masmOpcode		LOOP LOOPE LOOPEW LOOPNE LOOPNEW LOOPNZ
    209 syn keyword masmOpcode		LOOPNZW LOOPW LOOPZ LOOPZW MOV MOVS MOVSB
    210 syn keyword masmOpcode		MOVSW MUL NEG NOP NOT OR OUT POP POPF PUSH
    211 syn keyword masmOpcode		PUSHF RCL RCR RET RETF RETN ROL ROR SAHF SAL
    212 syn keyword masmOpcode		SAR SBB SCAS SCASB SCASW SHL SHR STC STD STI
    213 syn keyword masmOpcode		STOS STOSB STOSW SUB TEST WAIT XCHG XLAT XLATB
    214 syn keyword masmOpcode		XOR
    215 syn match   masmOpcode	      "J\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"
    216 
    217 " 80186 opcodes
    218 syn keyword masmOpcode		BOUND ENTER INS INSB INSW LEAVE OUTS OUTSB
    219 syn keyword masmOpcode		OUTSW POPA PUSHA PUSHW
    220 
    221 " 80286 opcodes
    222 syn keyword masmOpcode		ARPL LAR LSL SGDT SIDT SLDT SMSW STR VERR VERW
    223 
    224 " 80286/80386 privileged opcodes
    225 syn keyword masmOpcode		CLTS LGDT LIDT LLDT LMSW LTR
    226 
    227 " 80386 opcodes
    228 syn keyword masmOpcode		BSF BSR BT BTC BTR BTS CDQ CMPSD CWDE INSD
    229 syn keyword masmOpcode		IRETD IRETDF IRETF JECXZ LFS LGS LODSD LOOPD
    230 syn keyword masmOpcode		LOOPED LOOPNED LOOPNZD LOOPZD LSS MOVSD MOVSX
    231 syn keyword masmOpcode		MOVZX OUTSD POPAD POPFD PUSHAD PUSHD PUSHFD
    232 syn keyword masmOpcode		SCASD SHLD SHRD STOSD
    233 syn match   masmOpcode	    "SET\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"
    234 
    235 " 80486 opcodes
    236 syn keyword masmOpcode		BSWAP CMPXCHG INVD INVLPG WBINVD XADD
    237 
    238 " Floating-point opcodes as of 487
    239 syn keyword masmOpFloat		F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX
    240 syn keyword masmOpFloat		FNCLEX FCOM FCOMP FCOMPP FCOS FDECSTP FDISI
    241 syn keyword masmOpFloat		FNDISI FDIV FDIVP FDIVR FDIVRP FENI FNENI
    242 syn keyword masmOpFloat		FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD
    243 syn keyword masmOpFloat		FIMUL FINCSTP FINIT FNINIT FIST FISTP FISUB
    244 syn keyword masmOpFloat		FISUBR FLD FLDCW FLDENV FLDLG2 FLDLN2 FLDL2E
    245 syn keyword masmOpFloat		FLDL2T FLDPI FLDZ FLD1 FMUL FMULP FNOP FPATAN
    246 syn keyword masmOpFloat		FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FNSAVE
    247 syn keyword masmOpFloat		FSCALE FSETPM FSIN FSINCOS FSQRT FST FSTCW
    248 syn keyword masmOpFloat		FNSTCW FSTENV FNSTENV FSTP FSTSW FNSTSW FSUB
    249 syn keyword masmOpFloat		FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP FUCOMPP
    250 syn keyword masmOpFloat		FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1
    251 
    252 " Floating-point opcodes in Pentium and later processors
    253 syn keyword masmOpFloat		FCMOVE FCMOVNE FCMOVB FCMOVBE FCMOVNB FCMOVNBE
    254 syn keyword masmOpFloat		FCMOVU FCMOVNU FCOMI FUCOMI FCOMIP FUCOMIP
    255 syn keyword masmOpFloat		FXSAVE FXRSTOR
    256 
    257 " MMX opcodes (Pentium w/ MMX, Pentium II, and later)
    258 syn keyword masmOpcode		MOVD MOVQ PACKSSWB PACKSSDW PACKUSWB
    259 syn keyword masmOpcode		PUNPCKHBW PUNPCKHWD PUNPCKHDQ
    260 syn keyword masmOpcode		PUNPCKLBW PUNPCKLWD PUNPCKLDQ
    261 syn keyword masmOpcode		PADDB PADDW PADDD PADDSB PADDSW PADDUSB PADDUSW
    262 syn keyword masmOpcode		PSUBB PSUBW PSUBD PSUBSB PSUBSW PSUBUSB PSUBUSW
    263 syn keyword masmOpcode		PMULHW PMULLW PMADDWD
    264 syn keyword masmOpcode		PCMPEQB PCMPEQW PCMPEQD PCMPGTB PCMPGTW PCMPGTD
    265 syn keyword masmOpcode		PAND PANDN POR PXOR
    266 syn keyword masmOpcode		PSLLW PSLLD PSLLQ PSRLW PSRLD PSRLQ PSRAW PSRAD
    267 syn keyword masmOpcode		EMMS
    268 
    269 " SSE opcodes (Pentium III and later)
    270 syn keyword masmOpcode		MOVAPS MOVUPS MOVHPS MOVHLPS MOVLPS MOVLHPS
    271 syn keyword masmOpcode		MOVMSKPS MOVSS
    272 syn keyword masmOpcode		ADDPS ADDSS SUBPS SUBSS MULPS MULSS DIVPS DIVSS
    273 syn keyword masmOpcode		RCPPS RCPSS SQRTPS SQRTSS RSQRTPS RSQRTSS
    274 syn keyword masmOpcode		MAXPS MAXSS MINPS MINSS
    275 syn keyword masmOpcode		CMPPS CMPSS COMISS UCOMISS
    276 syn keyword masmOpcode		ANDPS ANDNPS ORPS XORPS
    277 syn keyword masmOpcode		SHUFPS UNPCKHPS UNPCKLPS
    278 syn keyword masmOpcode		CVTPI2PS CVTSI2SS CVTPS2PI CVTTPS2PI
    279 syn keyword masmOpcode		CVTSS2SI CVTTSS2SI
    280 syn keyword masmOpcode		LDMXCSR STMXCSR
    281 syn keyword masmOpcode		PAVGB PAVGW PEXTRW PINSRW PMAXUB PMAXSW
    282 syn keyword masmOpcode		PMINUB PMINSW PMOVMSKB PMULHUW PSADBW PSHUFW
    283 syn keyword masmOpcode		MASKMOVQ MOVNTQ MOVNTPS SFENCE
    284 syn keyword masmOpcode		PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHNTA
    285 
    286 " SSE2 opcodes (Pentium 4 and later)
    287 syn keyword masmOpcode		MOVAPD MOVUPD MOVHPD MOVLPD MOVMSKPD MOVSD
    288 syn keyword masmOpcode		ADDPD ADDSD SUBPD SUBSD MULPD MULSD DIVPD DIVSD
    289 syn keyword masmOpcode		SQRTPD SQRTSD MAXPD MAXSD MINPD MINSD
    290 syn keyword masmOpcode		ANDPD ANDNPD ORPD XORPD
    291 syn keyword masmOpcode		CMPPD CMPSD COMISD UCOMISD
    292 syn keyword masmOpcode		SHUFPD UNPCKHPD UNPCKLPD
    293 syn keyword masmOpcode		CVTPD2PI CVTTPD2PI CVTPI2PD CVTPD2DQ
    294 syn keyword masmOpcode		CVTTPD2DQ CVTDQ2PD CVTPS2PD CVTPD2PS
    295 syn keyword masmOpcode		CVTSS2SD CVTSD2SS CVTSD2SI CVTTSD2SI CVTSI2SD
    296 syn keyword masmOpcode		CVTDQ2PS CVTPS2DQ CVTTPS2DQ
    297 syn keyword masmOpcode		MOVDQA MOVDQU MOVQ2DQ MOVDQ2Q PMULUDQ
    298 syn keyword masmOpcode		PADDQ PSUBQ PSHUFLW PSHUFHW PSHUFD
    299 syn keyword masmOpcode		PSLLDQ PSRLDQ PUNPCKHQDQ PUNPCKLQDQ
    300 syn keyword masmOpcode		CLFLUSH LFENCE MFENCE PAUSE MASKMOVDQU
    301 syn keyword masmOpcode		MOVNTPD MOVNTDQ MOVNTI
    302 
    303 " SSE3 opcodes (Pentium 4 w/ Hyper-Threading and later)
    304 syn keyword masmOpcode		FISTTP LDDQU ADDSUBPS ADDSUBPD
    305 syn keyword masmOpcode		HADDPS HSUBPS HADDPD HSUBPD
    306 syn keyword masmOpcode		MOVSHDUP MOVSLDUP MOVDDUP MONITOR MWAIT
    307 
    308 " SSSE3 opcodes (Core and later)
    309 syn keyword masmOpcode		PSIGNB PSIGNW PSIGND PABSB PABSW PABSD
    310 syn keyword masmOpcode		PALIGNR PSHUFB PMULHRSW PMADDUBSW
    311 syn keyword masmOpcode		PHSUBW PHSUBD PHSUBSW PHADDW PHADDD PHADDSW
    312 
    313 " SSE 4.1 opcodes (Penryn and later)
    314 syn keyword masmOpcode		MPSADBW PHMINPOSUW PMULDQ PMULLD DPPS DPPD
    315 syn keyword masmOpcode		BLENDPS BLENDPD BLENDVPS BLENDVPD
    316 syn keyword masmOpcode		PBLENDVB PBLENDW
    317 syn keyword masmOpcode		PMINSB PMAXSB PMINSD PMAXSD
    318 syn keyword masmOpcode		PMINUW PMAXUW PMINUD PMAXUD
    319 syn keyword masmOpcode		ROUNDPS ROUNDSS ROUNDPD ROUNDSD
    320 syn keyword masmOpcode		INSERTPS PINSRB PINSRD PINSRQ
    321 syn keyword masmOpcode		EXTRACTPS PEXTRB PEXTRD PEXTRQ
    322 syn keyword masmOpcode		PMOVSXBW PMOVZXBW PMOVSXBD PMOVZXBD
    323 syn keyword masmOpcode		PMOVSXBQ PMOVZXBQ PMOVSXWD PMOVZXWD
    324 syn keyword masmOpcode		PMOVSXWQ PMOVZXWQ PMOVSXDQ PMOVZXDQ
    325 syn keyword masmOpcode		PTEST PCMPEQQ PACKUSDW MOVNTDQA
    326 
    327 " SSE 4.2 opcodes (Nehalem and later)
    328 syn keyword masmOpcode		PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ
    329 syn keyword masmOpcode		CRC32 POPCNT LZCNT
    330 
    331 " AES-NI (Westmere (2010) and later)
    332 syn keyword masmOpcode		AESENC AESENCLAST AESDEC AESDECLAST
    333 syn keyword masmOpcode		AESKEYGENASSIST AESIMC PCLMULQDQ
    334 
    335 " AVX (Sandy Bridge (2011) and later)
    336 syn keyword masmOpcode		VBROADCASTSS VBROADCASTSD VBROADCASTF128
    337 syn keyword masmOpcode		VINSERTF128 VEXTRACTF128 VMASKMOVPS VMASKMOVPD
    338 syn keyword masmOpcode		VPERMILPS VPERMILPD VPERM2F128
    339 syn keyword masmOpcode		VZEROALL VZEROUPPER
    340 
    341 " AVX-2 (Haswell and later)
    342 syn keyword masmOpcode		VPBROADCASTB VPBROADCASTW VPBROADCASTD
    343 syn keyword masmOpcode		VPBROADCASTQ VBROADCASTI128
    344 syn keyword masmOpcode		VINSERTI128 VEXTRACTI128
    345 syn keyword masmOpcode		VGATHERDPD VGATHERQPD VGATHERDPS VGATHERQPS
    346 syn keyword masmOpcode		VPGATHERDD VPGATHERDQ VPGATHERQD VPGATHERQQ
    347 syn keyword masmOpcode		VPMASKMOVD VPMASKMOVQ
    348 syn keyword masmOpcode		PERMPS VPERMD VPERMPD VPERMQ VPERM2I128
    349 syn keyword masmOpcode		VPBLENDD VPSLLVD VPSLLVQ VPSRLVD VPSRLVQ
    350 syn keyword masmOpcode		VPSRAVD
    351 
    352 " AVX-512 (Knights Landing/Skylake-X and later)
    353 syn keyword masmOpcode		KAND KANDN KMOV KUNPCK KNOT KOR KORTEST
    354 syn keyword masmOpcode		KSHIFTL KSHIFTR KXNOR KXOR KADD KTEST
    355 syn keyword masmOpcode		VBLENDMPD VBLENDMPS
    356 syn keyword masmOpcode		VPBLENDMD VPBLENDMQ VPBLENDMB VPBLENDMW
    357 syn keyword masmOpcode		VPCMPD VPCMPUD VPCMPQ VPCMPUQ
    358 syn keyword masmOpcode		VPCMPB VPCMPUB VPCMPW VPCMPUW
    359 syn keyword masmOpcode		VPTESTMD VPTESTMQ VPTESTNMD VPTESTNMQ
    360 syn keyword masmOpcode		VPTESTMB VPTESTMW VPTESTNMB VPTESTNMW
    361 syn keyword masmOpcode		VCOMPRESSPD VCOMPRESSPS VPCOMPRESSD VPCOMPRESSQ
    362 syn keyword masmOpcode		VEXPANDPD VEXPANDPS VPEXPANDD VPEXPANDQ
    363 syn keyword masmOpcode		VPERMB VPERMW VPERMT2B VPERMT2W VPERMI2PD
    364 syn keyword masmOpcode		VPERMI2PS VPERMI2D VPERMI2Q VPERMI2B VPERMI2W
    365 syn keyword masmOpcode		VPERMT2PS VPERMT2PD VPERMT2D VPERMT2Q
    366 syn keyword masmOpcode		VSHUFF32x4 VSHUFF64x2 VSHUFI32x4 VSHUFI64x2
    367 syn keyword masmOpcode		VPMULTISHIFTQB VPTERNLOGD VPTERNLOGQ
    368 syn keyword masmOpcode		VPMOVQD VPMOVSQD VPMOVUSQD VPMOVQW VPMOVSQW
    369 syn keyword masmOpcode		VPMOVUSQW VPMOVQB VPMOVSQB VPMOVUSQB VPMOVDW
    370 syn keyword masmOpcode		VPMOVSDW VPMOVUSDW VPMOVDB VPMOVSDB VPMOVUSDB
    371 syn keyword masmOpcode		VPMOVWB VPMOVSWB VPMOVUSWB
    372 syn keyword masmOpcode		VCVTPS2UDQ VCVTPD2UDQ VCVTTPS2UDQ VCVTTPD2UDQ
    373 syn keyword masmOpcode		VCVTSS2USI VCVTSD2USI VCVTTSS2USI VCVTTSD2USI
    374 syn keyword masmOpcode		VCVTPS2QQ VCVTPD2QQ VCVTPS2UQQ VCVTPD2UQQ
    375 syn keyword masmOpcode		VCVTTPS2QQ VCVTTPD2QQ VCVTTPS2UQQ VCVTTPD2UQQ
    376 syn keyword masmOpcode		VCVTUDQ2PS VCVTUDQ2PD VCVTUSI2PS VCVTUSI2PD
    377 syn keyword masmOpcode		VCVTUSI2SD VCVTUSI2SS VCVTUQQ2PS VCVTUQQ2PD
    378 syn keyword masmOpcode		VCVTQQ2PD VCVTQQ2PS VGETEXPPD
    379 syn keyword masmOpcode		VGETEXPPS VGETEXPSD VGETEXPSS
    380 syn keyword masmOpcode		VGETMANTPD VGETMANTPS VGETMANTSD VGETMANTSS
    381 syn keyword masmOpcode		VFIXUPIMMPD VFIXUPIMMPS VFIXUPIMMSD VFIXUPIMMSS
    382 syn keyword masmOpcode		VRCP14PD VRCP14PS VRCP14SD VRCP14SS
    383 syn keyword masmOpcode		VRNDSCALEPS VRNDSCALEPD VRNDSCALESS VRNDSCALESD
    384 syn keyword masmOpcode		VRSQRT14PD VRSQRT14PS VRSQRT14SD VRSQRT14SS
    385 syn keyword masmOpcode		VSCALEFPS VSCALEFPD VSCALEFSS VSCALEFSD
    386 syn keyword masmOpcode		VBROADCASTI32X2 VBROADCASTI32X4 VBROADCASTI32X8
    387 syn keyword masmOpcode		VBROADCASTI64X2 VBROADCASTI64X4
    388 syn keyword masmOpcode		VALIGND VALIGNQ VDBPSADBW VPABSQ VPMAXSQ
    389 syn keyword masmOpcode		VPMAXUQ VPMINSQ VPMINUQ VPROLD VPROLVD VPROLQ
    390 syn keyword masmOpcode		VPROLVQ VPRORD VPRORVD VPRORQ VPRORVQ
    391 syn keyword masmOpcode		VPSCATTERDD VPSCATTERDQ VPSCATTERQD VPSCATTERQQ
    392 syn keyword masmOpcode		VSCATTERDPS VSCATTERDPD VSCATTERQPS VSCATTERQPD
    393 syn keyword masmOpcode		VPCONFLICTD VPCONFLICTQ VPLZCNTD VPLZCNTQ
    394 syn keyword masmOpcode		VPBROADCASTMB2Q VPBROADCASTMW2D
    395 syn keyword masmOpcode		VEXP2PD VEXP2PS
    396 syn keyword masmOpcode		VRCP28PD VRCP28PS VRCP28SD VRCP28SS
    397 syn keyword masmOpcode		VRSQRT28PD VRSQRT28PS VRSQRT28SD VRSQRT28SS
    398 syn keyword masmOpcode		VGATHERPF0DPS VGATHERPF0QPS VGATHERPF0DPD
    399 syn keyword masmOpcode		VGATHERPF0QPD VGATHERPF1DPS VGATHERPF1QPS
    400 syn keyword masmOpcode		VGATHERPF1DPD VGATHERPF1QPD VSCATTERPF0DPS
    401 syn keyword masmOpcode		VSCATTERPF0QPS VSCATTERPF0DPD VSCATTERPF0QPD
    402 syn keyword masmOpcode		VSCATTERPF1DPS VSCATTERPF1QPS VSCATTERPF1DPD
    403 syn keyword masmOpcode		VSCATTERPF1QPD
    404 syn keyword masmOpcode		V4FMADDPS V4FMADDSS V4FNMADDPS V4FNMADDSS
    405 syn keyword masmOpcode		VP4DPWSSD VP4DPWSSDS
    406 syn keyword masmOpcode		VFPCLASSPS VFPCLASSPD VFPCLASSSS VFPCLASSSD
    407 syn keyword masmOpcode		VRANGEPS VRANGEPD VRANGESS VRANGESD
    408 syn keyword masmOpcode		VREDUCEPS VREDUCEPD VREDUCESS VREDUCESD
    409 syn keyword masmOpcode		VPMOVM2D VPMOVM2Q VPMOVM2B VPMOVM2W VPMOVD2M
    410 syn keyword masmOpcode		VPMOVQ2M VPMOVB2M VPMOVW2M VPMULLQ
    411 syn keyword masmOpcode		VPCOMPRESSB VPCOMPRESSW VPEXPANDB VPEXPANDW
    412 syn keyword masmOpcode		VPSHLD VPSHLDV VPSHRD VPSHRDV
    413 syn keyword masmOpcode		VPDPBUSD VPDPBUSDS VPDPWSSD VPDPWSSDS
    414 syn keyword masmOpcode		VPMADD52LUQ VPMADD52HUQ
    415 syn keyword masmOpcode		VPOPCNTD VPOPCNTQ VPOPCNTB VPOPCNTW
    416 syn keyword masmOpcode		VPSHUFBITQMB VP2INTERSECTD VP2INTERSECTQ
    417 syn keyword masmOpcode		VGF2P8AFFINEINVQB VGF2P8AFFINEQB
    418 syn keyword masmOpcode		VGF2P8MULB VPCLMULQDQ
    419 syn keyword masmOpcode		VAESDEC VAESDECLAST VAESENC VAESENCLAST
    420 syn keyword masmOpcode		VCVTNE2PS2BF16 VCVTNEPS2BF16 VDPBF16PS
    421 syn keyword masmOpcode		VADDPH VADDSH VSUBPH VSUBSH VMULPH VMULSH
    422 syn keyword masmOpcode		VDIVPH VDIVSH VSQRTPH VSQRTSH
    423 syn keyword masmOpcode		VFMADD132PH VFMADD213PH VFMADD231PH
    424 syn keyword masmOpcode		VFMADD132SH VFMADD213SH VFMADD231SH
    425 syn keyword masmOpcode		VFNMADD132PH VFNMADD213PH VFNMADD231PH
    426 syn keyword masmOpcode		VFNMADD132SH VFNMADD213SH VFNMADD231SH
    427 syn keyword masmOpcode		VFMSUB132PH VFMSUB213PH VFMSUB231PH
    428 syn keyword masmOpcode		VFMSUB132SH VFMSUB213SH VFMSUB231SH
    429 syn keyword masmOpcode		VFNMSUB132PH VFNMSUB213PH VFNMSUB231PH
    430 syn keyword masmOpcode		VFNMSUB132SH VFNMSUB213SH VFNMSUB231SH
    431 syn keyword masmOpcode		VFMADDSUB132PH VFMADDSUB213PH VFMADDSUB231PH
    432 syn keyword masmOpcode		VFMSUBADD132PH VFMSUBADD213PH VFMSUBADD231PH
    433 syn keyword masmOpcode		VREDUCEPH VREDUCESH VRNDSCALEPH VRNDSCALESH
    434 syn keyword masmOpcode		VSCALEFPH VSCALEFSH VFMULCPH VFMULCSH VFCMULCPH
    435 syn keyword masmOpcode		VFCMULCSH VFMADDCPH VFMADDCSH VFCMADDCPH
    436 syn keyword masmOpcode		VFCMADDCSH VRCPPH VRCPSH VRSQRTPH VRSQRTSH
    437 syn keyword masmOpcode		VCMPPH VCMPSH VCOMISH VUCOMISH VMAXPH VMAXSH
    438 syn keyword masmOpcode		VMINPH VMINSH VFPCLASSPH VFPCLASSSH
    439 syn keyword masmOpcode		VCVTW2PH VCVTUW2PH VCVTDQ2PH VCVTUDQ2PH
    440 syn keyword masmOpcode		VCVTQQ2PH VCVTUQQ2PH VCVTPS2PHX VCVTPD2PH
    441 syn keyword masmOpcode		VCVTSI2SH VCVTUSI2SH VCVTSS2SH VCVTSD2SH
    442 syn keyword masmOpcode		VCVTPH2W VCVTTPH2W VCVTPH2UW VCVTTPH2UW
    443 syn keyword masmOpcode		VCVTPH2DQ VCVTTPH2DQ VCVTPH2UDQ VCVTTPH2UDQ
    444 syn keyword masmOpcode		VCVTPH2QQ VCVTTPH2QQ VCVTPH2UQQ VCVTTPH2UQQ
    445 syn keyword masmOpcode		VCVTPH2PSX VCVTPH2PD VCVTSH2SI VCVTTSH2SI
    446 syn keyword masmOpcode		VCVTSH2USI VCVTTSH2USI VCVTSH2SS VCVTSH2SD
    447 syn keyword masmOpcode		VGETEXPPH VGETEXPSH VGETMANTPH VGETMANTSH
    448 syn keyword masmOpcode		VMOVSH VMOVW VADDPD VADDPS VADDSD VADDSS
    449 syn keyword masmOpcode		VANDPD VANDPS VANDNPD VANDNPS
    450 syn keyword masmOpcode		VCMPPD VCMPPS VCMPSD VCMPSS
    451 syn keyword masmOpcode		VCOMISD VCOMISS VDIVPD VDIVPS VDIVSD VDIVSS
    452 syn keyword masmOpcode		VCVTDQ2PD VCVTDQ2PS VCVTPD2DQ VCVTPD2PS
    453 syn keyword masmOpcode		VCVTPH2PS VCVTPS2PH VCVTPS2DQ VCVTPS2PD
    454 syn keyword masmOpcode		VCVTSD2SI VCVTSD2SS VCVTSI2SD VCVTSI2SS
    455 syn keyword masmOpcode		VCVTSS2SD VCVTSS2SI VCVTTPD2DQ VCVTTPS2DQ
    456 syn keyword masmOpcode		VCVTTSD2SI VCVTTSS2SI VMAXPD VMAXPS
    457 syn keyword masmOpcode		VMAXSD VMAXSS VMINPD VMINPS VMINSD VMINSS
    458 syn keyword masmOpcode		VMOVAPD VMOVAPS VMOVD VMOVQ VMOVDDUP
    459 syn keyword masmOpcode		VMOVHLPS VMOVHPD VMOVHPS VMOVLHPS VMOVLPD
    460 syn keyword masmOpcode		VMOVLPS VMOVNTDQA VMOVNTDQ VMOVNTPD VMOVNTPS
    461 syn keyword masmOpcode		VMOVSD VMOVSHDUP VMOVSLDUP VMOVSS VMOVUPD
    462 syn keyword masmOpcode		VMOVUPS VMOVDQA VMOVDQA32 VMOVDQA64
    463 syn keyword masmOpcode		VMOVDQU VMOVDQU8 VMOVDQU16 VMOVDQU32 VMOVDQU64
    464 syn keyword masmOpcode		VMULPD VMULPS
    465 syn keyword masmOpcode		VMULSD VMULSS VORPD VORPS VSQRTPD VSQRTPS
    466 syn keyword masmOpcode		VSQRTSD VSQRTSS VSUBPD VSUBPS VSUBSD VSUBSS
    467 syn keyword masmOpcode		VUCOMISD VUCOMISS VUNPCKHPD VUNPCKHPS VUNPCKLPD
    468 syn keyword masmOpcode		VUNPCKLPS VXORPD VXORPS VEXTRACTPS VINSERTPS
    469 syn keyword masmOpcode		VPEXTRB VPEXTRW VPEXTRD VPEXTRQ VPINSRB VPINSRW
    470 syn keyword masmOpcode		VPINSRD VPINSRQ VPACKSSWB VPACKSSDW VPACKUSDW
    471 syn keyword masmOpcode		VPACKUSWB VPADDB VPADDW VPADDD VPADDQ VPADDSB
    472 syn keyword masmOpcode		VPADDSW VPADDUSB VPADDUSW VPAND VPANDD VPANDQ
    473 syn keyword masmOpcode		VPANDND VPANDNQ VPAVGB VPAVGW VPCMPEQB VPCMPEQW
    474 syn keyword masmOpcode		VPCMPEQD VPCMPEQQ VPCMPGTB VPCMPGTW VPCMPGTD
    475 syn keyword masmOpcode		VPCMPGTQ VPMAXSB VPMAXSW VPMAXSD VPMAXSQ
    476 syn keyword masmOpcode		VPMAXUB VPMAXUW VPMAXUD VPMAXUQ VPMINSB VPMINSW
    477 syn keyword masmOpcode		VPMINSD VPMINSQ VPMINUB VPMINUW VPMINUD VPMINUQ
    478 syn keyword masmOpcode		VPMOVSXBW VPMOVSXBD VPMOVSXBQ VPMOVSXWD
    479 syn keyword masmOpcode		VPMOVSXWQ VPMOVSXDQ VPMOVZXBW VPMOVZXBD
    480 syn keyword masmOpcode		VPMOVZXBQ VPMOVZXWD VPMOVZXWQ VPMOVZXDQ VPMULDQ
    481 syn keyword masmOpcode		VPMULUDQ VPMULHRSW VPMULHUW VPMULHW VPMULLD
    482 syn keyword masmOpcode		VPMULLQ VPMULLW VPORD VPORQ VPSUBB VPSUBW
    483 syn keyword masmOpcode		VPSUBD VPSUBQ VPSUBSB VPSUBSW VPSUBUSB VPSUBUSW
    484 syn keyword masmOpcode		VPUNPCKHBW VPUNPCKHWD VPUNPCKHDQ VPUNPCKHQDQ
    485 syn keyword masmOpcode		VPUNPCKLBW VPUNPCKLWD VPUNPCKLDQ VPUNPCKLQDQ
    486 syn keyword masmOpcode		VPXOR VPXORD VPXORQ
    487 syn keyword masmOpcode		VPSADBW VPSHUFB VPSHUFHW VPSHUFLW
    488 syn keyword masmOpcode		VPSHUFD VPSLLDQ VPSLLW VPSLLD VPSLLQ VPSRAW
    489 syn keyword masmOpcode		VPSRAD VPSRAQ VPSRLDQ VPSRLW VPSRLD VPSRLQ
    490 syn keyword masmOpcode		VPSLLVW VPSRLVW VPSHUFPD VPSHUFPS VEXTRACTF32X4
    491 syn keyword masmOpcode		VEXTRACTF64X2 VEXTRACTF32X8 VEXTRACTF64X4
    492 syn keyword masmOpcode		VEXTRACTI32X4 VEXTRACTI64X2 VEXTRACTI32X8
    493 syn keyword masmOpcode		VEXTRACTI64X4 VINSERTF32x4 VINSERTF64X2
    494 syn keyword masmOpcode		VINSERTF32X8 VINSERTF64x4 VINSERTI32X4
    495 syn keyword masmOpcode		VINSERTI64X2 VINSERTI32X8 VINSERTI64X4
    496 syn keyword masmOpcode		VPABSB VPABSW VPABSD VPABSQ VPALIGNR
    497 syn keyword masmOpcode		VPMADDUBSW VPMADDWD
    498 syn keyword masmOpcode		VFMADD132PD VFMADD213PD VFMADD231PD
    499 syn keyword masmOpcode		VFMADD132PS VFMADD213PS VFMADD231PS
    500 syn keyword masmOpcode		VFMADD132SD VFMADD213SD VFMADD231SD
    501 syn keyword masmOpcode		VFMADD132SS VFMADD213SS VFMADD231SS
    502 syn keyword masmOpcode		VFMADDSUB132PD VFMADDSUB213PD VFMADDSUB231PD
    503 syn keyword masmOpcode		VFMADDSUB132PS VFMADDSUB213PS VFMADDSUB231PS
    504 syn keyword masmOpcode		VFMSUBADD132PD VFMSUBADD213PD VFMSUBADD231PD
    505 syn keyword masmOpcode		VFMSUBADD132PS VFMSUBADD213PS VFMSUBADD231PS
    506 syn keyword masmOpcode		VFMSUB132PD VFMSUB213PD VFMSUB231PD
    507 syn keyword masmOpcode		VFMSUB132PS VFMSUB213PS VFMSUB231PS
    508 syn keyword masmOpcode		VFMSUB132SD VFMSUB213SD VFMSUB231SD
    509 syn keyword masmOpcode		VFMSUB132SS VFMSUB213SS VFMSUB231SS
    510 syn keyword masmOpcode		VFNMADD132PD VFNMADD213PD VFNMADD231PD
    511 syn keyword masmOpcode		VFNMADD132PS VFNMADD213PS VFNMADD231PS
    512 syn keyword masmOpcode		VFNMADD132SD VFNMADD213SD VFNMADD231SD
    513 syn keyword masmOpcode		VFNMADD132SS VFNMADD213SS VFNMADD231SS
    514 syn keyword masmOpcode		VFNMSUB132PD VFNMSUB213PD VFNMSUB231PD
    515 syn keyword masmOpcode		VFNMSUB132PS VFNMSUB213PS VFNMSUB231PS
    516 syn keyword masmOpcode		VFNMSUB132SD VFNMSUB213SD VFNMSUB231SD
    517 syn keyword masmOpcode		VFNMSUB132SS VFNMSUB213SS VFNMSUB231SS
    518 syn keyword masmOpcode		VPSRAVW VPSRAVQ
    519 
    520 " Other opcodes in Pentium and later processors
    521 syn keyword masmOpcode		CMPXCHG8B CPUID UD2 MOVSXD
    522 syn keyword masmOpcode		RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT
    523 syn match   masmOpcode	   "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>"
    524 
    525 " Not really used by MASM, but useful for viewing GCC-generated assembly code
    526 " in Intel syntax
    527 syn match masmHexadecimal	"[-+]\?0[Xx]\x*"
    528 syn keyword masmOpcode		MOVABS
    529 
    530 " The default highlighting
    531 hi def link masmLabel		PreProc
    532 hi def link masmComment		Comment
    533 hi def link masmDirective	Statement
    534 hi def link masmType		Type
    535 hi def link masmOperator	Type
    536 hi def link masmOption		Special
    537 hi def link masmRegister	Special
    538 hi def link masmString		String
    539 hi def link masmText		String
    540 hi def link masmTitle		Title
    541 hi def link masmOpcode		Statement
    542 hi def link masmOpFloat		Statement
    543 
    544 hi def link masmHexadecimal	Number
    545 hi def link masmDecimal		Number
    546 hi def link masmOctal		Number
    547 hi def link masmBinary		Number
    548 hi def link masmFloatRaw	Number
    549 hi def link masmFloat		Number
    550 
    551 hi def link masmIdentifier	Identifier
    552 
    553 syntax sync minlines=50
    554 
    555 let b:current_syntax = "masm"
    556 
    557 let &cpo = s:cpo_save
    558 unlet s:cpo_save
    559 
    560 " vim: ts=8