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