fix local labels, binary, register groups

This commit is contained in:
ARM9
2015-07-15 18:22:40 +02:00
parent 3d23f83716
commit 6445d61998
7 changed files with 56 additions and 37 deletions

View File

@ -5,12 +5,10 @@ syn match armNumericOp "[+-/*%<>=&|^!]"
" hex
syn match armNumber "[#\$]\?0x\x\+\>"
syn match armNumber "[#\$]\?\d\x*h\>"
" dec
syn match armNumber "[#\$]\?\d\+\>"
" bin
syn match armNumber "[#\$]\?0b[01]\+\>"
syn match armNumber "[#\$]\?[01]\+b\>"
" floats
syn match armNumber "\d*\.\d\+\>"
@ -26,16 +24,17 @@ syn region armString start="'" skip=+\\'+ end="'\|$"
" Assembler identifiers/labels/directives
syn match armIdentifier "\<\h\w*\>"
syn match armLabel "\<\h\w*:"
syn match armLabel "\<\d\{1,3\}[:fb]"
syn match armCPreProc "^\s*#\(include\|define\|undef\|if\|ifdef\|ifndef\|elif\|else\|endif\|error\|pragma\)\>"
syn match armLabel "\<\d\{1,3\}[:fb]\>"
syn match armCPreProc "^\s*#\s*\(include\|define\|undef\|if\|ifdef\|ifndef\|elif\|else\|endif\|error\|pragma\)\>"
so <sfile>:p:h/gas_directives.vim
so <sfile>:p:h/arm_directives.vim
" Registers
syn keyword armRegister R0 R1 R2 R3 R4 R5 R6 R7 R8
syn keyword armRegister R9 R10 R11 R12 R13 R14 R15 FP SP LR PC SPSR CPSR CPSR_c CPSR_cxsf BP
syn keyword armRegister A1 A2 A3 A4 V1 V2 V3 V4 V5 V6 V7 V8
syn match armRegister "R\%(1[0-5]\|[0-9]\)"
syn keyword armRegister FP SP LR PC SPSR CPSR CPSR_c CPSR_cxsf BP
syn match armRegister "A[1-3]"
syn match armRegister "V[1-8]"
" Conditional field to avoid repetition
let armCond = '\%(AL\|CC\|CS\|EQ\|GE\|GT\|HI\|HS\|LE\|LO\|LS\|LT\|MI\|NE\|PL\|VC\|VS\)\?'

View File

@ -2,14 +2,8 @@
so <sfile>:p:h/armv5_base_syntax.vim
" VFP/NEON registers
let i = 0
while i < 32
exe 'syn match armv6Register "S' . i . '\>"'
exe 'syn match armv6Register "D' . i . '\>"'
let i = i + 1
endwhile
syn keyword armv6Register Q0 Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12 Q13 Q14 Q15
syn match armv6Register "[SD]\%(3[01]\|[12]\?[0-9]\)"
syn match armv6Register "Q\%(1[0-5]\|[0-9]\)"
"
" ARMv6 instructions