mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 09:44:31 +00:00 
			
		
		
		
	Update runtime files
ce001a337e
also add `vimStdPlugin` keywords missing from previous updates
		
	
		
			
				
	
	
		
			378 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			378 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
" Vim syntax file
 | 
						|
" Language:	Microsoft Macro Assembler (80x86)
 | 
						|
" Orig Author:	Rob Brady <robb@datatone.com>
 | 
						|
" Maintainer:	Wu Yongwei <wuyongwei@gmail.com>
 | 
						|
" Last Change:	2022-04-24 20:07:04 +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\)MM[0-9]\>"
 | 
						|
syn match   masmRegister	"\(X\|Y\)MM1[0-5]\>"
 | 
						|
 | 
						|
" 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
 | 
						|
 | 
						|
" 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]\)\)\)\>"
 | 
						|
 | 
						|
 | 
						|
" 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
 |