Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

file 162 lines (135 sloc) 5.167 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
" Vim syntax file
" Language: MMIX
" Maintainer: Dirk Hüsken, <huesken@informatik.uni-tuebingen.de>
" Last Change: Wed Apr 24 01:18:52 CEST 2002
" Filenames: *.mms
" URL: http://homepages.uni-tuebingen.de/student/dirk.huesken/vim/syntax/mmix.vim

" Limitations: Comments must start with either % or //
" (preferrably %, Knuth-Style)

if version < 600
  syntax clear
elseif exists("b:current_syntax")
  finish
endif

syn case ignore

" MMIX data types
syn keyword mmixType byte wyde tetra octa

" different literals...
syn match decNumber "[0-9]*"
syn match octNumber "0[0-7][0-7]\+"
syn match hexNumber "#[0-9a-fA-F]\+"
syn region mmixString start=+"+ skip=+\\"+ end=+"+
syn match mmixChar "'.'"

" ...and more special MMIX stuff
syn match mmixAt "@"
syn keyword mmixSegments Data_Segment Pool_Segment Stack_Segment

syn match mmixIdentifier "[a-z_][a-z0-9_]*"

" labels (for branches etc)
syn match mmixLabel "^[a-z0-9_:][a-z0-9_]*"
syn match mmixLabel "[0-9][HBF]"

" pseudo-operations
syn keyword mmixPseudo is loc greg

" comments
syn match mmixComment "%.*"
syn match mmixComment "//.*"
syn match mmixComment "^\*.*"


syn keyword mmixOpcode trap fcmp fun feql fadd fix fsub fixu
syn keyword mmixOpcode fmul fcmpe fune feqle fdiv fsqrt frem fint

syn keyword mmixOpcode floti flotui sfloti sflotui i
syn keyword mmixOpcode muli mului divi divui
syn keyword mmixOpcode addi addui subi subui
syn keyword mmixOpcode 2addui 4addui 8addui 16addui
syn keyword mmixOpcode cmpi cmpui negi negui
syn keyword mmixOpcode sli slui sri srui
syn keyword mmixOpcode bnb bzb bpb bodb
syn keyword mmixOpcode bnnb bnzb bnpb bevb
syn keyword mmixOpcode pbnb pbzb pbpb pbodb
syn keyword mmixOpcode pbnnb pbnzb pbnpb pbevb
syn keyword mmixOpcode csni cszi cspi csodi
syn keyword mmixOpcode csnni csnzi csnpi csevi
syn keyword mmixOpcode zsni zszi zspi zsodi
syn keyword mmixOpcode zsnni zsnzi zsnpi zsevi
syn keyword mmixOpcode ldbi ldbui ldwi ldwui
syn keyword mmixOpcode ldti ldtui ldoi ldoui
syn keyword mmixOpcode ldsfi ldhti cswapi ldunci
syn keyword mmixOpcode ldvtsi preldi pregoi goi
syn keyword mmixOpcode stbi stbui stwi stwui
syn keyword mmixOpcode stti sttui stoi stoui
syn keyword mmixOpcode stsfi sthti stcoi stunci
syn keyword mmixOpcode syncdi presti syncidi pushgoi
syn keyword mmixOpcode ori orni nori xori
syn keyword mmixOpcode andi andni nandi nxori
syn keyword mmixOpcode bdifi wdifi tdifi odifi
syn keyword mmixOpcode muxi saddi mori mxori
syn keyword mmixOpcode muli mului divi divui

syn keyword mmixOpcode flot flotu sflot sflotu
syn keyword mmixOpcode mul mulu div divu
syn keyword mmixOpcode add addu sub subu
syn keyword mmixOpcode 2addu 4addu 8addu 16addu
syn keyword mmixOpcode cmp cmpu neg negu
syn keyword mmixOpcode sl slu sr sru
syn keyword mmixOpcode bn bz bp bod
syn keyword mmixOpcode bnn bnz bnp bev
syn keyword mmixOpcode pbn pbz pbp pbod
syn keyword mmixOpcode pbnn pbnz pbnp pbev
syn keyword mmixOpcode csn csz csp csod
syn keyword mmixOpcode csnn csnz csnp csev
syn keyword mmixOpcode zsn zsz zsp zsod
syn keyword mmixOpcode zsnn zsnz zsnp zsev
syn keyword mmixOpcode ldb ldbu ldw ldwu
syn keyword mmixOpcode ldt ldtu ldo ldou
syn keyword mmixOpcode ldsf ldht cswap ldunc
syn keyword mmixOpcode ldvts preld prego go
syn keyword mmixOpcode stb stbu stw stwu
syn keyword mmixOpcode stt sttu sto stou
syn keyword mmixOpcode stsf stht stco stunc
syn keyword mmixOpcode syncd prest syncid pushgo
syn keyword mmixOpcode or orn nor xor
syn keyword mmixOpcode and andn nand nxor
syn keyword mmixOpcode bdif wdif tdif odif
syn keyword mmixOpcode mux sadd mor mxor

syn keyword mmixOpcode seth setmh setml setl inch incmh incml incl
syn keyword mmixOpcode orh ormh orml orl andh andmh andml andnl
syn keyword mmixOpcode jmp pushj geta put
syn keyword mmixOpcode pop resume save unsave sync swym get trip
syn keyword mmixOpcode set lda

" switch back to being case sensitive
syn case match

" general-purpose and special-purpose registers
syn match mmixRegister "$[0-9]*"
syn match mmixRegister "r[A-Z]"
syn keyword mmixRegister rBB rTT rWW rXX rYY rZZ

" 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_mmix_syntax_inits")
  if version < 508
    let did_mmix_syntax_inits = 1
    command -nargs=+ HiLink hi link <args>
  else
    command -nargs=+ HiLink hi def link <args>
  endif

" The default methods for highlighting. Can be overridden later
  HiLink mmixAt Type
  HiLink mmixPseudo Type
  HiLink mmixRegister Special
  HiLink mmixSegments Type

  HiLink mmixLabel Special
  HiLink mmixComment Comment
  HiLink mmixOpcode Keyword

  HiLink hexNumber Number
  HiLink decNumber Number
  HiLink octNumber Number

  HiLink mmixString String
  HiLink mmixChar String

  HiLink mmixType Type
  HiLink mmixIdentifier Normal
  HiLink mmixSpecialComment Comment

" My default color overrides:
" hi mmixSpecialComment ctermfg=red
"hi mmixLabel ctermfg=lightcyan
" hi mmixType ctermbg=black ctermfg=brown

  delcommand HiLink
endif

let b:current_syntax = "mmix"

" vim: ts=8
Something went wrong with that request. Please try again.