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