Update runtime files.
diff --git a/runtime/syntax/masm.vim b/runtime/syntax/masm.vim
index 1711601..bb3c968 100644
--- a/runtime/syntax/masm.vim
+++ b/runtime/syntax/masm.vim
@@ -2,14 +2,11 @@
 " Language:	Microsoft Macro Assembler (80x86)
 " Orig Author:	Rob Brady <robb@datatone.com>
 " Maintainer:	Wu Yongwei <wuyongwei@gmail.com>
-" Last Change:	$Date: 2012/02/04 12:45:39 $
-" $Revision: 1.46 $
+" Last Change:	$Date: 2013/11/13 11:49:24 $
+" $Revision: 1.48 $
 
-" For version 5.x: Clear all syntax items
-" For version 6.x: Quit when a syntax file was already loaded
-if version < 600
-  syntax clear
-elseif exists("b:current_syntax")
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
   finish
 endif
 
@@ -194,6 +191,10 @@
 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
 
@@ -302,50 +303,69 @@
 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]\)\)\)\>"
 
 
-" Define the default highlighting.
-" For version 5.7 and earlier: only when not done already
-" For version 5.8 and later: only when an item doesn't have highlighting yet
-if version >= 508 || !exists("did_masm_syntax_inits")
-  if version < 508
-    let did_masm_syntax_inits = 1
-    command -nargs=+ HiLink hi link <args>
-  else
-    command -nargs=+ HiLink hi def link <args>
-  endif
+" 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
 
-  " The default methods for highlighting.  Can be overridden later
-  HiLink masmLabel	PreProc
-  HiLink masmComment	Comment
-  HiLink masmDirective	Statement
-  HiLink masmType	Type
-  HiLink masmOperator	Type
-  HiLink masmOption	Special
-  HiLink masmRegister	Special
-  HiLink masmString	String
-  HiLink masmText	String
-  HiLink masmTitle	Title
-  HiLink masmOpcode	Statement
-  HiLink 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
 
-  HiLink masmHexadecimal Number
-  HiLink masmDecimal	Number
-  HiLink masmOctal	Number
-  HiLink masmBinary	Number
-  HiLink masmFloatRaw	Number
-  HiLink masmFloat	Number
+hi def link masmIdentifier	Identifier
 
-  HiLink masmIdentifier Identifier
-
-  syntax sync minlines=50
-
-  delcommand HiLink
-endif
+syntax sync minlines=50
 
 let b:current_syntax = "masm"
 
diff --git a/runtime/syntax/mix.vim b/runtime/syntax/mix.vim
new file mode 100644
index 0000000..9ab98ea
--- /dev/null
+++ b/runtime/syntax/mix.vim
@@ -0,0 +1,83 @@
+" Vim syntax file
+" Language:	MIX (Donald Knuth's assembly language used in TAOCP)
+" Maintainer:	Wu Yongwei <wuyongwei@gmail.com>
+" Filenames:	*.mixal *.mix
+" Last Change:  2013 Nov 13
+
+" Quit when a syntax file was already loaded
+if exists("b:current_syntax")
+  finish
+endif
+
+let s:cpo_save = &cpo
+set cpo&vim
+
+syn case ignore
+
+" Special processing of ALF directive: implementations vary whether quotation
+" marks are needed
+syn match mixAlfParam		#\s\{1,2\}"\?[^"]\{,5\}"\?# contains=mixAlfDirective,mixString nextgroup=mixEndComment contained
+
+" Region for parameters
+syn match mixParam		#[-+*/:=0-9a-z,()"]\+# contains=mixIdentifier,mixSpecial,mixNumber,mixString,mixLabel nextgroup=mixEndComment contained
+
+" Comment at the line end
+syn match mixEndComment		".*" contains=mixRegister contained
+
+" Identifier; must go before literals
+syn match mixIdentifier		"[a-z0-9_]\+" contained
+
+" Literals
+syn match mixSpecial		"[-+*/:=]" contained
+syn match mixNumber		"[0-9]\+\>" contained
+syn region mixString		start=+"+ skip=+\\"+ end=+"+ contained
+
+" Labels
+syn match mixLabel		"^[a-z0-9_]\{,10\}\s\+" nextgroup=mixAlfSpecial,mixOpcode,mixDirective
+syn match mixLabel		"[0-9][BF]" contained
+
+" Comments
+syn match mixComment		"^\*.*" contains=mixRegister
+
+" Directives
+syn keyword mixDirective 	ORIG EQU CON END nextgroup=mixParam contained skipwhite
+syn keyword mixDirective 	ALF nextgroup=mixAlfParam contained
+
+" Opcodes
+syn keyword mixOpcode	NOP HLT NUM CHAR FLOT FIX nextgroup=mixEndComment contained
+syn keyword mixOpcode	FADD FSUB FMUL FDIV FCMP MOVE ADD SUB MUL DIV IOC IN OUT JRED JBUS JMP JSJ JOV JNOV JL JE JG JLE JNE JGE SLA SRA SLAX SRAX SLC SRC nextgroup=mixParam contained skipwhite
+
+syn match mixOpcode	"LD[AX1-6]N\?\>" nextgroup=mixParam contained skipwhite
+syn match mixOpcode	"ST[AX1-6JZ]\>" nextgroup=mixParam contained skipwhite
+syn match mixOpcode	"EN[TN][AX1-6]\>" nextgroup=mixParam contained skipwhite
+syn match mixOpcode	"INC[AX1-6]\>" nextgroup=mixParam contained skipwhite
+syn match mixOpcode	"DEC[AX1-6]\>" nextgroup=mixParam contained skipwhite
+syn match mixOpcode	"CMP[AX1-6]\>" nextgroup=mixParam contained skipwhite
+syn match mixOpcode	"J[AX1-6]N\?[NZP]\>" nextgroup=mixParam contained skipwhite
+
+" Switch back to being case sensitive
+syn case match
+
+" Registers (only to used in comments now)
+syn keyword mixRegister	rA rX rI1 rI2 rI3 rI4 rI5 rI6 rJ contained
+
+" The default highlighting
+hi def link mixRegister		Special
+hi def link mixLabel		Define
+hi def link mixComment		Comment
+hi def link mixEndComment	Comment
+hi def link mixDirective	Keyword
+hi def link mixOpcode		Keyword
+
+hi def link mixSpecial		Special
+hi def link mixNumber		Number
+hi def link mixString		String
+hi def link mixAlfParam		String
+hi def link mixIdentifier	Identifier
+
+let b:current_syntax = "mix"
+
+let &cpo = s:cpo_save
+unlet s:cpo_save
+
+" vim: ts=8