]> gitweb.factorcode.org Git - factor.git/blob - basis/xmode/modes/assembly-r2000.xml
4023f54582ba0e7f3fa4919e524b63ac445d3878
[factor.git] / basis / xmode / modes / assembly-r2000.xml
1 <?xml version="1.0"?>\r
2 \r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">\r
4 \r
5 <!-- MIPS/SPIM Assembly Mode from\r
6         Marc Rummel marc.rummel@stud.uni-karlsruhe.de \r
7         SIPM Homepage: http://www.cs.wisc.edu/~larus/spim.html\r
8 -->\r
9 \r
10 <MODE>\r
11 \r
12         <PROPS>\r
13                 <PROPERTY NAME="blockComment" VALUE="#" />\r
14                 <PROPERTY NAME="wordBreakChars" VALUE=",()" />\r
15         </PROPS>\r
16         \r
17         <RULES ESCAPE="\" HIGHLIGHT_DIGITS="TRUE" IGNORE_CASE="TRUE">\r
18                 <!-- Comment --> \r
19                 <EOL_SPAN TYPE="COMMENT1">#</EOL_SPAN>\r
20                 \r
21                 <!-- Strings -->\r
22                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">\r
23                         <BEGIN>'</BEGIN>\r
24                         <END>'</END>\r
25                 </SPAN>\r
26 \r
27                 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">\r
28                         <BEGIN>"</BEGIN>\r
29                         <END>"</END>\r
30                 </SPAN>\r
31                 \r
32                 <!-- Labels -->\r
33                 <MARK_PREVIOUS TYPE="LABEL" AT_LINE_START="TRUE">:</MARK_PREVIOUS>\r
34                 \r
35                 <!-- Assembler directives -->\r
36                 <KEYWORDS>\r
37                         <KEYWORD1>.align</KEYWORD1>\r
38                         <KEYWORD1>.ascii</KEYWORD1>\r
39                         <KEYWORD1>.asciiz</KEYWORD1>\r
40                         <KEYWORD1>.byte</KEYWORD1>\r
41                         <KEYWORD1>.data</KEYWORD1>\r
42                         <KEYWORD1>.double</KEYWORD1>\r
43                         <KEYWORD1>.extern</KEYWORD1>\r
44                         <KEYWORD1>.float</KEYWORD1>\r
45                         <KEYWORD1>.globl</KEYWORD1>\r
46                         <KEYWORD1>.half</KEYWORD1>\r
47                         <KEYWORD1>.kdata</KEYWORD1>\r
48                         <KEYWORD1>.ktext</KEYWORD1>\r
49                         <KEYWORD1>.space</KEYWORD1>\r
50                         <KEYWORD1>.text</KEYWORD1>\r
51                         <KEYWORD1>.word</KEYWORD1>\r
52                         \r
53                 <!-- MIPS/SPIM Operations -->\r
54                         <FUNCTION>add</FUNCTION>\r
55                         <FUNCTION>addi</FUNCTION>\r
56                         <FUNCTION>addu</FUNCTION>\r
57                         <FUNCTION>addiu</FUNCTION>\r
58                         <FUNCTION>and</FUNCTION>\r
59                         <FUNCTION>andi</FUNCTION>\r
60                         <FUNCTION>div</FUNCTION>\r
61                         <FUNCTION>divu</FUNCTION>\r
62                         <FUNCTION>mul</FUNCTION>\r
63                         <FUNCTION>mulo</FUNCTION>\r
64                         <FUNCTION>mulou</FUNCTION>\r
65                         <FUNCTION>mult</FUNCTION>\r
66                         <FUNCTION>multu</FUNCTION>\r
67                         <FUNCTION>neg</FUNCTION>\r
68                         <FUNCTION>negu</FUNCTION>\r
69                         <FUNCTION>nor</FUNCTION>\r
70                         <FUNCTION>not</FUNCTION>\r
71                         <FUNCTION>or</FUNCTION>\r
72                         <FUNCTION>ori</FUNCTION>\r
73                         <FUNCTION>rem</FUNCTION>\r
74                         <FUNCTION>remu</FUNCTION>\r
75                         <FUNCTION>rol</FUNCTION>\r
76                         <FUNCTION>ror</FUNCTION>\r
77                         <FUNCTION>sll</FUNCTION>\r
78                         <FUNCTION>sllv</FUNCTION>\r
79                         <FUNCTION>sra</FUNCTION>\r
80                         <FUNCTION>srav</FUNCTION>\r
81                         <FUNCTION>srl</FUNCTION>\r
82                         <FUNCTION>srlv</FUNCTION>\r
83                         <FUNCTION>sub</FUNCTION>\r
84                         <FUNCTION>subu</FUNCTION>\r
85                         <FUNCTION>xor</FUNCTION>\r
86                         <FUNCTION>xori</FUNCTION>\r
87                         <FUNCTION>li</FUNCTION>\r
88                         <FUNCTION>lui</FUNCTION>\r
89                         <FUNCTION>seq</FUNCTION>\r
90                         <FUNCTION>sge</FUNCTION>\r
91                         <FUNCTION>sgt</FUNCTION>\r
92                         <FUNCTION>sgtu</FUNCTION>\r
93                         <FUNCTION>sle</FUNCTION>\r
94                         <FUNCTION>sleu</FUNCTION>\r
95                         <FUNCTION>slt</FUNCTION>\r
96                         <FUNCTION>slti</FUNCTION>\r
97                         <FUNCTION>sltu</FUNCTION>\r
98                         <FUNCTION>sltiu</FUNCTION>\r
99                         <FUNCTION>sne</FUNCTION>\r
100                         <FUNCTION>b</FUNCTION>\r
101                         <FUNCTION>bczt</FUNCTION>\r
102                         <FUNCTION>bczf</FUNCTION>\r
103                         <FUNCTION>beq</FUNCTION>\r
104                         <FUNCTION>beqz</FUNCTION>\r
105                         <FUNCTION>bge</FUNCTION>\r
106                         <FUNCTION>bgeu</FUNCTION>\r
107                         <FUNCTION>bgez</FUNCTION>\r
108                         <FUNCTION>bgezal</FUNCTION>\r
109                         <FUNCTION>bgt</FUNCTION>\r
110                         <FUNCTION>bgtu</FUNCTION>\r
111                         <FUNCTION>bgtz</FUNCTION>\r
112                         <FUNCTION>ble</FUNCTION>\r
113                         <FUNCTION>bleu</FUNCTION>\r
114                         <FUNCTION>blez</FUNCTION>\r
115                         <FUNCTION>bgezal</FUNCTION>\r
116                         <FUNCTION>bltzal</FUNCTION>\r
117                         <FUNCTION>blt</FUNCTION>\r
118                         <FUNCTION>bltu</FUNCTION>\r
119                         <FUNCTION>bltz</FUNCTION>\r
120                         <FUNCTION>bne</FUNCTION>\r
121                         <FUNCTION>bnez</FUNCTION>\r
122                         <FUNCTION>j</FUNCTION>\r
123                         <FUNCTION>jal</FUNCTION>\r
124                         <FUNCTION>jalr</FUNCTION>\r
125                         <FUNCTION>jr</FUNCTION>\r
126                         <FUNCTION>la</FUNCTION>\r
127                         <FUNCTION>lb</FUNCTION>\r
128                         <FUNCTION>blu</FUNCTION>\r
129                         <FUNCTION>lh</FUNCTION>\r
130                         <FUNCTION>lhu</FUNCTION>\r
131                         <FUNCTION>lw</FUNCTION>\r
132                         <FUNCTION>lwcz</FUNCTION>\r
133                         <FUNCTION>lwl</FUNCTION>\r
134                         <FUNCTION>lwr</FUNCTION>\r
135                         <FUNCTION>ulh</FUNCTION>\r
136                         <FUNCTION>ulhu</FUNCTION>\r
137                         <FUNCTION>ulw</FUNCTION>\r
138                         <FUNCTION>sb</FUNCTION>\r
139                         <FUNCTION>sd</FUNCTION>\r
140                         <FUNCTION>sh</FUNCTION>\r
141                         <FUNCTION>sw</FUNCTION>\r
142                         <FUNCTION>swcz</FUNCTION>\r
143                         <FUNCTION>swl</FUNCTION>\r
144                         <FUNCTION>swr</FUNCTION>\r
145                         <FUNCTION>ush</FUNCTION>\r
146                         <FUNCTION>usw</FUNCTION>\r
147                         <FUNCTION>move</FUNCTION>\r
148                         <FUNCTION>mfhi</FUNCTION>\r
149                         <FUNCTION>mflo</FUNCTION>\r
150                         <FUNCTION>mthi</FUNCTION>\r
151                         <FUNCTION>mtlo</FUNCTION>\r
152                         <FUNCTION>mfcz</FUNCTION>\r
153                         <FUNCTION>mfc1.d</FUNCTION>\r
154                         <FUNCTION>mtcz</FUNCTION>\r
155                         <FUNCTION>abs.d</FUNCTION>\r
156                         <FUNCTION>abs.s</FUNCTION>\r
157                         <FUNCTION>add.d</FUNCTION>\r
158                         <FUNCTION>add.s</FUNCTION>\r
159                         <FUNCTION>c.eq.d</FUNCTION>\r
160                         <FUNCTION>c.eq.s</FUNCTION>\r
161                         <FUNCTION>c.le.d</FUNCTION>\r
162                         <FUNCTION>c.le.s</FUNCTION>\r
163                         <FUNCTION>c.lt.d</FUNCTION>\r
164                         <FUNCTION>c.lt.s</FUNCTION>\r
165                         <FUNCTION>cvt.d.s</FUNCTION>\r
166                         <FUNCTION>cbt.d.w</FUNCTION>\r
167                         <FUNCTION>cvt.s.d</FUNCTION>\r
168                         <FUNCTION>cvt.s.w</FUNCTION>\r
169                         <FUNCTION>cvt.w.d</FUNCTION>\r
170                         <FUNCTION>cvt.w.s</FUNCTION>\r
171                         <FUNCTION>div.d</FUNCTION>\r
172                         <FUNCTION>div.s</FUNCTION>\r
173                         <FUNCTION>l.d</FUNCTION>\r
174                         <FUNCTION>l.s</FUNCTION>\r
175                         <FUNCTION>mov.d</FUNCTION>\r
176                         <FUNCTION>mov.s</FUNCTION>\r
177                         <FUNCTION>mul.d</FUNCTION>\r
178                         <FUNCTION>mul.s</FUNCTION>\r
179                         <FUNCTION>neg.d</FUNCTION>\r
180                         <FUNCTION>neg.s</FUNCTION>\r
181                         <FUNCTION>s.d</FUNCTION>\r
182                         <FUNCTION>s.s</FUNCTION>\r
183                         <FUNCTION>sub.d</FUNCTION>\r
184                         <FUNCTION>sub.s</FUNCTION>\r
185                         <FUNCTION>rfe</FUNCTION>\r
186                         <FUNCTION>syscall</FUNCTION>\r
187                         <FUNCTION>break</FUNCTION>\r
188                         <FUNCTION>nop</FUNCTION>\r
189 \r
190                 <!-- Integer Registers -->\r
191                         <KEYWORD2>$zero</KEYWORD2>\r
192                         <KEYWORD2>$at</KEYWORD2>\r
193                         <KEYWORD2>$v0</KEYWORD2>\r
194                         <KEYWORD2>$v1</KEYWORD2>\r
195                         <KEYWORD2>$a0</KEYWORD2>\r
196                         <KEYWORD2>$a1</KEYWORD2>\r
197                         <KEYWORD2>$a2</KEYWORD2>\r
198                         <KEYWORD2>$a3</KEYWORD2>\r
199             <KEYWORD2>$t0</KEYWORD2>\r
200                         <KEYWORD2>$t1</KEYWORD2>\r
201                         <KEYWORD2>$t2</KEYWORD2>\r
202                         <KEYWORD2>$t3</KEYWORD2>\r
203                         <KEYWORD2>$t4</KEYWORD2>\r
204                         <KEYWORD2>$t5</KEYWORD2>\r
205                         <KEYWORD2>$t6</KEYWORD2>\r
206                         <KEYWORD2>$t7</KEYWORD2>\r
207                         <KEYWORD2>$s0</KEYWORD2>\r
208                         <KEYWORD2>$s1</KEYWORD2>\r
209                         <KEYWORD2>$s2</KEYWORD2>\r
210                         <KEYWORD2>$s3</KEYWORD2>\r
211                         <KEYWORD2>$s4</KEYWORD2>\r
212                         <KEYWORD2>$s5</KEYWORD2>\r
213                         <KEYWORD2>$s6</KEYWORD2>\r
214                         <KEYWORD2>$s7</KEYWORD2>\r
215                         <KEYWORD2>$t8</KEYWORD2>\r
216                         <KEYWORD2>$t9</KEYWORD2>\r
217                         <KEYWORD2>$k0</KEYWORD2>\r
218                         <KEYWORD2>$k1</KEYWORD2>\r
219             <KEYWORD2>$gp</KEYWORD2>\r
220                         <KEYWORD2>$sp</KEYWORD2>\r
221                         <KEYWORD2>$fp</KEYWORD2>\r
222                         <KEYWORD2>$ra</KEYWORD2>\r
223                         \r
224                 <!-- Floating Point Registers -->\r
225                         <KEYWORD3>$f0</KEYWORD3>\r
226                         <KEYWORD3>$f1</KEYWORD3>\r
227                         <KEYWORD3>$f2</KEYWORD3>\r
228                         <KEYWORD3>$f3</KEYWORD3>\r
229                         <KEYWORD3>$f4</KEYWORD3>\r
230                         <KEYWORD3>$f5</KEYWORD3>\r
231                         <KEYWORD3>$f6</KEYWORD3>\r
232                         <KEYWORD3>$f7</KEYWORD3>\r
233                         <KEYWORD3>$f8</KEYWORD3>\r
234                         <KEYWORD3>$f9</KEYWORD3>\r
235                         <KEYWORD3>$f10</KEYWORD3>\r
236                         <KEYWORD3>$f11</KEYWORD3>\r
237                         <KEYWORD3>$f12</KEYWORD3>\r
238                         <KEYWORD3>$f13</KEYWORD3>\r
239                         <KEYWORD3>$f14</KEYWORD3>\r
240                         <KEYWORD3>$f15</KEYWORD3>\r
241                         <KEYWORD3>$f16</KEYWORD3>\r
242                         <KEYWORD3>$f17</KEYWORD3>\r
243                         <KEYWORD3>$f18</KEYWORD3>\r
244                         <KEYWORD3>$f19</KEYWORD3>\r
245                         <KEYWORD3>$f20</KEYWORD3>\r
246                         <KEYWORD3>$f21</KEYWORD3>\r
247                         <KEYWORD3>$f22</KEYWORD3>\r
248                         <KEYWORD3>$f23</KEYWORD3>\r
249                         <KEYWORD3>$f24</KEYWORD3>\r
250                         <KEYWORD3>$f25</KEYWORD3>\r
251                         <KEYWORD3>$f26</KEYWORD3>\r
252                         <KEYWORD3>$f27</KEYWORD3>\r
253                         <KEYWORD3>$f28</KEYWORD3>\r
254                         <KEYWORD3>$f29</KEYWORD3>\r
255                         <KEYWORD3>$f30</KEYWORD3>\r
256                         <KEYWORD3>$f31</KEYWORD3>\r
257                 </KEYWORDS>\r
258         </RULES>\r
259 </MODE>\r