move CD tray handling out of emu loop
[picodrive.git] / pico / draw_amips.s
CommitLineData
70357ce5 1# vim:filetype=mips
2
8b99ab90 3# several drawing related functions for Allegrex MIPS
4# (c) Copyright 2007, Grazvydas "notaz" Ignotas
5# All Rights Reserved
70357ce5 6
7.set noreorder # don't reorder any instructions
8.set noat # don't use $at
9
81fda4e8 10.text
11.align 4
70357ce5 12
13# void amips_clut(unsigned short *dst, unsigned char *src, unsigned short *pal, int count)
14
15.global amips_clut
16
17amips_clut:
18 srl $a3, 2
19amips_clut_loop:
20 lbu $t0, 0($a1) # tried lw here, no improvement noticed
21 lbu $t1, 1($a1)
22 lbu $t2, 2($a1)
23 lbu $t3, 3($a1)
24 sll $t0, 1
25 sll $t1, 1
26 sll $t2, 1
27 sll $t3, 1
28 addu $t0, $a2
29 addu $t1, $a2
30 addu $t2, $a2
31 addu $t3, $a2
32 lhu $t0, 0($t0)
33 lhu $t1, 0($t1)
34 lhu $t2, 0($t2)
35 lhu $t3, 0($t3)
36 ins $t0, $t1, 16, 16 # ins rt, rs, pos, size - Insert size bits starting
37 ins $t2, $t3, 16, 16 # from the LSB of rs into rt starting at position pos
38 sw $t0, 0($a0)
39 sw $t2, 4($a0)
40 addiu $a0, 8
41 addiu $a3, -1
42 bnez $a3, amips_clut_loop
43 addiu $a1, 4
44 jr $ra
45 nop
46
8ef001cc 47
e5fa9817 48.global amips_clut_6bit
49
50amips_clut_6bit:
51 srl $a3, 2
52 li $t4, 0
53 li $t5, 0
54 li $t6, 0
55 li $t7, 0
56amips_clut_loop6:
57 lbu $t0, 0($a1) # tried lw here, no improvement noticed
58 lbu $t1, 1($a1)
59 lbu $t2, 2($a1)
60 lbu $t3, 3($a1)
61 ins $t4, $t0, 1, 6
62 ins $t5, $t1, 1, 6
63 ins $t6, $t2, 1, 6
64 ins $t7, $t3, 1, 6
65 addu $t0, $t4, $a2
66 addu $t1, $t5, $a2
67 addu $t2, $t6, $a2
68 addu $t3, $t7, $a2
69 lhu $t0, 0($t0)
70 lhu $t1, 0($t1)
71 lhu $t2, 0($t2)
72 lhu $t3, 0($t3)
73 ins $t0, $t1, 16, 16 # ins rt, rs, pos, size - Insert size bits starting
74 ins $t2, $t3, 16, 16 # from the LSB of rs into rt starting at position pos
75 sw $t0, 0($a0)
76 sw $t2, 4($a0)
77 addiu $a0, 8
78 addiu $a3, -1
79 bnez $a3, amips_clut_loop6
80 addiu $a1, 4
81 jr $ra
82 nop
83
84
8ef001cc 85# $a0 - pd, $a1 - tile word, $a2 - pal
86# ext rt, rs, pos, size // Extract size bits from position pos in rs and store in rt
87
88.macro TilePixelPrep shift dreg offs
89.if \shift
90 ext \dreg, $a1, \shift, 4
91.else
92 andi \dreg, $a1, 0xf
93.endif
94.if \offs
95 sltu $t8, $0, \dreg
96 ins $t9, $t8, \offs, 1
97.else
98 sltu $t9, $0, \dreg
99.endif
100.endm
101
102.macro TileStartCode
103 sll $a1, $a1, 1
104 lui $t1, %hi(Pico+0x10000)
105 addu $a1, $a1, $t1
106 lw $a1, %lo(Pico+0x10000)($a1) # Pico.vram + addr
107 beqz $a1, TileEmpty
108 rotr $t1, $a1, 4
109 beq $t1, $a1, SingleColor
110 and $v0, $0 # not empty tile
111.endm
112
113.macro TileEndCode
114 xori $t8, $t9, 0xff
115 beqz $t8, tile11111111 # common case
116 lui $v1, %hi(HighCol)
117 lui $t8, %hi(TileTable)
118 ins $t8, $t9, 2, 8
119 lw $t8, %lo(TileTable)($t8)
120 lw $v1, %lo(HighCol)($v1)
121 jr $t8
122 addu $a0, $v1
123.endm
124
125
126.global TileNorm
127
128TileNorm:
129 TileStartCode
130 TilePixelPrep 12, $t0, 0
131 TilePixelPrep 8, $t1, 1
132 TilePixelPrep 4, $t2, 2
133 TilePixelPrep 0, $t3, 3
134 TilePixelPrep 28, $t4, 4
135 TilePixelPrep 24, $t5, 5
136 TilePixelPrep 20, $t6, 6
137 TilePixelPrep 16, $t7, 7
138 TileEndCode
139
140
141.global TileFlip
142
143TileFlip:
144 TileStartCode
145 TilePixelPrep 16, $t0, 0
146 TilePixelPrep 20, $t1, 1
147 TilePixelPrep 24, $t2, 2
148 TilePixelPrep 28, $t3, 3
149 TilePixelPrep 0, $t4, 4
150 TilePixelPrep 4, $t5, 5
151 TilePixelPrep 8, $t6, 6
152 TilePixelPrep 12, $t7, 7
153 TileEndCode
154
155
156SingleColor:
157 lui $t9, %hi(HighCol)
158 lw $t9, %lo(HighCol)($t9)
159 andi $t0, $a1, 0xf
160 or $t0, $t0, $a2
161 addu $a0, $t9
162 sb $t0, 0($a0)
163 sb $t0, 1($a0)
164 sb $t0, 2($a0)
165 sb $t0, 3($a0)
166 sb $t0, 4($a0)
167 sb $t0, 5($a0)
168 sb $t0, 6($a0)
169 jr $ra
170 sb $t0, 7($a0)
171
172TileEmpty:
173 jr $ra
174 or $v0, $0, 1 # empty tile
175
176tile11111111:
177 lw $v1, %lo(HighCol)($v1)
178 or $t0, $t0, $a2
179 addu $a0, $v1
180 sb $t0, 0($a0)
181tile11111110:
182 or $t1, $t1, $a2
183 sb $t1, 1($a0)
184tile11111100:
185 or $t2, $t2, $a2
186 sb $t2, 2($a0)
187tile11111000:
188 or $t3, $t3, $a2
189 sb $t3, 3($a0)
190tile11110000:
191 or $t4, $t4, $a2
192 sb $t4, 4($a0)
193tile11100000:
194 or $t5, $t5, $a2
195 sb $t5, 5($a0)
196tile11000000:
197 or $t6, $t6, $a2
198 sb $t6, 6($a0)
199tile10000000:
200 or $t7, $t7, $a2
201 jr $ra
202 sb $t7, 7($a0)
203tile11111101:
204 or $t0, $t0, $a2
205 sb $t0, 0($a0)
206 or $t2, $t2, $a2
207 sb $t2, 2($a0)
208 or $t3, $t3, $a2
209 sb $t3, 3($a0)
210 or $t4, $t4, $a2
211 sb $t4, 4($a0)
212 or $t5, $t5, $a2
213 sb $t5, 5($a0)
214 or $t6, $t6, $a2
215 sb $t6, 6($a0)
216 or $t7, $t7, $a2
217 jr $ra
218 sb $t7, 7($a0)
219tile11111011:
220 or $t0, $t0, $a2
221 sb $t0, 0($a0)
222tile11111010:
223 or $t1, $t1, $a2
224 sb $t1, 1($a0)
225 or $t3, $t3, $a2
226 sb $t3, 3($a0)
227 or $t4, $t4, $a2
228 sb $t4, 4($a0)
229 or $t5, $t5, $a2
230 sb $t5, 5($a0)
231 or $t6, $t6, $a2
232 sb $t6, 6($a0)
233 or $t7, $t7, $a2
234 jr $ra
235 sb $t7, 7($a0)
236tile11111001:
237 or $t0, $t0, $a2
238 sb $t0, 0($a0)
239 or $t3, $t3, $a2
240 sb $t3, 3($a0)
241 or $t4, $t4, $a2
242 sb $t4, 4($a0)
243 or $t5, $t5, $a2
244 sb $t5, 5($a0)
245 or $t6, $t6, $a2
246 sb $t6, 6($a0)
247 or $t7, $t7, $a2
248 jr $ra
249 sb $t7, 7($a0)
250tile11110111:
251 or $t0, $t0, $a2
252 sb $t0, 0($a0)
253tile11110110:
254 or $t1, $t1, $a2
255 sb $t1, 1($a0)
256tile11110100:
257 or $t2, $t2, $a2
258 sb $t2, 2($a0)
259 or $t4, $t4, $a2
260 sb $t4, 4($a0)
261 or $t5, $t5, $a2
262 sb $t5, 5($a0)
263 or $t6, $t6, $a2
264 sb $t6, 6($a0)
265 or $t7, $t7, $a2
266 jr $ra
267 sb $t7, 7($a0)
268tile11110101:
269 or $t0, $t0, $a2
270 sb $t0, 0($a0)
271 or $t2, $t2, $a2
272 sb $t2, 2($a0)
273 or $t4, $t4, $a2
274 sb $t4, 4($a0)
275 or $t5, $t5, $a2
276 sb $t5, 5($a0)
277 or $t6, $t6, $a2
278 sb $t6, 6($a0)
279 or $t7, $t7, $a2
280 jr $ra
281 sb $t7, 7($a0)
282tile11110011:
283 or $t0, $t0, $a2
284 sb $t0, 0($a0)
285tile11110010:
286 or $t1, $t1, $a2
287 sb $t1, 1($a0)
288 or $t4, $t4, $a2
289 sb $t4, 4($a0)
290 or $t5, $t5, $a2
291 sb $t5, 5($a0)
292 or $t6, $t6, $a2
293 sb $t6, 6($a0)
294 or $t7, $t7, $a2
295 jr $ra
296 sb $t7, 7($a0)
297tile11110001:
298 or $t0, $t0, $a2
299 sb $t0, 0($a0)
300 or $t4, $t4, $a2
301 sb $t4, 4($a0)
302 or $t5, $t5, $a2
303 sb $t5, 5($a0)
304 or $t6, $t6, $a2
305 sb $t6, 6($a0)
306 or $t7, $t7, $a2
307 jr $ra
308 sb $t7, 7($a0)
309tile11101111:
310 or $t0, $t0, $a2
311 sb $t0, 0($a0)
312tile11101110:
313 or $t1, $t1, $a2
314 sb $t1, 1($a0)
315tile11101100:
316 or $t2, $t2, $a2
317 sb $t2, 2($a0)
318tile11101000:
319 or $t3, $t3, $a2
320 sb $t3, 3($a0)
321 or $t5, $t5, $a2
322 sb $t5, 5($a0)
323 or $t6, $t6, $a2
324 sb $t6, 6($a0)
325 or $t7, $t7, $a2
326 jr $ra
327 sb $t7, 7($a0)
328tile11101101:
329 or $t0, $t0, $a2
330 sb $t0, 0($a0)
331 or $t2, $t2, $a2
332 sb $t2, 2($a0)
333 or $t3, $t3, $a2
334 sb $t3, 3($a0)
335 or $t5, $t5, $a2
336 sb $t5, 5($a0)
337 or $t6, $t6, $a2
338 sb $t6, 6($a0)
339 or $t7, $t7, $a2
340 jr $ra
341 sb $t7, 7($a0)
342tile11101011:
343 or $t0, $t0, $a2
344 sb $t0, 0($a0)
345tile11101010:
346 or $t1, $t1, $a2
347 sb $t1, 1($a0)
348 or $t3, $t3, $a2
349 sb $t3, 3($a0)
350 or $t5, $t5, $a2
351 sb $t5, 5($a0)
352 or $t6, $t6, $a2
353 sb $t6, 6($a0)
354 or $t7, $t7, $a2
355 jr $ra
356 sb $t7, 7($a0)
357tile11101001:
358 or $t0, $t0, $a2
359 sb $t0, 0($a0)
360 or $t3, $t3, $a2
361 sb $t3, 3($a0)
362 or $t5, $t5, $a2
363 sb $t5, 5($a0)
364 or $t6, $t6, $a2
365 sb $t6, 6($a0)
366 or $t7, $t7, $a2
367 jr $ra
368 sb $t7, 7($a0)
369tile11100111:
370 or $t0, $t0, $a2
371 sb $t0, 0($a0)
372tile11100110:
373 or $t1, $t1, $a2
374 sb $t1, 1($a0)
375tile11100100:
376 or $t2, $t2, $a2
377 sb $t2, 2($a0)
378 or $t5, $t5, $a2
379 sb $t5, 5($a0)
380 or $t6, $t6, $a2
381 sb $t6, 6($a0)
382 or $t7, $t7, $a2
383 jr $ra
384 sb $t7, 7($a0)
385tile11100101:
386 or $t0, $t0, $a2
387 sb $t0, 0($a0)
388 or $t2, $t2, $a2
389 sb $t2, 2($a0)
390 or $t5, $t5, $a2
391 sb $t5, 5($a0)
392 or $t6, $t6, $a2
393 sb $t6, 6($a0)
394 or $t7, $t7, $a2
395 jr $ra
396 sb $t7, 7($a0)
397tile11100011:
398 or $t0, $t0, $a2
399 sb $t0, 0($a0)
400tile11100010:
401 or $t1, $t1, $a2
402 sb $t1, 1($a0)
403 or $t5, $t5, $a2
404 sb $t5, 5($a0)
405 or $t6, $t6, $a2
406 sb $t6, 6($a0)
407 or $t7, $t7, $a2
408 jr $ra
409 sb $t7, 7($a0)
410tile11100001:
411 or $t0, $t0, $a2
412 sb $t0, 0($a0)
413 or $t5, $t5, $a2
414 sb $t5, 5($a0)
415 or $t6, $t6, $a2
416 sb $t6, 6($a0)
417 or $t7, $t7, $a2
418 jr $ra
419 sb $t7, 7($a0)
420tile11011111:
421 or $t0, $t0, $a2
422 sb $t0, 0($a0)
423tile11011110:
424 or $t1, $t1, $a2
425 sb $t1, 1($a0)
426tile11011100:
427 or $t2, $t2, $a2
428 sb $t2, 2($a0)
429tile11011000:
430 or $t3, $t3, $a2
431 sb $t3, 3($a0)
432tile11010000:
433 or $t4, $t4, $a2
434 sb $t4, 4($a0)
435 or $t6, $t6, $a2
436 sb $t6, 6($a0)
437 or $t7, $t7, $a2
438 jr $ra
439 sb $t7, 7($a0)
440tile11011101:
441 or $t0, $t0, $a2
442 sb $t0, 0($a0)
443 or $t2, $t2, $a2
444 sb $t2, 2($a0)
445 or $t3, $t3, $a2
446 sb $t3, 3($a0)
447 or $t4, $t4, $a2
448 sb $t4, 4($a0)
449 or $t6, $t6, $a2
450 sb $t6, 6($a0)
451 or $t7, $t7, $a2
452 jr $ra
453 sb $t7, 7($a0)
454tile11011011:
455 or $t0, $t0, $a2
456 sb $t0, 0($a0)
457tile11011010:
458 or $t1, $t1, $a2
459 sb $t1, 1($a0)
460 or $t3, $t3, $a2
461 sb $t3, 3($a0)
462 or $t4, $t4, $a2
463 sb $t4, 4($a0)
464 or $t6, $t6, $a2
465 sb $t6, 6($a0)
466 or $t7, $t7, $a2
467 jr $ra
468 sb $t7, 7($a0)
469tile11011001:
470 or $t0, $t0, $a2
471 sb $t0, 0($a0)
472 or $t3, $t3, $a2
473 sb $t3, 3($a0)
474 or $t4, $t4, $a2
475 sb $t4, 4($a0)
476 or $t6, $t6, $a2
477 sb $t6, 6($a0)
478 or $t7, $t7, $a2
479 jr $ra
480 sb $t7, 7($a0)
481tile11010111:
482 or $t0, $t0, $a2
483 sb $t0, 0($a0)
484tile11010110:
485 or $t1, $t1, $a2
486 sb $t1, 1($a0)
487tile11010100:
488 or $t2, $t2, $a2
489 sb $t2, 2($a0)
490 or $t4, $t4, $a2
491 sb $t4, 4($a0)
492 or $t6, $t6, $a2
493 sb $t6, 6($a0)
494 or $t7, $t7, $a2
495 jr $ra
496 sb $t7, 7($a0)
497tile11010101:
498 or $t0, $t0, $a2
499 sb $t0, 0($a0)
500 or $t2, $t2, $a2
501 sb $t2, 2($a0)
502 or $t4, $t4, $a2
503 sb $t4, 4($a0)
504 or $t6, $t6, $a2
505 sb $t6, 6($a0)
506 or $t7, $t7, $a2
507 jr $ra
508 sb $t7, 7($a0)
509tile11010011:
510 or $t0, $t0, $a2
511 sb $t0, 0($a0)
512tile11010010:
513 or $t1, $t1, $a2
514 sb $t1, 1($a0)
515 or $t4, $t4, $a2
516 sb $t4, 4($a0)
517 or $t6, $t6, $a2
518 sb $t6, 6($a0)
519 or $t7, $t7, $a2
520 jr $ra
521 sb $t7, 7($a0)
522tile11010001:
523 or $t0, $t0, $a2
524 sb $t0, 0($a0)
525 or $t4, $t4, $a2
526 sb $t4, 4($a0)
527 or $t6, $t6, $a2
528 sb $t6, 6($a0)
529 or $t7, $t7, $a2
530 jr $ra
531 sb $t7, 7($a0)
532tile11001111:
533 or $t0, $t0, $a2
534 sb $t0, 0($a0)
535tile11001110:
536 or $t1, $t1, $a2
537 sb $t1, 1($a0)
538tile11001100:
539 or $t2, $t2, $a2
540 sb $t2, 2($a0)
541tile11001000:
542 or $t3, $t3, $a2
543 sb $t3, 3($a0)
544 or $t6, $t6, $a2
545 sb $t6, 6($a0)
546 or $t7, $t7, $a2
547 jr $ra
548 sb $t7, 7($a0)
549tile11001101:
550 or $t0, $t0, $a2
551 sb $t0, 0($a0)
552 or $t2, $t2, $a2
553 sb $t2, 2($a0)
554 or $t3, $t3, $a2
555 sb $t3, 3($a0)
556 or $t6, $t6, $a2
557 sb $t6, 6($a0)
558 or $t7, $t7, $a2
559 jr $ra
560 sb $t7, 7($a0)
561tile11001011:
562 or $t0, $t0, $a2
563 sb $t0, 0($a0)
564tile11001010:
565 or $t1, $t1, $a2
566 sb $t1, 1($a0)
567 or $t3, $t3, $a2
568 sb $t3, 3($a0)
569 or $t6, $t6, $a2
570 sb $t6, 6($a0)
571 or $t7, $t7, $a2
572 jr $ra
573 sb $t7, 7($a0)
574tile11001001:
575 or $t0, $t0, $a2
576 sb $t0, 0($a0)
577 or $t3, $t3, $a2
578 sb $t3, 3($a0)
579 or $t6, $t6, $a2
580 sb $t6, 6($a0)
581 or $t7, $t7, $a2
582 jr $ra
583 sb $t7, 7($a0)
584tile11000111:
585 or $t0, $t0, $a2
586 sb $t0, 0($a0)
587tile11000110:
588 or $t1, $t1, $a2
589 sb $t1, 1($a0)
590tile11000100:
591 or $t2, $t2, $a2
592 sb $t2, 2($a0)
593 or $t6, $t6, $a2
594 sb $t6, 6($a0)
595 or $t7, $t7, $a2
596 jr $ra
597 sb $t7, 7($a0)
598tile11000101:
599 or $t0, $t0, $a2
600 sb $t0, 0($a0)
601 or $t2, $t2, $a2
602 sb $t2, 2($a0)
603 or $t6, $t6, $a2
604 sb $t6, 6($a0)
605 or $t7, $t7, $a2
606 jr $ra
607 sb $t7, 7($a0)
608tile11000011:
609 or $t0, $t0, $a2
610 sb $t0, 0($a0)
611tile11000010:
612 or $t1, $t1, $a2
613 sb $t1, 1($a0)
614 or $t6, $t6, $a2
615 sb $t6, 6($a0)
616 or $t7, $t7, $a2
617 jr $ra
618 sb $t7, 7($a0)
619tile11000001:
620 or $t0, $t0, $a2
621 sb $t0, 0($a0)
622 or $t6, $t6, $a2
623 sb $t6, 6($a0)
624 or $t7, $t7, $a2
625 jr $ra
626 sb $t7, 7($a0)
627tile10111111:
628 or $t0, $t0, $a2
629 sb $t0, 0($a0)
630tile10111110:
631 or $t1, $t1, $a2
632 sb $t1, 1($a0)
633tile10111100:
634 or $t2, $t2, $a2
635 sb $t2, 2($a0)
636tile10111000:
637 or $t3, $t3, $a2
638 sb $t3, 3($a0)
639tile10110000:
640 or $t4, $t4, $a2
641 sb $t4, 4($a0)
642tile10100000:
643 or $t5, $t5, $a2
644 sb $t5, 5($a0)
645 or $t7, $t7, $a2
646 jr $ra
647 sb $t7, 7($a0)
648tile10111101:
649 or $t0, $t0, $a2
650 sb $t0, 0($a0)
651 or $t2, $t2, $a2
652 sb $t2, 2($a0)
653 or $t3, $t3, $a2
654 sb $t3, 3($a0)
655 or $t4, $t4, $a2
656 sb $t4, 4($a0)
657 or $t5, $t5, $a2
658 sb $t5, 5($a0)
659 or $t7, $t7, $a2
660 jr $ra
661 sb $t7, 7($a0)
662tile10111011:
663 or $t0, $t0, $a2
664 sb $t0, 0($a0)
665tile10111010:
666 or $t1, $t1, $a2
667 sb $t1, 1($a0)
668 or $t3, $t3, $a2
669 sb $t3, 3($a0)
670 or $t4, $t4, $a2
671 sb $t4, 4($a0)
672 or $t5, $t5, $a2
673 sb $t5, 5($a0)
674 or $t7, $t7, $a2
675 jr $ra
676 sb $t7, 7($a0)
677tile10111001:
678 or $t0, $t0, $a2
679 sb $t0, 0($a0)
680 or $t3, $t3, $a2
681 sb $t3, 3($a0)
682 or $t4, $t4, $a2
683 sb $t4, 4($a0)
684 or $t5, $t5, $a2
685 sb $t5, 5($a0)
686 or $t7, $t7, $a2
687 jr $ra
688 sb $t7, 7($a0)
689tile10110111:
690 or $t0, $t0, $a2
691 sb $t0, 0($a0)
692tile10110110:
693 or $t1, $t1, $a2
694 sb $t1, 1($a0)
695tile10110100:
696 or $t2, $t2, $a2
697 sb $t2, 2($a0)
698 or $t4, $t4, $a2
699 sb $t4, 4($a0)
700 or $t5, $t5, $a2
701 sb $t5, 5($a0)
702 or $t7, $t7, $a2
703 jr $ra
704 sb $t7, 7($a0)
705tile10110101:
706 or $t0, $t0, $a2
707 sb $t0, 0($a0)
708 or $t2, $t2, $a2
709 sb $t2, 2($a0)
710 or $t4, $t4, $a2
711 sb $t4, 4($a0)
712 or $t5, $t5, $a2
713 sb $t5, 5($a0)
714 or $t7, $t7, $a2
715 jr $ra
716 sb $t7, 7($a0)
717tile10110011:
718 or $t0, $t0, $a2
719 sb $t0, 0($a0)
720tile10110010:
721 or $t1, $t1, $a2
722 sb $t1, 1($a0)
723 or $t4, $t4, $a2
724 sb $t4, 4($a0)
725 or $t5, $t5, $a2
726 sb $t5, 5($a0)
727 or $t7, $t7, $a2
728 jr $ra
729 sb $t7, 7($a0)
730tile10110001:
731 or $t0, $t0, $a2
732 sb $t0, 0($a0)
733 or $t4, $t4, $a2
734 sb $t4, 4($a0)
735 or $t5, $t5, $a2
736 sb $t5, 5($a0)
737 or $t7, $t7, $a2
738 jr $ra
739 sb $t7, 7($a0)
740tile10101111:
741 or $t0, $t0, $a2
742 sb $t0, 0($a0)
743tile10101110:
744 or $t1, $t1, $a2
745 sb $t1, 1($a0)
746tile10101100:
747 or $t2, $t2, $a2
748 sb $t2, 2($a0)
749tile10101000:
750 or $t3, $t3, $a2
751 sb $t3, 3($a0)
752 or $t5, $t5, $a2
753 sb $t5, 5($a0)
754 or $t7, $t7, $a2
755 jr $ra
756 sb $t7, 7($a0)
757tile10101101:
758 or $t0, $t0, $a2
759 sb $t0, 0($a0)
760 or $t2, $t2, $a2
761 sb $t2, 2($a0)
762 or $t3, $t3, $a2
763 sb $t3, 3($a0)
764 or $t5, $t5, $a2
765 sb $t5, 5($a0)
766 or $t7, $t7, $a2
767 jr $ra
768 sb $t7, 7($a0)
769tile10101011:
770 or $t0, $t0, $a2
771 sb $t0, 0($a0)
772tile10101010:
773 or $t1, $t1, $a2
774 sb $t1, 1($a0)
775 or $t3, $t3, $a2
776 sb $t3, 3($a0)
777 or $t5, $t5, $a2
778 sb $t5, 5($a0)
779 or $t7, $t7, $a2
780 jr $ra
781 sb $t7, 7($a0)
782tile10101001:
783 or $t0, $t0, $a2
784 sb $t0, 0($a0)
785 or $t3, $t3, $a2
786 sb $t3, 3($a0)
787 or $t5, $t5, $a2
788 sb $t5, 5($a0)
789 or $t7, $t7, $a2
790 jr $ra
791 sb $t7, 7($a0)
792tile10100111:
793 or $t0, $t0, $a2
794 sb $t0, 0($a0)
795tile10100110:
796 or $t1, $t1, $a2
797 sb $t1, 1($a0)
798tile10100100:
799 or $t2, $t2, $a2
800 sb $t2, 2($a0)
801 or $t5, $t5, $a2
802 sb $t5, 5($a0)
803 or $t7, $t7, $a2
804 jr $ra
805 sb $t7, 7($a0)
806tile10100101:
807 or $t0, $t0, $a2
808 sb $t0, 0($a0)
809 or $t2, $t2, $a2
810 sb $t2, 2($a0)
811 or $t5, $t5, $a2
812 sb $t5, 5($a0)
813 or $t7, $t7, $a2
814 jr $ra
815 sb $t7, 7($a0)
816tile10100011:
817 or $t0, $t0, $a2
818 sb $t0, 0($a0)
819tile10100010:
820 or $t1, $t1, $a2
821 sb $t1, 1($a0)
822 or $t5, $t5, $a2
823 sb $t5, 5($a0)
824 or $t7, $t7, $a2
825 jr $ra
826 sb $t7, 7($a0)
827tile10100001:
828 or $t0, $t0, $a2
829 sb $t0, 0($a0)
830 or $t5, $t5, $a2
831 sb $t5, 5($a0)
832 or $t7, $t7, $a2
833 jr $ra
834 sb $t7, 7($a0)
835tile10011111:
836 or $t0, $t0, $a2
837 sb $t0, 0($a0)
838tile10011110:
839 or $t1, $t1, $a2
840 sb $t1, 1($a0)
841tile10011100:
842 or $t2, $t2, $a2
843 sb $t2, 2($a0)
844tile10011000:
845 or $t3, $t3, $a2
846 sb $t3, 3($a0)
847tile10010000:
848 or $t4, $t4, $a2
849 sb $t4, 4($a0)
850 or $t7, $t7, $a2
851 jr $ra
852 sb $t7, 7($a0)
853tile10011101:
854 or $t0, $t0, $a2
855 sb $t0, 0($a0)
856 or $t2, $t2, $a2
857 sb $t2, 2($a0)
858 or $t3, $t3, $a2
859 sb $t3, 3($a0)
860 or $t4, $t4, $a2
861 sb $t4, 4($a0)
862 or $t7, $t7, $a2
863 jr $ra
864 sb $t7, 7($a0)
865tile10011011:
866 or $t0, $t0, $a2
867 sb $t0, 0($a0)
868tile10011010:
869 or $t1, $t1, $a2
870 sb $t1, 1($a0)
871 or $t3, $t3, $a2
872 sb $t3, 3($a0)
873 or $t4, $t4, $a2
874 sb $t4, 4($a0)
875 or $t7, $t7, $a2
876 jr $ra
877 sb $t7, 7($a0)
878tile10011001:
879 or $t0, $t0, $a2
880 sb $t0, 0($a0)
881 or $t3, $t3, $a2
882 sb $t3, 3($a0)
883 or $t4, $t4, $a2
884 sb $t4, 4($a0)
885 or $t7, $t7, $a2
886 jr $ra
887 sb $t7, 7($a0)
888tile10010111:
889 or $t0, $t0, $a2
890 sb $t0, 0($a0)
891tile10010110:
892 or $t1, $t1, $a2
893 sb $t1, 1($a0)
894tile10010100:
895 or $t2, $t2, $a2
896 sb $t2, 2($a0)
897 or $t4, $t4, $a2
898 sb $t4, 4($a0)
899 or $t7, $t7, $a2
900 jr $ra
901 sb $t7, 7($a0)
902tile10010101:
903 or $t0, $t0, $a2
904 sb $t0, 0($a0)
905 or $t2, $t2, $a2
906 sb $t2, 2($a0)
907 or $t4, $t4, $a2
908 sb $t4, 4($a0)
909 or $t7, $t7, $a2
910 jr $ra
911 sb $t7, 7($a0)
912tile10010011:
913 or $t0, $t0, $a2
914 sb $t0, 0($a0)
915tile10010010:
916 or $t1, $t1, $a2
917 sb $t1, 1($a0)
918 or $t4, $t4, $a2
919 sb $t4, 4($a0)
920 or $t7, $t7, $a2
921 jr $ra
922 sb $t7, 7($a0)
923tile10010001:
924 or $t0, $t0, $a2
925 sb $t0, 0($a0)
926 or $t4, $t4, $a2
927 sb $t4, 4($a0)
928 or $t7, $t7, $a2
929 jr $ra
930 sb $t7, 7($a0)
931tile10001111:
932 or $t0, $t0, $a2
933 sb $t0, 0($a0)
934tile10001110:
935 or $t1, $t1, $a2
936 sb $t1, 1($a0)
937tile10001100:
938 or $t2, $t2, $a2
939 sb $t2, 2($a0)
940tile10001000:
941 or $t3, $t3, $a2
942 sb $t3, 3($a0)
943 or $t7, $t7, $a2
944 jr $ra
945 sb $t7, 7($a0)
946tile10001101:
947 or $t0, $t0, $a2
948 sb $t0, 0($a0)
949 or $t2, $t2, $a2
950 sb $t2, 2($a0)
951 or $t3, $t3, $a2
952 sb $t3, 3($a0)
953 or $t7, $t7, $a2
954 jr $ra
955 sb $t7, 7($a0)
956tile10001011:
957 or $t0, $t0, $a2
958 sb $t0, 0($a0)
959tile10001010:
960 or $t1, $t1, $a2
961 sb $t1, 1($a0)
962 or $t3, $t3, $a2
963 sb $t3, 3($a0)
964 or $t7, $t7, $a2
965 jr $ra
966 sb $t7, 7($a0)
967tile10001001:
968 or $t0, $t0, $a2
969 sb $t0, 0($a0)
970 or $t3, $t3, $a2
971 sb $t3, 3($a0)
972 or $t7, $t7, $a2
973 jr $ra
974 sb $t7, 7($a0)
975tile10000111:
976 or $t0, $t0, $a2
977 sb $t0, 0($a0)
978tile10000110:
979 or $t1, $t1, $a2
980 sb $t1, 1($a0)
981tile10000100:
982 or $t2, $t2, $a2
983 sb $t2, 2($a0)
984 or $t7, $t7, $a2
985 jr $ra
986 sb $t7, 7($a0)
987tile10000101:
988 or $t0, $t0, $a2
989 sb $t0, 0($a0)
990 or $t2, $t2, $a2
991 sb $t2, 2($a0)
992 or $t7, $t7, $a2
993 jr $ra
994 sb $t7, 7($a0)
995tile10000011:
996 or $t0, $t0, $a2
997 sb $t0, 0($a0)
998tile10000010:
999 or $t1, $t1, $a2
1000 sb $t1, 1($a0)
1001 or $t7, $t7, $a2
1002 jr $ra
1003 sb $t7, 7($a0)
1004tile10000001:
1005 or $t0, $t0, $a2
1006 sb $t0, 0($a0)
1007 or $t7, $t7, $a2
1008 jr $ra
1009 sb $t7, 7($a0)
1010tile01111111:
1011 or $t0, $t0, $a2
1012 sb $t0, 0($a0)
1013tile01111110:
1014 or $t1, $t1, $a2
1015 sb $t1, 1($a0)
1016tile01111100:
1017 or $t2, $t2, $a2
1018 sb $t2, 2($a0)
1019tile01111000:
1020 or $t3, $t3, $a2
1021 sb $t3, 3($a0)
1022tile01110000:
1023 or $t4, $t4, $a2
1024 sb $t4, 4($a0)
1025tile01100000:
1026 or $t5, $t5, $a2
1027 sb $t5, 5($a0)
1028tile01000000:
1029 or $t6, $t6, $a2
1030 jr $ra
1031 sb $t6, 6($a0)
1032tile00000000:
1033tile01111101:
1034 or $t0, $t0, $a2
1035 sb $t0, 0($a0)
1036 or $t2, $t2, $a2
1037 sb $t2, 2($a0)
1038 or $t3, $t3, $a2
1039 sb $t3, 3($a0)
1040 or $t4, $t4, $a2
1041 sb $t4, 4($a0)
1042 or $t5, $t5, $a2
1043 sb $t5, 5($a0)
1044 or $t6, $t6, $a2
1045 jr $ra
1046 sb $t6, 6($a0)
1047tile01111011:
1048 or $t0, $t0, $a2
1049 sb $t0, 0($a0)
1050tile01111010:
1051 or $t1, $t1, $a2
1052 sb $t1, 1($a0)
1053 or $t3, $t3, $a2
1054 sb $t3, 3($a0)
1055 or $t4, $t4, $a2
1056 sb $t4, 4($a0)
1057 or $t5, $t5, $a2
1058 sb $t5, 5($a0)
1059 or $t6, $t6, $a2
1060 jr $ra
1061 sb $t6, 6($a0)
1062tile01111001:
1063 or $t0, $t0, $a2
1064 sb $t0, 0($a0)
1065 or $t3, $t3, $a2
1066 sb $t3, 3($a0)
1067 or $t4, $t4, $a2
1068 sb $t4, 4($a0)
1069 or $t5, $t5, $a2
1070 sb $t5, 5($a0)
1071 or $t6, $t6, $a2
1072 jr $ra
1073 sb $t6, 6($a0)
1074tile01110111:
1075 or $t0, $t0, $a2
1076 sb $t0, 0($a0)
1077tile01110110:
1078 or $t1, $t1, $a2
1079 sb $t1, 1($a0)
1080tile01110100:
1081 or $t2, $t2, $a2
1082 sb $t2, 2($a0)
1083 or $t4, $t4, $a2
1084 sb $t4, 4($a0)
1085 or $t5, $t5, $a2
1086 sb $t5, 5($a0)
1087 or $t6, $t6, $a2
1088 jr $ra
1089 sb $t6, 6($a0)
1090tile01110101:
1091 or $t0, $t0, $a2
1092 sb $t0, 0($a0)
1093 or $t2, $t2, $a2
1094 sb $t2, 2($a0)
1095 or $t4, $t4, $a2
1096 sb $t4, 4($a0)
1097 or $t5, $t5, $a2
1098 sb $t5, 5($a0)
1099 or $t6, $t6, $a2
1100 jr $ra
1101 sb $t6, 6($a0)
1102tile01110011:
1103 or $t0, $t0, $a2
1104 sb $t0, 0($a0)
1105tile01110010:
1106 or $t1, $t1, $a2
1107 sb $t1, 1($a0)
1108 or $t4, $t4, $a2
1109 sb $t4, 4($a0)
1110 or $t5, $t5, $a2
1111 sb $t5, 5($a0)
1112 or $t6, $t6, $a2
1113 jr $ra
1114 sb $t6, 6($a0)
1115tile01110001:
1116 or $t0, $t0, $a2
1117 sb $t0, 0($a0)
1118 or $t4, $t4, $a2
1119 sb $t4, 4($a0)
1120 or $t5, $t5, $a2
1121 sb $t5, 5($a0)
1122 or $t6, $t6, $a2
1123 jr $ra
1124 sb $t6, 6($a0)
1125tile01101111:
1126 or $t0, $t0, $a2
1127 sb $t0, 0($a0)
1128tile01101110:
1129 or $t1, $t1, $a2
1130 sb $t1, 1($a0)
1131tile01101100:
1132 or $t2, $t2, $a2
1133 sb $t2, 2($a0)
1134tile01101000:
1135 or $t3, $t3, $a2
1136 sb $t3, 3($a0)
1137 or $t5, $t5, $a2
1138 sb $t5, 5($a0)
1139 or $t6, $t6, $a2
1140 jr $ra
1141 sb $t6, 6($a0)
1142tile01101101:
1143 or $t0, $t0, $a2
1144 sb $t0, 0($a0)
1145 or $t2, $t2, $a2
1146 sb $t2, 2($a0)
1147 or $t3, $t3, $a2
1148 sb $t3, 3($a0)
1149 or $t5, $t5, $a2
1150 sb $t5, 5($a0)
1151 or $t6, $t6, $a2
1152 jr $ra
1153 sb $t6, 6($a0)
1154tile01101011:
1155 or $t0, $t0, $a2
1156 sb $t0, 0($a0)
1157tile01101010:
1158 or $t1, $t1, $a2
1159 sb $t1, 1($a0)
1160 or $t3, $t3, $a2
1161 sb $t3, 3($a0)
1162 or $t5, $t5, $a2
1163 sb $t5, 5($a0)
1164 or $t6, $t6, $a2
1165 jr $ra
1166 sb $t6, 6($a0)
1167tile01101001:
1168 or $t0, $t0, $a2
1169 sb $t0, 0($a0)
1170 or $t3, $t3, $a2
1171 sb $t3, 3($a0)
1172 or $t5, $t5, $a2
1173 sb $t5, 5($a0)
1174 or $t6, $t6, $a2
1175 jr $ra
1176 sb $t6, 6($a0)
1177tile01100111:
1178 or $t0, $t0, $a2
1179 sb $t0, 0($a0)
1180tile01100110:
1181 or $t1, $t1, $a2
1182 sb $t1, 1($a0)
1183tile01100100:
1184 or $t2, $t2, $a2
1185 sb $t2, 2($a0)
1186 or $t5, $t5, $a2
1187 sb $t5, 5($a0)
1188 or $t6, $t6, $a2
1189 jr $ra
1190 sb $t6, 6($a0)
1191tile01100101:
1192 or $t0, $t0, $a2
1193 sb $t0, 0($a0)
1194 or $t2, $t2, $a2
1195 sb $t2, 2($a0)
1196 or $t5, $t5, $a2
1197 sb $t5, 5($a0)
1198 or $t6, $t6, $a2
1199 jr $ra
1200 sb $t6, 6($a0)
1201tile01100011:
1202 or $t0, $t0, $a2
1203 sb $t0, 0($a0)
1204tile01100010:
1205 or $t1, $t1, $a2
1206 sb $t1, 1($a0)
1207 or $t5, $t5, $a2
1208 sb $t5, 5($a0)
1209 or $t6, $t6, $a2
1210 jr $ra
1211 sb $t6, 6($a0)
1212tile01100001:
1213 or $t0, $t0, $a2
1214 sb $t0, 0($a0)
1215 or $t5, $t5, $a2
1216 sb $t5, 5($a0)
1217 or $t6, $t6, $a2
1218 jr $ra
1219 sb $t6, 6($a0)
1220tile01011111:
1221 or $t0, $t0, $a2
1222 sb $t0, 0($a0)
1223tile01011110:
1224 or $t1, $t1, $a2
1225 sb $t1, 1($a0)
1226tile01011100:
1227 or $t2, $t2, $a2
1228 sb $t2, 2($a0)
1229tile01011000:
1230 or $t3, $t3, $a2
1231 sb $t3, 3($a0)
1232tile01010000:
1233 or $t4, $t4, $a2
1234 sb $t4, 4($a0)
1235 or $t6, $t6, $a2
1236 jr $ra
1237 sb $t6, 6($a0)
1238tile01011101:
1239 or $t0, $t0, $a2
1240 sb $t0, 0($a0)
1241 or $t2, $t2, $a2
1242 sb $t2, 2($a0)
1243 or $t3, $t3, $a2
1244 sb $t3, 3($a0)
1245 or $t4, $t4, $a2
1246 sb $t4, 4($a0)
1247 or $t6, $t6, $a2
1248 jr $ra
1249 sb $t6, 6($a0)
1250tile01011011:
1251 or $t0, $t0, $a2
1252 sb $t0, 0($a0)
1253tile01011010:
1254 or $t1, $t1, $a2
1255 sb $t1, 1($a0)
1256 or $t3, $t3, $a2
1257 sb $t3, 3($a0)
1258 or $t4, $t4, $a2
1259 sb $t4, 4($a0)
1260 or $t6, $t6, $a2
1261 jr $ra
1262 sb $t6, 6($a0)
1263tile01011001:
1264 or $t0, $t0, $a2
1265 sb $t0, 0($a0)
1266 or $t3, $t3, $a2
1267 sb $t3, 3($a0)
1268 or $t4, $t4, $a2
1269 sb $t4, 4($a0)
1270 or $t6, $t6, $a2
1271 jr $ra
1272 sb $t6, 6($a0)
1273tile01010111:
1274 or $t0, $t0, $a2
1275 sb $t0, 0($a0)
1276tile01010110:
1277 or $t1, $t1, $a2
1278 sb $t1, 1($a0)
1279tile01010100:
1280 or $t2, $t2, $a2
1281 sb $t2, 2($a0)
1282 or $t4, $t4, $a2
1283 sb $t4, 4($a0)
1284 or $t6, $t6, $a2
1285 jr $ra
1286 sb $t6, 6($a0)
1287tile01010101:
1288 or $t0, $t0, $a2
1289 sb $t0, 0($a0)
1290 or $t2, $t2, $a2
1291 sb $t2, 2($a0)
1292 or $t4, $t4, $a2
1293 sb $t4, 4($a0)
1294 or $t6, $t6, $a2
1295 jr $ra
1296 sb $t6, 6($a0)
1297tile01010011:
1298 or $t0, $t0, $a2
1299 sb $t0, 0($a0)
1300tile01010010:
1301 or $t1, $t1, $a2
1302 sb $t1, 1($a0)
1303 or $t4, $t4, $a2
1304 sb $t4, 4($a0)
1305 or $t6, $t6, $a2
1306 jr $ra
1307 sb $t6, 6($a0)
1308tile01010001:
1309 or $t0, $t0, $a2
1310 sb $t0, 0($a0)
1311 or $t4, $t4, $a2
1312 sb $t4, 4($a0)
1313 or $t6, $t6, $a2
1314 jr $ra
1315 sb $t6, 6($a0)
1316tile01001111:
1317 or $t0, $t0, $a2
1318 sb $t0, 0($a0)
1319tile01001110:
1320 or $t1, $t1, $a2
1321 sb $t1, 1($a0)
1322tile01001100:
1323 or $t2, $t2, $a2
1324 sb $t2, 2($a0)
1325tile01001000:
1326 or $t3, $t3, $a2
1327 sb $t3, 3($a0)
1328 or $t6, $t6, $a2
1329 jr $ra
1330 sb $t6, 6($a0)
1331tile01001101:
1332 or $t0, $t0, $a2
1333 sb $t0, 0($a0)
1334 or $t2, $t2, $a2
1335 sb $t2, 2($a0)
1336 or $t3, $t3, $a2
1337 sb $t3, 3($a0)
1338 or $t6, $t6, $a2
1339 jr $ra
1340 sb $t6, 6($a0)
1341tile01001011:
1342 or $t0, $t0, $a2
1343 sb $t0, 0($a0)
1344tile01001010:
1345 or $t1, $t1, $a2
1346 sb $t1, 1($a0)
1347 or $t3, $t3, $a2
1348 sb $t3, 3($a0)
1349 or $t6, $t6, $a2
1350 jr $ra
1351 sb $t6, 6($a0)
1352tile01001001:
1353 or $t0, $t0, $a2
1354 sb $t0, 0($a0)
1355 or $t3, $t3, $a2
1356 sb $t3, 3($a0)
1357 or $t6, $t6, $a2
1358 jr $ra
1359 sb $t6, 6($a0)
1360tile01000111:
1361 or $t0, $t0, $a2
1362 sb $t0, 0($a0)
1363tile01000110:
1364 or $t1, $t1, $a2
1365 sb $t1, 1($a0)
1366tile01000100:
1367 or $t2, $t2, $a2
1368 sb $t2, 2($a0)
1369 or $t6, $t6, $a2
1370 jr $ra
1371 sb $t6, 6($a0)
1372tile01000101:
1373 or $t0, $t0, $a2
1374 sb $t0, 0($a0)
1375 or $t2, $t2, $a2
1376 sb $t2, 2($a0)
1377 or $t6, $t6, $a2
1378 jr $ra
1379 sb $t6, 6($a0)
1380tile01000011:
1381 or $t0, $t0, $a2
1382 sb $t0, 0($a0)
1383tile01000010:
1384 or $t1, $t1, $a2
1385 sb $t1, 1($a0)
1386 or $t6, $t6, $a2
1387 jr $ra
1388 sb $t6, 6($a0)
1389tile01000001:
1390 or $t0, $t0, $a2
1391 sb $t0, 0($a0)
1392 or $t6, $t6, $a2
1393 jr $ra
1394 sb $t6, 6($a0)
1395tile00111111:
1396 or $t0, $t0, $a2
1397 sb $t0, 0($a0)
1398tile00111110:
1399 or $t1, $t1, $a2
1400 sb $t1, 1($a0)
1401tile00111100:
1402 or $t2, $t2, $a2
1403 sb $t2, 2($a0)
1404tile00111000:
1405 or $t3, $t3, $a2
1406 sb $t3, 3($a0)
1407tile00110000:
1408 or $t4, $t4, $a2
1409 sb $t4, 4($a0)
1410tile00100000:
1411 or $t5, $t5, $a2
1412 jr $ra
1413 sb $t5, 5($a0)
1414tile00111101:
1415 or $t0, $t0, $a2
1416 sb $t0, 0($a0)
1417 or $t2, $t2, $a2
1418 sb $t2, 2($a0)
1419 or $t3, $t3, $a2
1420 sb $t3, 3($a0)
1421 or $t4, $t4, $a2
1422 sb $t4, 4($a0)
1423 or $t5, $t5, $a2
1424 jr $ra
1425 sb $t5, 5($a0)
1426tile00111011:
1427 or $t0, $t0, $a2
1428 sb $t0, 0($a0)
1429tile00111010:
1430 or $t1, $t1, $a2
1431 sb $t1, 1($a0)
1432 or $t3, $t3, $a2
1433 sb $t3, 3($a0)
1434 or $t4, $t4, $a2
1435 sb $t4, 4($a0)
1436 or $t5, $t5, $a2
1437 jr $ra
1438 sb $t5, 5($a0)
1439tile00111001:
1440 or $t0, $t0, $a2
1441 sb $t0, 0($a0)
1442 or $t3, $t3, $a2
1443 sb $t3, 3($a0)
1444 or $t4, $t4, $a2
1445 sb $t4, 4($a0)
1446 or $t5, $t5, $a2
1447 jr $ra
1448 sb $t5, 5($a0)
1449tile00110111:
1450 or $t0, $t0, $a2
1451 sb $t0, 0($a0)
1452tile00110110:
1453 or $t1, $t1, $a2
1454 sb $t1, 1($a0)
1455tile00110100:
1456 or $t2, $t2, $a2
1457 sb $t2, 2($a0)
1458 or $t4, $t4, $a2
1459 sb $t4, 4($a0)
1460 or $t5, $t5, $a2
1461 jr $ra
1462 sb $t5, 5($a0)
1463tile00110101:
1464 or $t0, $t0, $a2
1465 sb $t0, 0($a0)
1466 or $t2, $t2, $a2
1467 sb $t2, 2($a0)
1468 or $t4, $t4, $a2
1469 sb $t4, 4($a0)
1470 or $t5, $t5, $a2
1471 jr $ra
1472 sb $t5, 5($a0)
1473tile00110011:
1474 or $t0, $t0, $a2
1475 sb $t0, 0($a0)
1476tile00110010:
1477 or $t1, $t1, $a2
1478 sb $t1, 1($a0)
1479 or $t4, $t4, $a2
1480 sb $t4, 4($a0)
1481 or $t5, $t5, $a2
1482 jr $ra
1483 sb $t5, 5($a0)
1484tile00110001:
1485 or $t0, $t0, $a2
1486 sb $t0, 0($a0)
1487 or $t4, $t4, $a2
1488 sb $t4, 4($a0)
1489 or $t5, $t5, $a2
1490 jr $ra
1491 sb $t5, 5($a0)
1492tile00101111:
1493 or $t0, $t0, $a2
1494 sb $t0, 0($a0)
1495tile00101110:
1496 or $t1, $t1, $a2
1497 sb $t1, 1($a0)
1498tile00101100:
1499 or $t2, $t2, $a2
1500 sb $t2, 2($a0)
1501tile00101000:
1502 or $t3, $t3, $a2
1503 sb $t3, 3($a0)
1504 or $t5, $t5, $a2
1505 jr $ra
1506 sb $t5, 5($a0)
1507tile00101101:
1508 or $t0, $t0, $a2
1509 sb $t0, 0($a0)
1510 or $t2, $t2, $a2
1511 sb $t2, 2($a0)
1512 or $t3, $t3, $a2
1513 sb $t3, 3($a0)
1514 or $t5, $t5, $a2
1515 jr $ra
1516 sb $t5, 5($a0)
1517tile00101011:
1518 or $t0, $t0, $a2
1519 sb $t0, 0($a0)
1520tile00101010:
1521 or $t1, $t1, $a2
1522 sb $t1, 1($a0)
1523 or $t3, $t3, $a2
1524 sb $t3, 3($a0)
1525 or $t5, $t5, $a2
1526 jr $ra
1527 sb $t5, 5($a0)
1528tile00101001:
1529 or $t0, $t0, $a2
1530 sb $t0, 0($a0)
1531 or $t3, $t3, $a2
1532 sb $t3, 3($a0)
1533 or $t5, $t5, $a2
1534 jr $ra
1535 sb $t5, 5($a0)
1536tile00100111:
1537 or $t0, $t0, $a2
1538 sb $t0, 0($a0)
1539tile00100110:
1540 or $t1, $t1, $a2
1541 sb $t1, 1($a0)
1542tile00100100:
1543 or $t2, $t2, $a2
1544 sb $t2, 2($a0)
1545 or $t5, $t5, $a2
1546 jr $ra
1547 sb $t5, 5($a0)
1548tile00100101:
1549 or $t0, $t0, $a2
1550 sb $t0, 0($a0)
1551 or $t2, $t2, $a2
1552 sb $t2, 2($a0)
1553 or $t5, $t5, $a2
1554 jr $ra
1555 sb $t5, 5($a0)
1556tile00100011:
1557 or $t0, $t0, $a2
1558 sb $t0, 0($a0)
1559tile00100010:
1560 or $t1, $t1, $a2
1561 sb $t1, 1($a0)
1562 or $t5, $t5, $a2
1563 jr $ra
1564 sb $t5, 5($a0)
1565tile00100001:
1566 or $t0, $t0, $a2
1567 sb $t0, 0($a0)
1568 or $t5, $t5, $a2
1569 jr $ra
1570 sb $t5, 5($a0)
1571tile00011111:
1572 or $t0, $t0, $a2
1573 sb $t0, 0($a0)
1574tile00011110:
1575 or $t1, $t1, $a2
1576 sb $t1, 1($a0)
1577tile00011100:
1578 or $t2, $t2, $a2
1579 sb $t2, 2($a0)
1580tile00011000:
1581 or $t3, $t3, $a2
1582 sb $t3, 3($a0)
1583tile00010000:
1584 or $t4, $t4, $a2
1585 jr $ra
1586 sb $t4, 4($a0)
1587tile00011101:
1588 or $t0, $t0, $a2
1589 sb $t0, 0($a0)
1590 or $t2, $t2, $a2
1591 sb $t2, 2($a0)
1592 or $t3, $t3, $a2
1593 sb $t3, 3($a0)
1594 or $t4, $t4, $a2
1595 jr $ra
1596 sb $t4, 4($a0)
1597tile00011011:
1598 or $t0, $t0, $a2
1599 sb $t0, 0($a0)
1600tile00011010:
1601 or $t1, $t1, $a2
1602 sb $t1, 1($a0)
1603 or $t3, $t3, $a2
1604 sb $t3, 3($a0)
1605 or $t4, $t4, $a2
1606 jr $ra
1607 sb $t4, 4($a0)
1608tile00011001:
1609 or $t0, $t0, $a2
1610 sb $t0, 0($a0)
1611 or $t3, $t3, $a2
1612 sb $t3, 3($a0)
1613 or $t4, $t4, $a2
1614 jr $ra
1615 sb $t4, 4($a0)
1616tile00010111:
1617 or $t0, $t0, $a2
1618 sb $t0, 0($a0)
1619tile00010110:
1620 or $t1, $t1, $a2
1621 sb $t1, 1($a0)
1622tile00010100:
1623 or $t2, $t2, $a2
1624 sb $t2, 2($a0)
1625 or $t4, $t4, $a2
1626 jr $ra
1627 sb $t4, 4($a0)
1628tile00010101:
1629 or $t0, $t0, $a2
1630 sb $t0, 0($a0)
1631 or $t2, $t2, $a2
1632 sb $t2, 2($a0)
1633 or $t4, $t4, $a2
1634 jr $ra
1635 sb $t4, 4($a0)
1636tile00010011:
1637 or $t0, $t0, $a2
1638 sb $t0, 0($a0)
1639tile00010010:
1640 or $t1, $t1, $a2
1641 sb $t1, 1($a0)
1642 or $t4, $t4, $a2
1643 jr $ra
1644 sb $t4, 4($a0)
1645tile00010001:
1646 or $t0, $t0, $a2
1647 sb $t0, 0($a0)
1648 or $t4, $t4, $a2
1649 jr $ra
1650 sb $t4, 4($a0)
1651tile00001111:
1652 or $t0, $t0, $a2
1653 sb $t0, 0($a0)
1654tile00001110:
1655 or $t1, $t1, $a2
1656 sb $t1, 1($a0)
1657tile00001100:
1658 or $t2, $t2, $a2
1659 sb $t2, 2($a0)
1660tile00001000:
1661 or $t3, $t3, $a2
1662 jr $ra
1663 sb $t3, 3($a0)
1664tile00001101:
1665 or $t0, $t0, $a2
1666 sb $t0, 0($a0)
1667 or $t2, $t2, $a2
1668 sb $t2, 2($a0)
1669 or $t3, $t3, $a2
1670 jr $ra
1671 sb $t3, 3($a0)
1672tile00001011:
1673 or $t0, $t0, $a2
1674 sb $t0, 0($a0)
1675tile00001010:
1676 or $t1, $t1, $a2
1677 sb $t1, 1($a0)
1678 or $t3, $t3, $a2
1679 jr $ra
1680 sb $t3, 3($a0)
1681tile00001001:
1682 or $t0, $t0, $a2
1683 sb $t0, 0($a0)
1684 or $t3, $t3, $a2
1685 jr $ra
1686 sb $t3, 3($a0)
1687tile00000111:
1688 or $t0, $t0, $a2
1689 sb $t0, 0($a0)
1690tile00000110:
1691 or $t1, $t1, $a2
1692 sb $t1, 1($a0)
1693tile00000100:
1694 or $t2, $t2, $a2
1695 jr $ra
1696 sb $t2, 2($a0)
1697tile00000101:
1698 or $t0, $t0, $a2
1699 sb $t0, 0($a0)
1700 or $t2, $t2, $a2
1701 jr $ra
1702 sb $t2, 2($a0)
1703tile00000011:
1704 or $t0, $t0, $a2
1705 sb $t0, 0($a0)
1706tile00000010:
1707 or $t1, $t1, $a2
1708 jr $ra
1709 sb $t1, 1($a0)
1710tile00000001:
1711 or $t0, $t0, $a2
1712 jr $ra
1713 sb $t0, 0($a0)
1714
81fda4e8 1715.data
1716.align 4
1717
8ef001cc 1718TileTable:
1719 .long 000000000000, tile00000001, tile00000010, tile00000011, tile00000100, tile00000101, tile00000110, tile00000111
1720 .long tile00001000, tile00001001, tile00001010, tile00001011, tile00001100, tile00001101, tile00001110, tile00001111
1721 .long tile00010000, tile00010001, tile00010010, tile00010011, tile00010100, tile00010101, tile00010110, tile00010111
1722 .long tile00011000, tile00011001, tile00011010, tile00011011, tile00011100, tile00011101, tile00011110, tile00011111
1723 .long tile00100000, tile00100001, tile00100010, tile00100011, tile00100100, tile00100101, tile00100110, tile00100111
1724 .long tile00101000, tile00101001, tile00101010, tile00101011, tile00101100, tile00101101, tile00101110, tile00101111
1725 .long tile00110000, tile00110001, tile00110010, tile00110011, tile00110100, tile00110101, tile00110110, tile00110111
1726 .long tile00111000, tile00111001, tile00111010, tile00111011, tile00111100, tile00111101, tile00111110, tile00111111
1727 .long tile01000000, tile01000001, tile01000010, tile01000011, tile01000100, tile01000101, tile01000110, tile01000111
1728 .long tile01001000, tile01001001, tile01001010, tile01001011, tile01001100, tile01001101, tile01001110, tile01001111
1729 .long tile01010000, tile01010001, tile01010010, tile01010011, tile01010100, tile01010101, tile01010110, tile01010111
1730 .long tile01011000, tile01011001, tile01011010, tile01011011, tile01011100, tile01011101, tile01011110, tile01011111
1731 .long tile01100000, tile01100001, tile01100010, tile01100011, tile01100100, tile01100101, tile01100110, tile01100111
1732 .long tile01101000, tile01101001, tile01101010, tile01101011, tile01101100, tile01101101, tile01101110, tile01101111
1733 .long tile01110000, tile01110001, tile01110010, tile01110011, tile01110100, tile01110101, tile01110110, tile01110111
1734 .long tile01111000, tile01111001, tile01111010, tile01111011, tile01111100, tile01111101, tile01111110, tile01111111
1735 .long tile10000000, tile10000001, tile10000010, tile10000011, tile10000100, tile10000101, tile10000110, tile10000111
1736 .long tile10001000, tile10001001, tile10001010, tile10001011, tile10001100, tile10001101, tile10001110, tile10001111
1737 .long tile10010000, tile10010001, tile10010010, tile10010011, tile10010100, tile10010101, tile10010110, tile10010111
1738 .long tile10011000, tile10011001, tile10011010, tile10011011, tile10011100, tile10011101, tile10011110, tile10011111
1739 .long tile10100000, tile10100001, tile10100010, tile10100011, tile10100100, tile10100101, tile10100110, tile10100111
1740 .long tile10101000, tile10101001, tile10101010, tile10101011, tile10101100, tile10101101, tile10101110, tile10101111
1741 .long tile10110000, tile10110001, tile10110010, tile10110011, tile10110100, tile10110101, tile10110110, tile10110111
1742 .long tile10111000, tile10111001, tile10111010, tile10111011, tile10111100, tile10111101, tile10111110, tile10111111
1743 .long tile11000000, tile11000001, tile11000010, tile11000011, tile11000100, tile11000101, tile11000110, tile11000111
1744 .long tile11001000, tile11001001, tile11001010, tile11001011, tile11001100, tile11001101, tile11001110, tile11001111
1745 .long tile11010000, tile11010001, tile11010010, tile11010011, tile11010100, tile11010101, tile11010110, tile11010111
1746 .long tile11011000, tile11011001, tile11011010, tile11011011, tile11011100, tile11011101, tile11011110, tile11011111
1747 .long tile11100000, tile11100001, tile11100010, tile11100011, tile11100100, tile11100101, tile11100110, tile11100111
1748 .long tile11101000, tile11101001, tile11101010, tile11101011, tile11101100, tile11101101, tile11101110, tile11101111
1749 .long tile11110000, tile11110001, tile11110010, tile11110011, tile11110100, tile11110101, tile11110110, tile11110111
1750 .long tile11111000, tile11111001, tile11111010, tile11111011, tile11111100, tile11111101, tile11111110, tile11111111
1751
1752