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