summaryrefslogtreecommitdiff
path: root/runtime/syntax/nasm.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2010-09-30 21:47:56 +0200
committerBram Moolenaar <Bram@vim.org>2010-09-30 21:47:56 +0200
commit4a74803ef837eeb4d4fc799ac9a26fc93e584111 (patch)
tree49d3d0a083a47078ae42a3b353a691e005d71ab6 /runtime/syntax/nasm.vim
parentc2a406b3179af3a77fb059288ead7266cdce2ac8 (diff)
downloadvim-git-4a74803ef837eeb4d4fc799ac9a26fc93e584111.tar.gz
Runtime file updates.
Diffstat (limited to 'runtime/syntax/nasm.vim')
-rw-r--r--runtime/syntax/nasm.vim38
1 files changed, 22 insertions, 16 deletions
diff --git a/runtime/syntax/nasm.vim b/runtime/syntax/nasm.vim
index 6bbf33a9c..50cbe1ca0 100644
--- a/runtime/syntax/nasm.vim
+++ b/runtime/syntax/nasm.vim
@@ -1,9 +1,10 @@
" Vim syntax file
" Language: NASM - The Netwide Assembler (v0.98)
-" Maintainer: Manuel M.H. Stol <mmh.stol@gmx.net>
-" Last Change: 2003 May 11
-" Vim URL: http://www.vim.org/lang.html
-" NASM Home: http://www.cryogen.com/Nasm/
+" Maintainer: Andriy Sokolov <andriy145@gmail.com>
+" Original Author: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
+" Former Maintainer: Manuel M.H. Stol <Manuel.Stol@allieddata.nl>
+" Last Change: 2010 Sep 24
+" NASM Home: http://www.nasm.us/
@@ -160,6 +161,7 @@ syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure kee
"syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="^\s*UNION\>"hs=e-4 end="^\s*ENDUNION\>"re=e-8 contains=@nasmGrpCntnMacro
"syn region nasmInMacStrucDef contained transparent matchgroup=nasmStructure keepend start="\<IUNION\>" end="\<IEND\(UNION\)\=\>" contains=@nasmGrpCntnMacro,nasmInStructure
syn region nasmInMacPreConDef contained transparent matchgroup=nasmInMacPreCondit start="^\s*%ifnidni\>"hs=e-7 start="^\s*%if\(idni\|n\(ctx\|def\|idn\|num\|str\)\)\>"hs=e-6 start="^\s*%if\(ctx\|def\|idn\|nid\|num\|str\)\>"hs=e-5 start="^\s*%ifid\>"hs=e-4 start="^\s*%if\>"hs=e-2 end="%endif\>" contains=@nasmGrpCntnMacro,nasmInMacPreCondit,nasmInPreCondit
+" Todo: allow STRUC/ISTRUC to be used inside preprocessor conditional block
syn match nasmInMacPreCondit contained transparent "ctx\s"lc=3 skipwhite nextgroup=@nasmGrpNxtCtx
syn match nasmInMacPreCondit contained "^\s*%elifctx\>"hs=e-7 skipwhite nextgroup=@nasmGrpNxtCtx
syn match nasmInMacPreCondit contained "^\s*%elifnctx\>"hs=e-8 skipwhite nextgroup=@nasmGrpNxtCtx
@@ -210,15 +212,17 @@ syn cluster nasmGrpInPreCondits contains=nasmPreCondit,nasmInPreCondit,nasmCtxPr
syn cluster nasmGrpPreCondits contains=nasmPreConditDef,@nasmGrpInPreCondits,nasmCtxPreProc,nasmCtxLocLabel
" Other pre-processor statements
-syn match nasmPreProc "^\s*%rep\>"hs=e-3
+syn match nasmPreProc "^\s*%\(rep\|use\)\>"hs=e-3
syn match nasmPreProc "^\s*%line\>"hs=e-4
-syn match nasmPreProc "^\s*%\(clear\|error\)\>"hs=e-5
-syn match nasmPreProc "^\s*%endrep\>"hs=e-6
-syn match nasmPreProc "^\s*%exitrep\>"hs=e-7
+syn match nasmPreProc "^\s*%\(clear\|error\|fatal\)\>"hs=e-5
+syn match nasmPreProc "^\s*%\(endrep\|strlen\|substr\)\>"hs=e-6
+syn match nasmPreProc "^\s*%\(exitrep\|warning\)\>"hs=e-7
syn match nasmDefine "^\s*%undef\>"hs=e-5
syn match nasmDefine "^\s*%\(assign\|define\)\>"hs=e-6
syn match nasmDefine "^\s*%i\(assign\|define\)\>"hs=e-7
+syn match nasmDefine "^\s*%unmacro\>"hs=e-7
syn match nasmInclude "^\s*%include\>"hs=e-7
+" Todo: Treat the line tail after %fatal, %error, %warning as text
" Multiple pre-processor instructions on single line detection (obsolete)
"syn match nasmPreProcError +^\s*\([^\t "%';][^"%';]*\|[^\t "';][^"%';]\+\)%\a\+\>+
@@ -231,6 +235,7 @@ syn cluster nasmGrpPreProcs contains=nasmMacroDef,@nasmGrpInMacros,@nasmGrpPreCo
syn match nasmGen08Register "\<[A-D][HL]\>"
syn match nasmGen16Register "\<\([A-D]X\|[DS]I\|[BS]P\)\>"
syn match nasmGen32Register "\<E\([A-D]X\|[DS]I\|[BS]P\)\>"
+syn match nasmGen64Register "\<R\([A-D]X\|[DS]I\|[BS]P\|[89]\|1[0-5]\|[89][WD]\|1[0-5][WD]\)\>"
syn match nasmSegRegister "\<[C-GS]S\>"
syn match nasmSpcRegister "\<E\=IP\>"
syn match nasmFpuRegister "\<ST\o\>"
@@ -298,20 +303,21 @@ syn match nasmStdInstruction "\<\(CMOV\|J\|SET\)\(N\=\([ABGL]E\=\|[CEOSZ]\)\|P
syn match nasmStdInstruction "\<POP\>"
syn keyword nasmStdInstruction AAA AAD AAM AAS ADC ADD AND
syn keyword nasmStdInstruction BOUND BSF BSR BSWAP BT[C] BTR BTS
-syn keyword nasmStdInstruction CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW
-syn keyword nasmStdInstruction CMPXCHG CMPXCHG8B CPUID CWD[E]
+syn keyword nasmStdInstruction CALL CBW CDQ CLC CLD CMC CMP CMPSB CMPSD CMPSW CMPSQ
+syn keyword nasmStdInstruction CMPXCHG CMPXCHG8B CPUID CWD[E] CQO
syn keyword nasmStdInstruction DAA DAS DEC DIV ENTER
-syn keyword nasmStdInstruction IDIV IMUL INC INT[O] IRET[D] IRETW
+syn keyword nasmStdInstruction IDIV IMUL INC INT[O] IRET[D] IRETW IRETQ
syn keyword nasmStdInstruction JCXZ JECXZ JMP
-syn keyword nasmStdInstruction LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD
+syn keyword nasmStdInstruction LAHF LDS LEA LEAVE LES LFS LGS LODSB LODSD LODSQ
syn keyword nasmStdInstruction LODSW LOOP[E] LOOPNE LOOPNZ LOOPZ LSS
-syn keyword nasmStdInstruction MOVSB MOVSD MOVSW MOVSX MOVZX MUL NEG NOP NOT
-syn keyword nasmStdInstruction OR POPA[D] POPAW POPF[D] POPFW
-syn keyword nasmStdInstruction PUSH[AD] PUSHAW PUSHF[D] PUSHFW
+syn keyword nasmStdInstruction MOVSB MOVSD MOVSW MOVSX MOVSQ MOVZX MUL NEG NOP NOT
+syn keyword nasmStdInstruction OR POPA[D] POPAW POPF[D] POPFW POPFQ
+syn keyword nasmStdInstruction PUSH[AD] PUSHAW PUSHF[D] PUSHFW PUSHFQ
syn keyword nasmStdInstruction RCL RCR RETF RET[N] ROL ROR
syn keyword nasmStdInstruction SAHF SAL SAR SBB SCASB SCASD SCASW
-syn keyword nasmStdInstruction SHL[D] SHR[D] STC STD STOSB STOSD STOSW SUB
+syn keyword nasmStdInstruction SHL[D] SHR[D] STC STD STOSB STOSD STOSW STOSQ SUB
syn keyword nasmStdInstruction TEST XADD XCHG XLATB XOR
+syn keyword nasmStdInstruction LFENCE MFENCE SFENCE
" System Instructions: (usually privileged)