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