<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<language name="MIPS Assembler" version="1.03" kateversion="2.4" section="Assembler" extensions="*.s;" mimetype="text/x-mips" author="Dominik Haumann (dhdev@gmx.de)" license="LGPL" priority="-1">
  <highlighting>
    <list name="type">
      <item> .align </item>
      <item> .ascii </item>
      <item> .asciiz </item>
      <item> .byte </item>
      <item> .double </item>
      <item> .extern </item>
      <item> .float </item>
      <item> .globl </item>
      <item> .half </item>
      <item> .sdata </item>
      <item> .set </item>
      <item> .space </item>
      <item> .word </item>
    </list>
    <list name="section">
      <item> .data </item>
      <item> .kdata </item>
      <item> .ktext </item>
      <item> .text </item>
    </list>
    <list name="hardware">
      <item> abs.d </item>
      <item> abs.s </item>
      <item> add </item>
      <item> add.d </item>
      <item> add.s </item>
      <item> addi </item>
      <item> addiu </item>
      <item> addu </item>
      <item> and </item>
      <item> andi </item>
      <item> bc0f </item>
      <item> bc0t </item>
      <item> bc1f </item>
      <item> bc1t </item>
      <item> bc2f </item>
      <item> bc2t </item>
      <item> bc3f </item>
      <item> bc3t </item>
      <item> beq </item>
      <item> bgez </item>
      <item> bgezal </item>
      <item> bgtz </item>
      <item> blez </item>
      <item> bltz </item>
      <item> bltzal </item>
      <item> bne </item>
      <item> break </item>
      <item> c.eq.d </item>
      <item> c.eq.s </item>
      <item> c.seq.s </item>
      <item> c.seq.d </item>
      <item> c.ueq.s </item>
      <item> c.ueq.d </item>
      <item> c.olt.d </item>
      <item> c.olt.s </item>
      <item> c.ole.d </item>
      <item> c.ole.s </item>
      <item> c.ult.d </item>
      <item> c.ult.s </item>
      <item> c.ule.d </item>
      <item> c.ule.s </item>
      <item> c.le.d </item>
      <item> c.le.s </item>
      <item> c.lt.d </item>
      <item> c.lt.s </item>
      <item> c.un.s </item>
      <item> c.un.d </item>
      <item> cvt.d.s </item>
      <item> cvt.d.w </item>
      <item> cvt.s.d </item>
      <item> cvt.s.w </item>
      <item> cvt.w.d </item>
      <item> cvt.w.s </item>
      <item> div.d </item>
      <item> div.s </item>
      <item> j </item>
      <item> jal </item>
      <item> jalr </item>
      <item> jr </item>
      <item> lb </item>
      <item> lbu </item>
      <item> lh </item>
      <item> lhu </item>
      <item> lui </item>
      <item> lw </item>
      <item> lwc0 </item>
      <item> lwc1 </item>
      <item> lwc2 </item>
      <item> lwc3 </item>
      <item> lwl </item>
      <item> lwr </item>
      <item> mfc0 </item>
      <item> mfc1 </item>
      <item> mfc2 </item>
      <item> mfc3 </item>
      <item> mfhi </item>
      <item> mflo </item>
      <item> mtc0 </item>
      <item> mtc1 </item>
      <item> mtc2 </item>
      <item> mtc3 </item>
      <item> mthi </item>
      <item> mtlo </item>
      <item> mul.d </item>
      <item> mul.s </item>
      <item> mult </item>
      <item> multu </item>
      <item> nor </item>
      <item> or </item>
      <item> ori </item>
      <item> rfe </item>
      <item> sb </item>
      <item> sh </item>
      <item> sw </item>
      <item> swcl </item>
      <item> swl </item>
      <item> swr </item>
      <item> sll </item>
      <item> sllv </item>
      <item> slt </item>
      <item> slti </item>
      <item> sltiu </item>
      <item> sra </item>
      <item> srav </item>
      <item> srl </item>
      <item> srlv </item>
      <item> sub </item>
      <item> sub.d </item>
      <item> sub.s </item>
      <item> subu </item>
      <item> sw </item>
      <item> swc0 </item>
      <item> swc1 </item>
      <item> swc2 </item>
      <item> swc3 </item>
      <item> swl </item>
      <item> swr </item>
      <item> syscall </item>
      <item> xor </item>
      <item> xori </item>
    </list>
    <list name="pseudo">
      <item> abs </item>
      <item> b </item>
      <item> beqz </item>
      <item> bge </item>
      <item> bgeu </item>
      <item> bgt </item>
      <item> bgtu </item>
      <item> ble </item>
      <item> bleu </item>
      <item> blt </item>
      <item> bltu </item>
      <item> bnez </item>
      <item> div </item>
      <item> divu </item>
      <item> l.d </item>
      <item> l.s </item>
      <item> la </item>
      <item> ld </item>
      <item> li </item>
      <item> li.d </item>
      <item> li.s </item>
      <item> mfc0.d </item>
      <item> mfc1.d </item>
      <item> mfc2.d </item>
      <item> mfc3.d </item>
      <item> mov.d </item>
      <item> mov.s </item>
      <item> move </item>
      <item> mul </item>
      <item> mulo </item>
      <item> mulou </item>
      <item> neg </item>
      <item> neg.d </item>
      <item> neg.s </item>
      <item> negu </item>
      <item> nop </item>
      <item> not </item>
      <item> rem </item>
      <item> remu </item>
      <item> rol </item>
      <item> ror </item>
      <item> s.d </item>
      <item> s.s </item>
      <item> sd </item>
      <item> seq </item>
      <item> sge </item>
      <item> sgeu </item>
      <item> sgt </item>
      <item> sgtu </item>
      <item> sle </item>
      <item> sleu </item>
      <item> sne </item>
      <item> ulh </item>
      <item> ulhu </item>
      <item> ulw </item>
      <item> ush </item>
      <item> usw </item>
    </list>
    <list name="register1">
      <item> $0 </item>
      <item> $1 </item>
      <item> $2 </item>
      <item> $3 </item>
      <item> $4 </item>
      <item> $5 </item>
      <item> $6 </item>
      <item> $7 </item>
      <item> $8 </item>
      <item> $9 </item>
      <item> $10 </item>
      <item> $11 </item>
      <item> $12 </item>
      <item> $13 </item>
      <item> $14 </item>
      <item> $15 </item>
      <item> $16 </item>
      <item> $17 </item>
      <item> $18 </item>
      <item> $19 </item>
      <item> $20 </item>
      <item> $21 </item>
      <item> $22 </item>
      <item> $23 </item>
      <item> $24 </item>
      <item> $25 </item>
      <item> $26 </item>
      <item> $27 </item>
      <item> $28 </item>
      <item> $29 </item>
      <item> $30 </item>
      <item> $31 </item>
      <item> $zero </item>
      <item> $t0 </item>
      <item> $t1 </item>
      <item> $t2 </item>
      <item> $t3 </item>
      <item> $t4 </item>
      <item> $t5 </item>
      <item> $t6 </item>
      <item> $t7 </item>
      <item> $t8 </item>
      <item> $t9 </item>
    </list>
    <list name="register2">
      <item> $v0 </item>
      <item> $v1 </item>
      <item> $a0 </item>
      <item> $a1 </item>
      <item> $a2 </item>
      <item> $a3 </item>
      <item> $k0 </item>
      <item> $k1 </item>
      <item> $at </item>
      <item> $gp </item>
      <item> $sp </item>
      <item> $fp </item>
      <item> $s0 </item>
      <item> $s1 </item>
      <item> $s2 </item>
      <item> $s3 </item>
      <item> $s4 </item>
      <item> $s5 </item>
      <item> $s6 </item>
      <item> $s7 </item>
      <item> $ra </item>
    </list>
    <list name="fp">
      <item> $f0 </item>
      <item> $f1 </item>
      <item> $f2 </item>
      <item> $f3 </item>
      <item> $f4 </item>
      <item> $f5 </item>
      <item> $f6 </item>
      <item> $f7 </item>
      <item> $f8 </item>
      <item> $f9 </item>
      <item> $f10 </item>
      <item> $f11 </item>
      <item> $f12 </item>
      <item> $f13 </item>
      <item> $f14 </item>
      <item> $f15 </item>
      <item> $f16 </item>
      <item> $f17 </item>
      <item> $f18 </item>
      <item> $f19 </item>
      <item> $f20 </item>
      <item> $f21 </item>
      <item> $f22 </item>
      <item> $f23 </item>
      <item> $f24 </item>
      <item> $f25 </item>
      <item> $f26 </item>
      <item> $f27 </item>
      <item> $f28 </item>
      <item> $f29 </item>
      <item> $f30 </item>
      <item> $f31 </item>
    </list>
    <contexts>
      <context name="normal" attribute="Normal Text" lineEndContext="#stay">
        <keyword attribute="Hardware Instruction" context="#stay" String="hardware"/>
        <keyword attribute="Pseudo Instruction" context="#stay" String="pseudo"/>
        <keyword attribute="Other Register" context="#stay" String="register1"/>
        <keyword attribute="Main Register" context="#stay" String="register2"/>
        <keyword attribute="Floating Point Register" context="#stay" String="fp"/>
        <keyword attribute="Type" context="#stay" String="section"/>
        <keyword attribute="Section" context="#stay" String="type"/>
        <RegExpr attribute="Region Marker" context="#stay" String="#\s*BEGIN.*$" beginRegion="region" firstNonSpace="true"/>
        <RegExpr attribute="Region Marker" context="#stay" String="#\s*END.*$" endRegion="region" firstNonSpace="true"/>
        <RegExpr attribute="Comment" context="#stay" String="#.*$" />
        <RegExpr attribute="Label" context="#stay" String="[\w_\.]+:" firstNonSpace="true"/>
        <DetectChar attribute="String" context="string" char="&quot;" />
        <Float attribute="Float" context="#stay"/>
        <HlCOct attribute="Octal" context="#stay"/>
        <HlCHex attribute="Hex" context="#stay"/>
        <Int attribute="Decimal" context="#stay"/>
      </context>
      <context name="string" attribute="String" lineEndContext="#stay" >
        <RegExpr attribute="Char" context="#stay" String="\\." />
        <DetectChar attribute="String" context="#pop" char="&quot;" />
      </context>
    </contexts>
    <itemDatas>
      <itemData name="Normal Text" defStyleNum="dsNormal" />
      <itemData name="Hardware Instruction" defStyleNum="dsKeyword" />
      <itemData name="Pseudo Instruction" defStyleNum="dsFunction"/>
      <itemData name="Other Register" defStyleNum="dsDataType" color="#0000ff"/>
      <itemData name="Main Register" defStyleNum="dsDataType"/>
      <itemData name="Floating Point Register" defStyleNum="dsFloat"/>
      <itemData name="Section" defStyleNum="dsDataType"/>
      <itemData name="Type" defStyleNum="dsKeyword"/>
      <itemData name="Comment" defStyleNum="dsComment" />
      <itemData name="Char" defStyleNum="dsChar" />
      <itemData name="String" defStyleNum="dsString" />
      <itemData name="Label" defStyleNum="dsOthers" />
      <itemData name="Decimal" defStyleNum="dsDecVal"/>
      <itemData name="Octal" defStyleNum="dsBaseN"/>
      <itemData name="Hex" defStyleNum="dsBaseN"/>
      <itemData name="Float" defStyleNum="dsFloat"/>
      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
    </itemDatas>
  </highlighting>
  <general>
    <comments>
      <comment name="singleLine" start="#" />
    </comments>
    <keywords casesensitive="0" weakDeliminator="."/>
  </general>
</language>
