negative memcpy

Denys Vlasenko vda.linux at googlemail.com
Thu Aug 11 00:53:14 UTC 2011


On Wednesday 10 August 2011 07:05, manish kumar wrote:
> On Wed, Aug 10, 2011 at 12:06 PM, Denys Vlasenko
> <vda.linux at googlemail.com> wrote:
> > Try disassembling a static binary.
> 
> I disassembled the static version. It appears it is calling the CPU
> specific optimized memcpy(). But then how can I fix this problem. I
> want this test case to crash.
> 
> 00400140 <__start>:
>   400140:	3c1c0042 	lui	gp,0x42
>   400144:	279cb0d0 	addiu	gp,gp,-20272
>   400148:	0000f821 	move	ra,zero
>   40014c:	3c040040 	lui	a0,0x40
>   400150:	248402a0 	addiu	a0,a0,672
>   400154:	8fa50000 	lw	a1,0(sp)
>   400158:	27a60004 	addiu	a2,sp,4
>   40015c:	2401fff8 	li	at,-8
>   400160:	03a1e824 	and	sp,sp,at
>   400164:	27bdffe0 	addiu	sp,sp,-32
>   400168:	3c070040 	lui	a3,0x40
>   40016c:	24e700ec 	addiu	a3,a3,236
>   400170:	3c080040 	lui	t0,0x40
>   400174:	25082f90 	addiu	t0,t0,12176
>   400178:	afa80010 	sw	t0,16(sp)
>   40017c:	afa20014 	sw	v0,20(sp)
>   400180:	0c100738 	jal	401ce0 <__uClibc_main>
>   400184:	afbd0018 	sw	sp,24(sp)

So, this is uclibc.


> 004002a0 <main>:
> #include <stdio.h>
> #include <stdlib.h>
> #include <string.h>
> 
> int main()
> {
>   4002a0:	27bdffc0 	addiu	sp,sp,-64
>   4002a4:	afbf003c 	sw	ra,60(sp)
>   4002a8:	afbe0038 	sw	s8,56(sp)
>   4002ac:	03a0f021 	move	s8,sp
>         size_t size = -1;
>   4002b0:	2402ffff 	li	v0,-1
>   4002b4:	afc20018 	sw	v0,24(s8)
>         char src[10] = {0, }, dest[10] = {0, };
>   4002b8:	afc0001c 	sw	zero,28(s8)
>   4002bc:	afc00020 	sw	zero,32(s8)
>   4002c0:	a7c00024 	sh	zero,36(s8)
>   4002c4:	afc00028 	sw	zero,40(s8)
>   4002c8:	afc0002c 	sw	zero,44(s8)
>   4002cc:	a7c00030 	sh	zero,48(s8)
>         memcpy(dest, src, size);
>   4002d0:	27c30028 	addiu	v1,s8,40
>   4002d4:	27c2001c 	addiu	v0,s8,28
>   4002d8:	00602021 	move	a0,v1
>   4002dc:	00402821 	move	a1,v0
>   4002e0:	8fc60018 	lw	a2,24(s8)
>   4002e4:	0c1000c4 	jal	400310 <__GI_memcpy>
>   4002e8:	00000000 	nop
>         return 1;
>   4002ec:	24020001 	li	v0,1
> }
>   4002f0:	03c0e821 	move	sp,s8
>   4002f4:	8fbf003c 	lw	ra,60(sp)
>   4002f8:	8fbe0038 	lw	s8,56(sp)
>   4002fc:	27bd0040 	addiu	sp,sp,64
>   400300:	03e00008 	jr	ra
>   400304:	00000000 	nop
> 	...


...but the below doesn't look like memcpy from uclibc:
in iclibc tree, uClibc/libc/string/mips/memcpy.S is hardly
5 screenfuls of code including comments,
and it, for example, doesn't use "pref" instruction
(and never did according to git log).

Whereas code below is HUGEST: nearly FORTY screenfuls,
and it uses "pref" insn.

Google code search failed to find the source
(I looked for "memcpy detect_done").

Is this a modified uclibc, with someone's
"more optimized" memcpy?


> 00400310 <__GI_memcpy>:
>   400310:	3c080041 	lui	t0,0x41
>   400314:	8d083060 	lw	t0,12384(t0)
>   400318:	110005ec 	beqz	t0,401acc <detect_cpu>
>   40031c:	00000000 	nop
> 
> 00400320 <detect_done>:
>   400320:	2409111c 	li	t1,4380
>   400324:	11090058 	beq	t0,t1,400488 <_4380_memcpy>
>   400328:	00000000 	nop
>   40032c:	24091388 	li	t1,5000
>   400330:	110902b2 	beq	t0,t1,400dfc <_5000_memcpy>
>   400334:	00000000 	nop
>   400338:	28c80008 	slti	t0,a2,8
>   40033c:	15000035 	bnez	t0,400414 <__BMIPS3300_memcpy_last8>
>   400340:	00801021 	move	v0,a0
>   400344:	00a44026 	xor	t0,a1,a0
>   400348:	31080003 	andi	t0,t0,0x3
>   40034c:	1500003a 	bnez	t0,400438 <__BMIPS3300_memcpy_shift>
>   400350:	00054823 	negu	t1,a1
>   400354:	31290003 	andi	t1,t1,0x3
>   400358:	11200005 	beqz	t1,400370 <__BMIPS3300_memcpy_chk8w>
>   40035c:	00c93023 	subu	a2,a2,t1
>   400360:	98a80000 	lwr	t0,0(a1)
>   400364:	00a92821 	addu	a1,a1,t1
>   400368:	b8880000 	swr	t0,0(a0)
>   40036c:	00892021 	addu	a0,a0,t1
> 
> 00400370 <__BMIPS3300_memcpy_chk8w>:
>   400370:	30c8001f 	andi	t0,a2,0x1f
>   400374:	1106001d 	beq	t0,a2,4003ec <__BMIPS3300_memcpy_chk1w>
>   400378:	00c83823 	subu	a3,a2,t0
>   40037c:	00e43821 	addu	a3,a3,a0
>   400380:	24e7fff0 	addiu	a3,a3,-16
> 	...
>   400390:	01003021 	move	a2,t0
>   400394:	8ca80000 	lw	t0,0(a1)
>   400398:	ac880000 	sw	t0,0(a0)
> 
> 0040039c <__BMIPS3300_memcpy_lop8w>:
>   40039c:	8ca90010 	lw	t1,16(a1)
>   4003a0:	cc9f0010 	pref	0x1f,16(a0)
>   4003a4:	8caa0004 	lw	t2,4(a1)
>   4003a8:	8cab0008 	lw	t3,8(a1)
>   4003ac:	8cac000c 	lw	t4,12(a1)
>   4003b0:	ac890010 	sw	t1,16(a0)
>   4003b4:	ac8a0004 	sw	t2,4(a0)
>   4003b8:	ac8b0008 	sw	t3,8(a0)
>   4003bc:	ac8c000c 	sw	t4,12(a0)
>   4003c0:	20840010 	addi	a0,a0,16
>   4003c4:	1487fff5 	bne	a0,a3,40039c <__BMIPS3300_memcpy_lop8w>
>   4003c8:	20a50010 	addi	a1,a1,16
>   4003cc:	8caa0004 	lw	t2,4(a1)
>   4003d0:	8cab0008 	lw	t3,8(a1)
>   4003d4:	8cac000c 	lw	t4,12(a1)
>   4003d8:	ac8a0004 	sw	t2,4(a0)
>   4003dc:	ac8b0008 	sw	t3,8(a0)
>   4003e0:	ac8c000c 	sw	t4,12(a0)
>   4003e4:	20a50010 	addi	a1,a1,16
>   4003e8:	20840010 	addi	a0,a0,16
> 
> 004003ec <__BMIPS3300_memcpy_chk1w>:
>   4003ec:	30c80003 	andi	t0,a2,0x3
>   4003f0:	11060008 	beq	t0,a2,400414 <__BMIPS3300_memcpy_last8>
>   4003f4:	00c83823 	subu	a3,a2,t0
>   4003f8:	00e53821 	addu	a3,a3,a1
>   4003fc:	01003021 	move	a2,t0
> 
> 00400400 <__BMIPS3300_memcpy_lop1w>:
>   400400:	8ca80000 	lw	t0,0(a1)
>   400404:	24840004 	addiu	a0,a0,4
>   400408:	24a50004 	addiu	a1,a1,4
>   40040c:	14a7fffc 	bne	a1,a3,400400 <__BMIPS3300_memcpy_lop1w>
>   400410:	ac88fffc 	sw	t0,-4(a0)
> 
> 00400414 <__BMIPS3300_memcpy_last8>:
>   400414:	18c00006 	blez	a2,400430 <__BMIPS3300_memcpy_lst8e>
>   400418:	00c53821 	addu	a3,a2,a1
> 
> 0040041c <__BMIPS3300_memcpy_lst8l>:
>   40041c:	80a80000 	lb	t0,0(a1)
>   400420:	24840001 	addiu	a0,a0,1
>   400424:	24a50001 	addiu	a1,a1,1
>   400428:	14a7fffc 	bne	a1,a3,40041c <__BMIPS3300_memcpy_lst8l>
>   40042c:	a088ffff 	sb	t0,-1(a0)
> 
> 00400430 <__BMIPS3300_memcpy_lst8e>:
>   400430:	03e00008 	jr	ra
>   400434:	00000000 	nop
> 
> 00400438 <__BMIPS3300_memcpy_shift>:
>   400438:	00043823 	negu	a3,a0
>   40043c:	30e70003 	andi	a3,a3,0x3
>   400440:	10e00006 	beqz	a3,40045c <__BMIPS3300_memcpy_shft1>
>   400444:	00c73023 	subu	a2,a2,a3
>   400448:	98a80000 	lwr	t0,0(a1)
>   40044c:	88a80003 	lwl	t0,3(a1)
>   400450:	00a72821 	addu	a1,a1,a3
>   400454:	b8880000 	swr	t0,0(a0)
>   400458:	00872021 	addu	a0,a0,a3
> 
> 0040045c <__BMIPS3300_memcpy_shft1>:
>   40045c:	30c80003 	andi	t0,a2,0x3
>   400460:	00c83823 	subu	a3,a2,t0
>   400464:	00e53821 	addu	a3,a3,a1
> 
> 00400468 <__BMIPS3300_memcpy_shfth>:
>   400468:	98a90000 	lwr	t1,0(a1)
>   40046c:	88a90003 	lwl	t1,3(a1)
>   400470:	24840004 	addiu	a0,a0,4
>   400474:	24a50004 	addiu	a1,a1,4
>   400478:	14a7fffb 	bne	a1,a3,400468 <__BMIPS3300_memcpy_shfth>
>   40047c:	ac89fffc 	sw	t1,-4(a0)
>   400480:	1000ffe4 	b	400414 <__BMIPS3300_memcpy_last8>
>   400484:	01003021 	move	a2,t0
> 
> 00400488 <_4380_memcpy>:
>   400488:	28c80008 	slti	t0,a2,8
>   40048c:	15000138 	bnez	t0,400970 <__BMIPS4380_memcpy_last8ByteCopy>
>   400490:	00801021 	move	v0,a0
>   400494:	00a44026 	xor	t0,a1,a0
>   400498:	31080003 	andi	t0,t0,0x3
>   40049c:	11000003 	beqz	t0,4004ac <__BMIPS4380_memcpy_wordAlign>
>   4004a0:	00054823 	negu	t1,a1
>   4004a4:	1000013b 	b	400994 <__BMIPS4380_memcpy_unAlignSrcDest>
>   4004a8:	00043823 	negu	a3,a0
> 
> 004004ac <__BMIPS4380_memcpy_wordAlign>:
>   4004ac:	31290003 	andi	t1,t1,0x3
>   4004b0:	11200005 	beqz	t1,4004c8 <__BMIPS4380_memcpy_intCheck8w>
>   4004b4:	00c93023 	subu	a2,a2,t1
>   4004b8:	98a80000 	lwr	t0,0(a1)
>   4004bc:	00a92821 	addu	a1,a1,t1
>   4004c0:	b8880000 	swr	t0,0(a0)
>   4004c4:	00892021 	addu	a0,a0,t1
> 
> 004004c8 <__BMIPS4380_memcpy_intCheck8w>:
>   4004c8:	30c801ff 	andi	t0,a2,0x1ff
>   4004cc:	1106010e 	beq	t0,a2,400908 <__BMIPS4380_memcpy_check4w>
>   4004d0:	00c83823 	subu	a3,a2,t0
>   4004d4:	00e43821 	addu	a3,a3,a0
>   4004d8:	24e7ff00 	addiu	a3,a3,-256
>   4004dc:	00000000 	nop
>   4004e0:	01003021 	move	a2,t0
>   4004e4:	8cae0000 	lw	t6,0(a1)
> 
> 004004e8 <__BMIPS4380_memcpy_intLoopBack>:
>   4004e8:	cc9e0040 	pref	0x1e,64(a0)
>   4004ec:	8cad0040 	lw	t5,64(a1)
>   4004f0:	8caa0004 	lw	t2,4(a1)
>   4004f4:	8cab0008 	lw	t3,8(a1)
>   4004f8:	8cac000c 	lw	t4,12(a1)
>   4004fc:	ac8e0000 	sw	t6,0(a0)
>   400500:	ac8a0004 	sw	t2,4(a0)
>   400504:	ac8b0008 	sw	t3,8(a0)
>   400508:	ac8c000c 	sw	t4,12(a0)
>   40050c:	8ca90010 	lw	t1,16(a1)
>   400510:	8caa0014 	lw	t2,20(a1)
>   400514:	8cab0018 	lw	t3,24(a1)
>   400518:	8cac001c 	lw	t4,28(a1)
>   40051c:	ac890010 	sw	t1,16(a0)
>   400520:	ac8a0014 	sw	t2,20(a0)
>   400524:	ac8b0018 	sw	t3,24(a0)
>   400528:	ac8c001c 	sw	t4,28(a0)
>   40052c:	8ca90020 	lw	t1,32(a1)
>   400530:	8caa0024 	lw	t2,36(a1)
>   400534:	8cab0028 	lw	t3,40(a1)
>   400538:	8cac002c 	lw	t4,44(a1)
>   40053c:	ac890020 	sw	t1,32(a0)
>   400540:	ac8a0024 	sw	t2,36(a0)
>   400544:	ac8b0028 	sw	t3,40(a0)
>   400548:	ac8c002c 	sw	t4,44(a0)
>   40054c:	8ca90030 	lw	t1,48(a1)
>   400550:	8caa0034 	lw	t2,52(a1)
>   400554:	8cab0038 	lw	t3,56(a1)
>   400558:	8cac003c 	lw	t4,60(a1)
>   40055c:	ac890030 	sw	t1,48(a0)
>   400560:	ac8a0034 	sw	t2,52(a0)
>   400564:	ac8b0038 	sw	t3,56(a0)
>   400568:	ac8c003c 	sw	t4,60(a0)
>   40056c:	cc9e0080 	pref	0x1e,128(a0)
>   400570:	8cae0080 	lw	t6,128(a1)
>   400574:	8caa0044 	lw	t2,68(a1)
>   400578:	8cab0048 	lw	t3,72(a1)
>   40057c:	8cac004c 	lw	t4,76(a1)
>   400580:	ac8d0040 	sw	t5,64(a0)
>   400584:	ac8a0044 	sw	t2,68(a0)
>   400588:	ac8b0048 	sw	t3,72(a0)
>   40058c:	ac8c004c 	sw	t4,76(a0)
>   400590:	8ca90050 	lw	t1,80(a1)
>   400594:	8caa0054 	lw	t2,84(a1)
>   400598:	8cab0058 	lw	t3,88(a1)
>   40059c:	8cac005c 	lw	t4,92(a1)
>   4005a0:	ac890050 	sw	t1,80(a0)
>   4005a4:	ac8a0054 	sw	t2,84(a0)
>   4005a8:	ac8b0058 	sw	t3,88(a0)
>   4005ac:	ac8c005c 	sw	t4,92(a0)
>   4005b0:	8ca90060 	lw	t1,96(a1)
>   4005b4:	8caa0064 	lw	t2,100(a1)
>   4005b8:	8cab0068 	lw	t3,104(a1)
>   4005bc:	8cac006c 	lw	t4,108(a1)
>   4005c0:	ac890060 	sw	t1,96(a0)
>   4005c4:	ac8a0064 	sw	t2,100(a0)
>   4005c8:	ac8b0068 	sw	t3,104(a0)
>   4005cc:	ac8c006c 	sw	t4,108(a0)
>   4005d0:	8ca90070 	lw	t1,112(a1)
>   4005d4:	8caa0074 	lw	t2,116(a1)
>   4005d8:	8cab0078 	lw	t3,120(a1)
>   4005dc:	8cac007c 	lw	t4,124(a1)
>   4005e0:	ac890070 	sw	t1,112(a0)
>   4005e4:	ac8a0074 	sw	t2,116(a0)
>   4005e8:	ac8b0078 	sw	t3,120(a0)
>   4005ec:	ac8c007c 	sw	t4,124(a0)
>   4005f0:	cc9e00c0 	pref	0x1e,192(a0)
>   4005f4:	8cad00c0 	lw	t5,192(a1)
>   4005f8:	8caa0084 	lw	t2,132(a1)
>   4005fc:	8cab0088 	lw	t3,136(a1)
>   400600:	8cac008c 	lw	t4,140(a1)
>   400604:	ac8e0080 	sw	t6,128(a0)
>   400608:	ac8a0084 	sw	t2,132(a0)
>   40060c:	ac8b0088 	sw	t3,136(a0)
>   400610:	ac8c008c 	sw	t4,140(a0)
>   400614:	8ca90090 	lw	t1,144(a1)
>   400618:	8caa0094 	lw	t2,148(a1)
>   40061c:	8cab0098 	lw	t3,152(a1)
>   400620:	8cac009c 	lw	t4,156(a1)
>   400624:	ac890090 	sw	t1,144(a0)
>   400628:	ac8a0094 	sw	t2,148(a0)
>   40062c:	ac8b0098 	sw	t3,152(a0)
>   400630:	ac8c009c 	sw	t4,156(a0)
>   400634:	8ca900a0 	lw	t1,160(a1)
>   400638:	8caa00a4 	lw	t2,164(a1)
>   40063c:	8cab00a8 	lw	t3,168(a1)
>   400640:	8cac00ac 	lw	t4,172(a1)
>   400644:	ac8900a0 	sw	t1,160(a0)
>   400648:	ac8a00a4 	sw	t2,164(a0)
>   40064c:	ac8b00a8 	sw	t3,168(a0)
>   400650:	ac8c00ac 	sw	t4,172(a0)
>   400654:	8ca900b0 	lw	t1,176(a1)
>   400658:	8caa00b4 	lw	t2,180(a1)
>   40065c:	8cab00b8 	lw	t3,184(a1)
>   400660:	8cac00bc 	lw	t4,188(a1)
>   400664:	ac8900b0 	sw	t1,176(a0)
>   400668:	ac8a00b4 	sw	t2,180(a0)
>   40066c:	ac8b00b8 	sw	t3,184(a0)
>   400670:	ac8c00bc 	sw	t4,188(a0)
>   400674:	cc9e0100 	pref	0x1e,256(a0)
>   400678:	8cae0100 	lw	t6,256(a1)
>   40067c:	8caa00c4 	lw	t2,196(a1)
>   400680:	8cab00c8 	lw	t3,200(a1)
>   400684:	8cac00cc 	lw	t4,204(a1)
>   400688:	ac8d00c0 	sw	t5,192(a0)
>   40068c:	ac8a00c4 	sw	t2,196(a0)
>   400690:	ac8b00c8 	sw	t3,200(a0)
>   400694:	ac8c00cc 	sw	t4,204(a0)
>   400698:	8ca900d0 	lw	t1,208(a1)
>   40069c:	8caa00d4 	lw	t2,212(a1)
>   4006a0:	8cab00d8 	lw	t3,216(a1)
>   4006a4:	8cac00dc 	lw	t4,220(a1)
>   4006a8:	ac8900d0 	sw	t1,208(a0)
>   4006ac:	ac8a00d4 	sw	t2,212(a0)
>   4006b0:	ac8b00d8 	sw	t3,216(a0)
>   4006b4:	ac8c00dc 	sw	t4,220(a0)
>   4006b8:	8ca900e0 	lw	t1,224(a1)
>   4006bc:	8caa00e4 	lw	t2,228(a1)
>   4006c0:	8cab00e8 	lw	t3,232(a1)
>   4006c4:	8cac00ec 	lw	t4,236(a1)
>   4006c8:	ac8900e0 	sw	t1,224(a0)
>   4006cc:	ac8a00e4 	sw	t2,228(a0)
>   4006d0:	ac8b00e8 	sw	t3,232(a0)
>   4006d4:	ac8c00ec 	sw	t4,236(a0)
>   4006d8:	8ca900f0 	lw	t1,240(a1)
>   4006dc:	8caa00f4 	lw	t2,244(a1)
>   4006e0:	8cab00f8 	lw	t3,248(a1)
>   4006e4:	8cac00fc 	lw	t4,252(a1)
>   4006e8:	ac8900f0 	sw	t1,240(a0)
>   4006ec:	ac8a00f4 	sw	t2,244(a0)
>   4006f0:	ac8b00f8 	sw	t3,248(a0)
>   4006f4:	ac8c00fc 	sw	t4,252(a0)
>   4006f8:	20840100 	addi	a0,a0,256
>   4006fc:	1487ff7a 	bne	a0,a3,4004e8 <__BMIPS4380_memcpy_intLoopBack>
>   400700:	20a50100 	addi	a1,a1,256
>   400704:	8caa0004 	lw	t2,4(a1)
>   400708:	8cab0008 	lw	t3,8(a1)
>   40070c:	8cac000c 	lw	t4,12(a1)
>   400710:	ac8e0000 	sw	t6,0(a0)
>   400714:	ac8a0004 	sw	t2,4(a0)
>   400718:	ac8b0008 	sw	t3,8(a0)
>   40071c:	ac8c000c 	sw	t4,12(a0)
>   400720:	8ca90010 	lw	t1,16(a1)
>   400724:	8caa0014 	lw	t2,20(a1)
>   400728:	8cab0018 	lw	t3,24(a1)
>   40072c:	8cac001c 	lw	t4,28(a1)
>   400730:	ac890010 	sw	t1,16(a0)
>   400734:	ac8a0014 	sw	t2,20(a0)
>   400738:	ac8b0018 	sw	t3,24(a0)
>   40073c:	ac8c001c 	sw	t4,28(a0)
>   400740:	8ca90020 	lw	t1,32(a1)
>   400744:	8caa0024 	lw	t2,36(a1)
>   400748:	8cab0028 	lw	t3,40(a1)
>   40074c:	8cac002c 	lw	t4,44(a1)
>   400750:	ac890020 	sw	t1,32(a0)
>   400754:	ac8a0024 	sw	t2,36(a0)
>   400758:	ac8b0028 	sw	t3,40(a0)
>   40075c:	ac8c002c 	sw	t4,44(a0)
>   400760:	8ca90030 	lw	t1,48(a1)
>   400764:	8caa0034 	lw	t2,52(a1)
>   400768:	8cab0038 	lw	t3,56(a1)
>   40076c:	8cac003c 	lw	t4,60(a1)
>   400770:	ac890030 	sw	t1,48(a0)
>   400774:	ac8a0034 	sw	t2,52(a0)
>   400778:	ac8b0038 	sw	t3,56(a0)
>   40077c:	ac8c003c 	sw	t4,60(a0)
>   400780:	8ca90040 	lw	t1,64(a1)
>   400784:	8caa0044 	lw	t2,68(a1)
>   400788:	8cab0048 	lw	t3,72(a1)
>   40078c:	8cac004c 	lw	t4,76(a1)
>   400790:	ac890040 	sw	t1,64(a0)
>   400794:	ac8a0044 	sw	t2,68(a0)
>   400798:	ac8b0048 	sw	t3,72(a0)
>   40079c:	ac8c004c 	sw	t4,76(a0)
>   4007a0:	8ca90050 	lw	t1,80(a1)
>   4007a4:	8caa0054 	lw	t2,84(a1)
>   4007a8:	8cab0058 	lw	t3,88(a1)
>   4007ac:	8cac005c 	lw	t4,92(a1)
>   4007b0:	ac890050 	sw	t1,80(a0)
>   4007b4:	ac8a0054 	sw	t2,84(a0)
>   4007b8:	ac8b0058 	sw	t3,88(a0)
>   4007bc:	ac8c005c 	sw	t4,92(a0)
>   4007c0:	8ca90060 	lw	t1,96(a1)
>   4007c4:	8caa0064 	lw	t2,100(a1)
>   4007c8:	8cab0068 	lw	t3,104(a1)
>   4007cc:	8cac006c 	lw	t4,108(a1)
>   4007d0:	ac890060 	sw	t1,96(a0)
>   4007d4:	ac8a0064 	sw	t2,100(a0)
>   4007d8:	ac8b0068 	sw	t3,104(a0)
>   4007dc:	ac8c006c 	sw	t4,108(a0)
>   4007e0:	8ca90070 	lw	t1,112(a1)
>   4007e4:	8caa0074 	lw	t2,116(a1)
>   4007e8:	8cab0078 	lw	t3,120(a1)
>   4007ec:	8cac007c 	lw	t4,124(a1)
>   4007f0:	ac890070 	sw	t1,112(a0)
>   4007f4:	ac8a0074 	sw	t2,116(a0)
>   4007f8:	ac8b0078 	sw	t3,120(a0)
>   4007fc:	ac8c007c 	sw	t4,124(a0)
>   400800:	8ca90080 	lw	t1,128(a1)
>   400804:	8caa0084 	lw	t2,132(a1)
>   400808:	8cab0088 	lw	t3,136(a1)
>   40080c:	8cac008c 	lw	t4,140(a1)
>   400810:	ac890080 	sw	t1,128(a0)
>   400814:	ac8a0084 	sw	t2,132(a0)
>   400818:	ac8b0088 	sw	t3,136(a0)
>   40081c:	ac8c008c 	sw	t4,140(a0)
>   400820:	8ca90090 	lw	t1,144(a1)
>   400824:	8caa0094 	lw	t2,148(a1)
>   400828:	8cab0098 	lw	t3,152(a1)
>   40082c:	8cac009c 	lw	t4,156(a1)
>   400830:	ac890090 	sw	t1,144(a0)
>   400834:	ac8a0094 	sw	t2,148(a0)
>   400838:	ac8b0098 	sw	t3,152(a0)
>   40083c:	ac8c009c 	sw	t4,156(a0)
>   400840:	8ca900a0 	lw	t1,160(a1)
>   400844:	8caa00a4 	lw	t2,164(a1)
>   400848:	8cab00a8 	lw	t3,168(a1)
>   40084c:	8cac00ac 	lw	t4,172(a1)
>   400850:	ac8900a0 	sw	t1,160(a0)
>   400854:	ac8a00a4 	sw	t2,164(a0)
>   400858:	ac8b00a8 	sw	t3,168(a0)
>   40085c:	ac8c00ac 	sw	t4,172(a0)
>   400860:	8ca900b0 	lw	t1,176(a1)
>   400864:	8caa00b4 	lw	t2,180(a1)
>   400868:	8cab00b8 	lw	t3,184(a1)
>   40086c:	8cac00bc 	lw	t4,188(a1)
>   400870:	ac8900b0 	sw	t1,176(a0)
>   400874:	ac8a00b4 	sw	t2,180(a0)
>   400878:	ac8b00b8 	sw	t3,184(a0)
>   40087c:	ac8c00bc 	sw	t4,188(a0)
>   400880:	8ca900c0 	lw	t1,192(a1)
>   400884:	8caa00c4 	lw	t2,196(a1)
>   400888:	8cab00c8 	lw	t3,200(a1)
>   40088c:	8cac00cc 	lw	t4,204(a1)
>   400890:	ac8900c0 	sw	t1,192(a0)
>   400894:	ac8a00c4 	sw	t2,196(a0)
>   400898:	ac8b00c8 	sw	t3,200(a0)
>   40089c:	ac8c00cc 	sw	t4,204(a0)
>   4008a0:	8ca900d0 	lw	t1,208(a1)
>   4008a4:	8caa00d4 	lw	t2,212(a1)
>   4008a8:	8cab00d8 	lw	t3,216(a1)
>   4008ac:	8cac00dc 	lw	t4,220(a1)
>   4008b0:	ac8900d0 	sw	t1,208(a0)
>   4008b4:	ac8a00d4 	sw	t2,212(a0)
>   4008b8:	ac8b00d8 	sw	t3,216(a0)
>   4008bc:	ac8c00dc 	sw	t4,220(a0)
>   4008c0:	8ca900e0 	lw	t1,224(a1)
>   4008c4:	8caa00e4 	lw	t2,228(a1)
>   4008c8:	8cab00e8 	lw	t3,232(a1)
>   4008cc:	8cac00ec 	lw	t4,236(a1)
>   4008d0:	ac8900e0 	sw	t1,224(a0)
>   4008d4:	ac8a00e4 	sw	t2,228(a0)
>   4008d8:	ac8b00e8 	sw	t3,232(a0)
>   4008dc:	ac8c00ec 	sw	t4,236(a0)
>   4008e0:	8ca900f0 	lw	t1,240(a1)
>   4008e4:	8caa00f4 	lw	t2,244(a1)
>   4008e8:	8cab00f8 	lw	t3,248(a1)
>   4008ec:	8cac00fc 	lw	t4,252(a1)
>   4008f0:	ac8900f0 	sw	t1,240(a0)
>   4008f4:	ac8a00f4 	sw	t2,244(a0)
>   4008f8:	ac8b00f8 	sw	t3,248(a0)
>   4008fc:	ac8c00fc 	sw	t4,252(a0)
>   400900:	20a50100 	addi	a1,a1,256
>   400904:	20840100 	addi	a0,a0,256
> 
> 00400908 <__BMIPS4380_memcpy_check4w>:
>   400908:	30c8000f 	andi	t0,a2,0xf
>   40090c:	1106000e 	beq	t0,a2,400948 <__BMIPS4380_memcpy_check1w>
>   400910:	00c83823 	subu	a3,a2,t0
>   400914:	00e53821 	addu	a3,a3,a1
>   400918:	01003021 	move	a2,t0
> 
> 0040091c <__BMIPS4380_memcpy_loop4w>:
>   40091c:	8ca80000 	lw	t0,0(a1)
>   400920:	8ca90004 	lw	t1,4(a1)
>   400924:	8caa0008 	lw	t2,8(a1)
>   400928:	8cab000c 	lw	t3,12(a1)
>   40092c:	ac880000 	sw	t0,0(a0)
>   400930:	ac890004 	sw	t1,4(a0)
>   400934:	ac8a0008 	sw	t2,8(a0)
>   400938:	24840010 	addiu	a0,a0,16
>   40093c:	24a50010 	addiu	a1,a1,16
>   400940:	14a7fff6 	bne	a1,a3,40091c <__BMIPS4380_memcpy_loop4w>
>   400944:	ac8bfffc 	sw	t3,-4(a0)
> 
> 00400948 <__BMIPS4380_memcpy_check1w>:
>   400948:	30c80003 	andi	t0,a2,0x3
>   40094c:	11060008 	beq	t0,a2,400970 <__BMIPS4380_memcpy_last8ByteCopy>
>   400950:	00c83823 	subu	a3,a2,t0
>   400954:	00e53821 	addu	a3,a3,a1
>   400958:	01003021 	move	a2,t0
> 
> 0040095c <__BMIPS4380_memcpy_loop1w>:
>   40095c:	8ca80000 	lw	t0,0(a1)
>   400960:	24840004 	addiu	a0,a0,4
>   400964:	24a50004 	addiu	a1,a1,4
>   400968:	14a7fffc 	bne	a1,a3,40095c <__BMIPS4380_memcpy_loop1w>
>   40096c:	ac88fffc 	sw	t0,-4(a0)
> 
> 00400970 <__BMIPS4380_memcpy_last8ByteCopy>:
>   400970:	18c00006 	blez	a2,40098c <__BMIPS4380_memcpy_last8BCExit>
>   400974:	00c53821 	addu	a3,a2,a1
> 
> 00400978 <__BMIPS4380_memcpy_last8BCLoopBack>:
>   400978:	80a80000 	lb	t0,0(a1)
>   40097c:	24840001 	addiu	a0,a0,1
>   400980:	24a50001 	addiu	a1,a1,1
>   400984:	14a7fffc 	bne	a1,a3,400978 <__BMIPS4380_memcpy_last8BCLoopBack>
>   400988:	a088ffff 	sb	t0,-1(a0)
> 
> 0040098c <__BMIPS4380_memcpy_last8BCExit>:
>   40098c:	03e00008 	jr	ra
>   400990:	00000000 	nop
> 
> 00400994 <__BMIPS4380_memcpy_unAlignSrcDest>:
>   400994:	30e70003 	andi	a3,a3,0x3
>   400998:	10e00006 	beqz	a3,4009b4 <__BMIPS4380_memcpy_uaCheck512>
>   40099c:	00c73023 	subu	a2,a2,a3
>   4009a0:	98a80000 	lwr	t0,0(a1)
>   4009a4:	88a80003 	lwl	t0,3(a1)
>   4009a8:	00a72821 	addu	a1,a1,a3
>   4009ac:	b8880000 	swr	t0,0(a0)
>   4009b0:	00872021 	addu	a0,a0,a3
> 
> 004009b4 <__BMIPS4380_memcpy_uaCheck512>:
>   4009b4:	30c801ff 	andi	t0,a2,0x1ff
>   4009b8:	110600f0 	beq	t0,a2,400d7c <__BMIPS4380_memcpy_uaCheck4w>
>   4009bc:	00c83823 	subu	a3,a2,t0
>   4009c0:	00e43821 	addu	a3,a3,a0
>   4009c4:	24e7ff00 	addiu	a3,a3,-256
> 	...
>   4009d0:	01003021 	move	a2,t0
>   4009d4:	98ae0000 	lwr	t6,0(a1)
>   4009d8:	208f0300 	addi	t7,a0,768
> 
> 004009dc <__BMIPS4380_memcpy_uaLoopBack>:
>   4009dc:	cc9e0040 	pref	0x1e,64(a0)
>   4009e0:	98ad0040 	lwr	t5,64(a1)
>   4009e4:	98aa0004 	lwr	t2,4(a1)
>   4009e8:	98ab0008 	lwr	t3,8(a1)
>   4009ec:	98ac000c 	lwr	t4,12(a1)
>   4009f0:	88ae0003 	lwl	t6,3(a1)
>   4009f4:	88aa0007 	lwl	t2,7(a1)
>   4009f8:	88ab000b 	lwl	t3,11(a1)
>   4009fc:	88ac000f 	lwl	t4,15(a1)
>   400a00:	ac8e0000 	sw	t6,0(a0)
>   400a04:	ac8a0004 	sw	t2,4(a0)
>   400a08:	ac8b0008 	sw	t3,8(a0)
>   400a0c:	ac8c000c 	sw	t4,12(a0)
>   400a10:	01e7082a 	slt	at,t7,a3
>   400a14:	10200002 	beqz	at,400a20 <__BMIPS4380_memcpy_uaSkip>
>   400a18:	21ef0100 	addi	t7,t7,256
>   400a1c:	80a00300 	lb	zero,768(a1)
> 
> 00400a20 <__BMIPS4380_memcpy_uaSkip>:
>   400a20:	98a90010 	lwr	t1,16(a1)
>   400a24:	98aa0014 	lwr	t2,20(a1)
>   400a28:	98ab0018 	lwr	t3,24(a1)
>   400a2c:	98ac001c 	lwr	t4,28(a1)
>   400a30:	88a90013 	lwl	t1,19(a1)
>   400a34:	88aa0017 	lwl	t2,23(a1)
>   400a38:	88ab001b 	lwl	t3,27(a1)
>   400a3c:	88ac001f 	lwl	t4,31(a1)
>   400a40:	ac890010 	sw	t1,16(a0)
>   400a44:	ac8a0014 	sw	t2,20(a0)
>   400a48:	ac8b0018 	sw	t3,24(a0)
>   400a4c:	ac8c001c 	sw	t4,28(a0)
>   400a50:	98a90020 	lwr	t1,32(a1)
>   400a54:	98aa0024 	lwr	t2,36(a1)
>   400a58:	98ab0028 	lwr	t3,40(a1)
>   400a5c:	98ac002c 	lwr	t4,44(a1)
>   400a60:	88a90023 	lwl	t1,35(a1)
>   400a64:	88aa0027 	lwl	t2,39(a1)
>   400a68:	88ab002b 	lwl	t3,43(a1)
>   400a6c:	88ac002f 	lwl	t4,47(a1)
>   400a70:	ac890020 	sw	t1,32(a0)
>   400a74:	ac8a0024 	sw	t2,36(a0)
>   400a78:	ac8b0028 	sw	t3,40(a0)
>   400a7c:	ac8c002c 	sw	t4,44(a0)
>   400a80:	98a90030 	lwr	t1,48(a1)
>   400a84:	98aa0034 	lwr	t2,52(a1)
>   400a88:	98ab0038 	lwr	t3,56(a1)
>   400a8c:	98ac003c 	lwr	t4,60(a1)
>   400a90:	88a90033 	lwl	t1,51(a1)
>   400a94:	88aa0037 	lwl	t2,55(a1)
>   400a98:	88ab003b 	lwl	t3,59(a1)
>   400a9c:	88ac003f 	lwl	t4,63(a1)
>   400aa0:	ac890030 	sw	t1,48(a0)
>   400aa4:	ac8a0034 	sw	t2,52(a0)
>   400aa8:	ac8b0038 	sw	t3,56(a0)
>   400aac:	ac8c003c 	sw	t4,60(a0)
>   400ab0:	cc9e0080 	pref	0x1e,128(a0)
>   400ab4:	98ae0080 	lwr	t6,128(a1)
>   400ab8:	98aa0044 	lwr	t2,68(a1)
>   400abc:	98ab0048 	lwr	t3,72(a1)
>   400ac0:	98ac004c 	lwr	t4,76(a1)
>   400ac4:	88ad0043 	lwl	t5,67(a1)
>   400ac8:	88aa0047 	lwl	t2,71(a1)
>   400acc:	88ab004b 	lwl	t3,75(a1)
>   400ad0:	88ac004f 	lwl	t4,79(a1)
>   400ad4:	ac8d0040 	sw	t5,64(a0)
>   400ad8:	ac8a0044 	sw	t2,68(a0)
>   400adc:	ac8b0048 	sw	t3,72(a0)
>   400ae0:	ac8c004c 	sw	t4,76(a0)
>   400ae4:	98a90050 	lwr	t1,80(a1)
>   400ae8:	98aa0054 	lwr	t2,84(a1)
>   400aec:	98ab0058 	lwr	t3,88(a1)
>   400af0:	98ac005c 	lwr	t4,92(a1)
>   400af4:	88a90053 	lwl	t1,83(a1)
>   400af8:	88aa0057 	lwl	t2,87(a1)
>   400afc:	88ab005b 	lwl	t3,91(a1)
>   400b00:	88ac005f 	lwl	t4,95(a1)
>   400b04:	ac890050 	sw	t1,80(a0)
>   400b08:	ac8a0054 	sw	t2,84(a0)
>   400b0c:	ac8b0058 	sw	t3,88(a0)
>   400b10:	ac8c005c 	sw	t4,92(a0)
>   400b14:	98a90060 	lwr	t1,96(a1)
>   400b18:	98aa0064 	lwr	t2,100(a1)
>   400b1c:	98ab0068 	lwr	t3,104(a1)
>   400b20:	98ac006c 	lwr	t4,108(a1)
>   400b24:	88a90063 	lwl	t1,99(a1)
>   400b28:	88aa0067 	lwl	t2,103(a1)
>   400b2c:	88ab006b 	lwl	t3,107(a1)
>   400b30:	88ac006f 	lwl	t4,111(a1)
>   400b34:	ac890060 	sw	t1,96(a0)
>   400b38:	ac8a0064 	sw	t2,100(a0)
>   400b3c:	ac8b0068 	sw	t3,104(a0)
>   400b40:	ac8c006c 	sw	t4,108(a0)
>   400b44:	98a90070 	lwr	t1,112(a1)
>   400b48:	98aa0074 	lwr	t2,116(a1)
>   400b4c:	98ab0078 	lwr	t3,120(a1)
>   400b50:	98ac007c 	lwr	t4,124(a1)
>   400b54:	88a90073 	lwl	t1,115(a1)
>   400b58:	88aa0077 	lwl	t2,119(a1)
>   400b5c:	88ab007b 	lwl	t3,123(a1)
>   400b60:	88ac007f 	lwl	t4,127(a1)
>   400b64:	ac890070 	sw	t1,112(a0)
>   400b68:	ac8a0074 	sw	t2,116(a0)
>   400b6c:	ac8b0078 	sw	t3,120(a0)
>   400b70:	ac8c007c 	sw	t4,124(a0)
>   400b74:	cc9e00c0 	pref	0x1e,192(a0)
>   400b78:	98ad00c0 	lwr	t5,192(a1)
>   400b7c:	98aa0084 	lwr	t2,132(a1)
>   400b80:	98ab0088 	lwr	t3,136(a1)
>   400b84:	98ac008c 	lwr	t4,140(a1)
>   400b88:	88ae0083 	lwl	t6,131(a1)
>   400b8c:	88aa0087 	lwl	t2,135(a1)
>   400b90:	88ab008b 	lwl	t3,139(a1)
>   400b94:	88ac008f 	lwl	t4,143(a1)
>   400b98:	ac8e0080 	sw	t6,128(a0)
>   400b9c:	ac8a0084 	sw	t2,132(a0)
>   400ba0:	ac8b0088 	sw	t3,136(a0)
>   400ba4:	ac8c008c 	sw	t4,140(a0)
>   400ba8:	98a90090 	lwr	t1,144(a1)
>   400bac:	98aa0094 	lwr	t2,148(a1)
>   400bb0:	98ab0098 	lwr	t3,152(a1)
>   400bb4:	98ac009c 	lwr	t4,156(a1)
>   400bb8:	88a90093 	lwl	t1,147(a1)
>   400bbc:	88aa0097 	lwl	t2,151(a1)
>   400bc0:	88ab009b 	lwl	t3,155(a1)
>   400bc4:	88ac009f 	lwl	t4,159(a1)
>   400bc8:	ac890090 	sw	t1,144(a0)
>   400bcc:	ac8a0094 	sw	t2,148(a0)
>   400bd0:	ac8b0098 	sw	t3,152(a0)
>   400bd4:	ac8c009c 	sw	t4,156(a0)
>   400bd8:	98a900a0 	lwr	t1,160(a1)
>   400bdc:	98aa00a4 	lwr	t2,164(a1)
>   400be0:	98ab00a8 	lwr	t3,168(a1)
>   400be4:	98ac00ac 	lwr	t4,172(a1)
>   400be8:	88a900a3 	lwl	t1,163(a1)
>   400bec:	88aa00a7 	lwl	t2,167(a1)
>   400bf0:	88ab00ab 	lwl	t3,171(a1)
>   400bf4:	88ac00af 	lwl	t4,175(a1)
>   400bf8:	ac8900a0 	sw	t1,160(a0)
>   400bfc:	ac8a00a4 	sw	t2,164(a0)
>   400c00:	ac8b00a8 	sw	t3,168(a0)
>   400c04:	ac8c00ac 	sw	t4,172(a0)
>   400c08:	98a900b0 	lwr	t1,176(a1)
>   400c0c:	98aa00b4 	lwr	t2,180(a1)
>   400c10:	98ab00b8 	lwr	t3,184(a1)
>   400c14:	98ac00bc 	lwr	t4,188(a1)
>   400c18:	88a900b3 	lwl	t1,179(a1)
>   400c1c:	88aa00b7 	lwl	t2,183(a1)
>   400c20:	88ab00bb 	lwl	t3,187(a1)
>   400c24:	88ac00bf 	lwl	t4,191(a1)
>   400c28:	ac8900b0 	sw	t1,176(a0)
>   400c2c:	ac8a00b4 	sw	t2,180(a0)
>   400c30:	ac8b00b8 	sw	t3,184(a0)
>   400c34:	ac8c00bc 	sw	t4,188(a0)
>   400c38:	cc9e0100 	pref	0x1e,256(a0)
>   400c3c:	98ae0100 	lwr	t6,256(a1)
>   400c40:	98aa00c4 	lwr	t2,196(a1)
>   400c44:	98ab00c8 	lwr	t3,200(a1)
>   400c48:	98ac00cc 	lwr	t4,204(a1)
>   400c4c:	88ad00c3 	lwl	t5,195(a1)
>   400c50:	88aa00c7 	lwl	t2,199(a1)
>   400c54:	88ab00cb 	lwl	t3,203(a1)
>   400c58:	88ac00cf 	lwl	t4,207(a1)
>   400c5c:	ac8d00c0 	sw	t5,192(a0)
>   400c60:	ac8a00c4 	sw	t2,196(a0)
>   400c64:	ac8b00c8 	sw	t3,200(a0)
>   400c68:	ac8c00cc 	sw	t4,204(a0)
>   400c6c:	98a900d0 	lwr	t1,208(a1)
>   400c70:	98aa00d4 	lwr	t2,212(a1)
>   400c74:	98ab00d8 	lwr	t3,216(a1)
>   400c78:	98ac00dc 	lwr	t4,220(a1)
>   400c7c:	88a900d3 	lwl	t1,211(a1)
>   400c80:	88aa00d7 	lwl	t2,215(a1)
>   400c84:	88ab00db 	lwl	t3,219(a1)
>   400c88:	88ac00df 	lwl	t4,223(a1)
>   400c8c:	ac8900d0 	sw	t1,208(a0)
>   400c90:	ac8a00d4 	sw	t2,212(a0)
>   400c94:	ac8b00d8 	sw	t3,216(a0)
>   400c98:	ac8c00dc 	sw	t4,220(a0)
>   400c9c:	98a900e0 	lwr	t1,224(a1)
>   400ca0:	98aa00e4 	lwr	t2,228(a1)
>   400ca4:	98ab00e8 	lwr	t3,232(a1)
>   400ca8:	98ac00ec 	lwr	t4,236(a1)
>   400cac:	88a900e3 	lwl	t1,227(a1)
>   400cb0:	88aa00e7 	lwl	t2,231(a1)
>   400cb4:	88ab00eb 	lwl	t3,235(a1)
>   400cb8:	88ac00ef 	lwl	t4,239(a1)
>   400cbc:	ac8900e0 	sw	t1,224(a0)
>   400cc0:	ac8a00e4 	sw	t2,228(a0)
>   400cc4:	ac8b00e8 	sw	t3,232(a0)
>   400cc8:	ac8c00ec 	sw	t4,236(a0)
>   400ccc:	98a900f0 	lwr	t1,240(a1)
>   400cd0:	98aa00f4 	lwr	t2,244(a1)
>   400cd4:	98ab00f8 	lwr	t3,248(a1)
>   400cd8:	98ac00fc 	lwr	t4,252(a1)
>   400cdc:	88a900f3 	lwl	t1,243(a1)
>   400ce0:	88aa00f7 	lwl	t2,247(a1)
>   400ce4:	88ab00fb 	lwl	t3,251(a1)
>   400ce8:	88ac00ff 	lwl	t4,255(a1)
>   400cec:	ac8900f0 	sw	t1,240(a0)
>   400cf0:	ac8a00f4 	sw	t2,244(a0)
>   400cf4:	ac8b00f8 	sw	t3,248(a0)
>   400cf8:	ac8c00fc 	sw	t4,252(a0)
>   400cfc:	20840100 	addi	a0,a0,256
>   400d00:	1487ff36 	bne	a0,a3,4009dc <__BMIPS4380_memcpy_uaLoopBack>
>   400d04:	20a50100 	addi	a1,a1,256
>   400d08:	24e70100 	addiu	a3,a3,256
> 
> 00400d0c <__BMIPS4380_memcpy_uaRemain64LoopBack>:
>   400d0c:	98ae0000 	lwr	t6,0(a1)
>   400d10:	98aa0004 	lwr	t2,4(a1)
>   400d14:	98ab0008 	lwr	t3,8(a1)
>   400d18:	98ac000c 	lwr	t4,12(a1)
>   400d1c:	88ae0003 	lwl	t6,3(a1)
>   400d20:	88aa0007 	lwl	t2,7(a1)
>   400d24:	88ab000b 	lwl	t3,11(a1)
>   400d28:	88ac000f 	lwl	t4,15(a1)
>   400d2c:	ac8e0000 	sw	t6,0(a0)
>   400d30:	ac8a0004 	sw	t2,4(a0)
>   400d34:	ac8b0008 	sw	t3,8(a0)
>   400d38:	ac8c000c 	sw	t4,12(a0)
>   400d3c:	98ae0010 	lwr	t6,16(a1)
>   400d40:	98aa0014 	lwr	t2,20(a1)
>   400d44:	98ab0018 	lwr	t3,24(a1)
>   400d48:	98ac001c 	lwr	t4,28(a1)
>   400d4c:	88ae0013 	lwl	t6,19(a1)
>   400d50:	88aa0017 	lwl	t2,23(a1)
>   400d54:	88ab001b 	lwl	t3,27(a1)
>   400d58:	88ac001f 	lwl	t4,31(a1)
>   400d5c:	ac8e0010 	sw	t6,16(a0)
>   400d60:	ac8a0014 	sw	t2,20(a0)
>   400d64:	ac8b0018 	sw	t3,24(a0)
>   400d68:	ac8c001c 	sw	t4,28(a0)
>   400d6c:	24840020 	addiu	a0,a0,32
>   400d70:	1487ffe6 	bne	a0,a3,400d0c <__BMIPS4380_memcpy_uaRemain64LoopBack>
>   400d74:	24a50020 	addiu	a1,a1,32
>   400d78:	00e63821 	addu	a3,a3,a2
> 
> 00400d7c <__BMIPS4380_memcpy_uaCheck4w>:
>   400d7c:	30c8000f 	andi	t0,a2,0xf
>   400d80:	11060012 	beq	t0,a2,400dcc <__BMIPS4380_memcpy_uaCheck1w>
>   400d84:	00c83823 	subu	a3,a2,t0
>   400d88:	00e53821 	addu	a3,a3,a1
>   400d8c:	01003021 	move	a2,t0
> 
> 00400d90 <__BMIPS4380_memcpy_ua4wLoopBack>:
>   400d90:	98a80000 	lwr	t0,0(a1)
>   400d94:	98a90004 	lwr	t1,4(a1)
>   400d98:	98aa0008 	lwr	t2,8(a1)
>   400d9c:	98ab000c 	lwr	t3,12(a1)
>   400da0:	88a80003 	lwl	t0,3(a1)
>   400da4:	88a90007 	lwl	t1,7(a1)
>   400da8:	88aa000b 	lwl	t2,11(a1)
>   400dac:	88ab000f 	lwl	t3,15(a1)
>   400db0:	ac880000 	sw	t0,0(a0)
>   400db4:	ac890004 	sw	t1,4(a0)
>   400db8:	ac8a0008 	sw	t2,8(a0)
>   400dbc:	24840010 	addiu	a0,a0,16
>   400dc0:	24a50010 	addiu	a1,a1,16
>   400dc4:	14a7fff2 	bne	a1,a3,400d90 <__BMIPS4380_memcpy_ua4wLoopBack>
>   400dc8:	ac8bfffc 	sw	t3,-4(a0)
> 
> 00400dcc <__BMIPS4380_memcpy_uaCheck1w>:
>   400dcc:	30c80003 	andi	t0,a2,0x3
>   400dd0:	1106fee7 	beq	t0,a2,400970 <__BMIPS4380_memcpy_last8ByteCopy>
>   400dd4:	00c83823 	subu	a3,a2,t0
>   400dd8:	00e43821 	addu	a3,a3,a0
> 
> 00400ddc <__BMIPS4380_memcpy_uaRemain>:
>   400ddc:	98a90000 	lwr	t1,0(a1)
>   400de0:	88a90003 	lwl	t1,3(a1)
>   400de4:	24840004 	addiu	a0,a0,4
>   400de8:	24a50004 	addiu	a1,a1,4
>   400dec:	1487fffb 	bne	a0,a3,400ddc <__BMIPS4380_memcpy_uaRemain>
>   400df0:	ac89fffc 	sw	t1,-4(a0)
>   400df4:	1000fede 	b	400970 <__BMIPS4380_memcpy_last8ByteCopy>
>   400df8:	01003021 	move	a2,t0
> 
> 00400dfc <_5000_memcpy>:
>   400dfc:	28c80008 	slti	t0,a2,8
>   400e00:	150000de 	bnez	t0,40117c <__BMIPS5000_memcpy_last8ByteCopy>
>   400e04:	00801021 	move	v0,a0
>   400e08:	00a44026 	xor	t0,a1,a0
>   400e0c:	31080007 	andi	t0,t0,0x7
>   400e10:	11000006 	beqz	t0,400e2c <__BMIPS5000_memcpy_doubleWordAlign>
>   400e14:	00054823 	negu	t1,a1
>   400e18:	31080003 	andi	t0,t0,0x3
>   400e1c:	110000e0 	beqz	t0,4011a0 <__BMIPS5000_memcpy_wordAlign>
>   400e20:	00000000 	nop
>   400e24:	1000020e 	b	401660 <__BMIPS5000_memcpy_unAlignSrcDest>
>   400e28:	00043823 	negu	a3,a0
> 
> 00400e2c <__BMIPS5000_memcpy_doubleWordAlign>:
>   400e2c:	31290007 	andi	t1,t1,0x7
>   400e30:	1120000b 	beqz	t1,400e60 <__BMIPS5000_memcpy_dwCheck8w>
>   400e34:	00c93023 	subu	a2,a2,t1
> 
> 00400e38 <__BMIPS5000_memcpy_adjust>:
>   400e38:	312a0003 	andi	t2,t1,0x3
>   400e3c:	98a80000 	lwr	t0,0(a1)
>   400e40:	00a92821 	addu	a1,a1,t1
>   400e44:	b8880000 	swr	t0,0(a0)
>   400e48:	00892021 	addu	a0,a0,t1
>   400e4c:	31290004 	andi	t1,t1,0x4
>   400e50:	11200003 	beqz	t1,400e60 <__BMIPS5000_memcpy_dwCheck8w>
>   400e54:	00000000 	nop
>   400e58:	8ca8fffc 	lw	t0,-4(a1)
>   400e5c:	ac88fffc 	sw	t0,-4(a0)
> 
> 00400e60 <__BMIPS5000_memcpy_dwCheck8w>:
>   400e60:	30c801ff 	andi	t0,a2,0x1ff
>   400e64:	110600ab 	beq	t0,a2,401114 <__BMIPS5000_memcpy_check4w>
>   400e68:	00c83823 	subu	a3,a2,t0
>   400e6c:	00e43821 	addu	a3,a3,a0
>   400e70:	24e7ff00 	addiu	a3,a3,-256
> 	...
>   400e80:	01003021 	move	a2,t0
>   400e84:	27bdffd8 	addiu	sp,sp,-40
>   400e88:	f7ac0000 	sdc1	$f12,0(sp)
>   400e8c:	f7ae0008 	sdc1	$f14,8(sp)
>   400e90:	f7b40010 	sdc1	$f20,16(sp)
>   400e94:	f7b80018 	sdc1	$f24,24(sp)
>   400e98:	f7ba0020 	sdc1	$f26,32(sp)
>   400e9c:	d4a40000 	ldc1	$f4,0(a1)
>   400ea0:	d4b40080 	ldc1	$f20,128(a1)
>   400ea4:	d4a60020 	ldc1	$f6,32(a1)
>   400ea8:	d4a80040 	ldc1	$f8,64(a1)
>   400eac:	d4aa0060 	ldc1	$f10,96(a1)
>   400eb0:	d4b200a0 	ldc1	$f18,160(a1)
>   400eb4:	d4b800c0 	ldc1	$f24,192(a1)
>   400eb8:	d4ba00e0 	ldc1	$f26,224(a1)
>   400ebc:	cc9e0020 	pref	0x1e,32(a0)
>   400ec0:	cc9e0040 	pref	0x1e,64(a0)
>   400ec4:	cc9e0060 	pref	0x1e,96(a0)
> 
> 00400ec8 <__BMIPS5000_memcpy_fmCopyLoopBack>:
>   400ec8:	d4ac0008 	ldc1	$f12,8(a1)
>   400ecc:	d4ae0010 	ldc1	$f14,16(a1)
>   400ed0:	d4b00018 	ldc1	$f16,24(a1)
>   400ed4:	f4840000 	sdc1	$f4,0(a0)
>   400ed8:	d4a40100 	ldc1	$f4,256(a1)
>   400edc:	f48c0008 	sdc1	$f12,8(a0)
>   400ee0:	f48e0010 	sdc1	$f14,16(a0)
>   400ee4:	f4900018 	sdc1	$f16,24(a0)
>   400ee8:	cc9e0080 	pref	0x1e,128(a0)
>   400eec:	d4ac0028 	ldc1	$f12,40(a1)
>   400ef0:	d4ae0030 	ldc1	$f14,48(a1)
>   400ef4:	d4b00038 	ldc1	$f16,56(a1)
>   400ef8:	f4860020 	sdc1	$f6,32(a0)
>   400efc:	d4a60120 	ldc1	$f6,288(a1)
>   400f00:	f48c0028 	sdc1	$f12,40(a0)
>   400f04:	f48e0030 	sdc1	$f14,48(a0)
>   400f08:	f4900038 	sdc1	$f16,56(a0)
>   400f0c:	cc9e00a0 	pref	0x1e,160(a0)
>   400f10:	d4ac0048 	ldc1	$f12,72(a1)
>   400f14:	d4ae0050 	ldc1	$f14,80(a1)
>   400f18:	d4b00058 	ldc1	$f16,88(a1)
>   400f1c:	f4880040 	sdc1	$f8,64(a0)
>   400f20:	d4a80140 	ldc1	$f8,320(a1)
>   400f24:	f48c0048 	sdc1	$f12,72(a0)
>   400f28:	f48e0050 	sdc1	$f14,80(a0)
>   400f2c:	f4900058 	sdc1	$f16,88(a0)
>   400f30:	cc9e00c0 	pref	0x1e,192(a0)
>   400f34:	d4ac0068 	ldc1	$f12,104(a1)
>   400f38:	d4ae0070 	ldc1	$f14,112(a1)
>   400f3c:	d4b00078 	ldc1	$f16,120(a1)
>   400f40:	f48a0060 	sdc1	$f10,96(a0)
>   400f44:	d4aa0160 	ldc1	$f10,352(a1)
>   400f48:	f48c0068 	sdc1	$f12,104(a0)
>   400f4c:	f48e0070 	sdc1	$f14,112(a0)
>   400f50:	f4900078 	sdc1	$f16,120(a0)
>   400f54:	cc9e00e0 	pref	0x1e,224(a0)
>   400f58:	d4ac0088 	ldc1	$f12,136(a1)
>   400f5c:	d4ae0090 	ldc1	$f14,144(a1)
>   400f60:	d4b00098 	ldc1	$f16,152(a1)
>   400f64:	f4940080 	sdc1	$f20,128(a0)
>   400f68:	d4b40180 	ldc1	$f20,384(a1)
>   400f6c:	f48c0088 	sdc1	$f12,136(a0)
>   400f70:	f48e0090 	sdc1	$f14,144(a0)
>   400f74:	f4900098 	sdc1	$f16,152(a0)
>   400f78:	cc9e0100 	pref	0x1e,256(a0)
>   400f7c:	d4ac00a8 	ldc1	$f12,168(a1)
>   400f80:	d4ae00b0 	ldc1	$f14,176(a1)
>   400f84:	d4b000b8 	ldc1	$f16,184(a1)
>   400f88:	f49200a0 	sdc1	$f18,160(a0)
>   400f8c:	d4b201a0 	ldc1	$f18,416(a1)
>   400f90:	f48c00a8 	sdc1	$f12,168(a0)
>   400f94:	f48e00b0 	sdc1	$f14,176(a0)
>   400f98:	f49000b8 	sdc1	$f16,184(a0)
>   400f9c:	cc9e0120 	pref	0x1e,288(a0)
>   400fa0:	d4ac00c8 	ldc1	$f12,200(a1)
>   400fa4:	d4ae00d0 	ldc1	$f14,208(a1)
>   400fa8:	d4b000d8 	ldc1	$f16,216(a1)
>   400fac:	f49800c0 	sdc1	$f24,192(a0)
>   400fb0:	d4b801c0 	ldc1	$f24,448(a1)
>   400fb4:	f48c00c8 	sdc1	$f12,200(a0)
>   400fb8:	f48e00d0 	sdc1	$f14,208(a0)
>   400fbc:	f49000d8 	sdc1	$f16,216(a0)
>   400fc0:	cc9e0140 	pref	0x1e,320(a0)
>   400fc4:	d4ac00e8 	ldc1	$f12,232(a1)
>   400fc8:	d4ae00f0 	ldc1	$f14,240(a1)
>   400fcc:	d4b000f8 	ldc1	$f16,248(a1)
>   400fd0:	f49a00e0 	sdc1	$f26,224(a0)
>   400fd4:	d4ba01e0 	ldc1	$f26,480(a1)
>   400fd8:	f48c00e8 	sdc1	$f12,232(a0)
>   400fdc:	f48e00f0 	sdc1	$f14,240(a0)
>   400fe0:	f49000f8 	sdc1	$f16,248(a0)
>   400fe4:	cc9e0160 	pref	0x1e,352(a0)
>   400fe8:	20840100 	addi	a0,a0,256
>   400fec:	1487ffb6 	bne	a0,a3,400ec8 <__BMIPS5000_memcpy_fmCopyLoopBack>
>   400ff0:	20a50100 	addi	a1,a1,256
>   400ff4:	d4a40000 	ldc1	$f4,0(a1)
>   400ff8:	d4b40080 	ldc1	$f20,128(a1)
>   400ffc:	d4a60020 	ldc1	$f6,32(a1)
>   401000:	d4a80040 	ldc1	$f8,64(a1)
>   401004:	d4aa0060 	ldc1	$f10,96(a1)
>   401008:	d4b200a0 	ldc1	$f18,160(a1)
>   40100c:	d4b800c0 	ldc1	$f24,192(a1)
>   401010:	d4ba00e0 	ldc1	$f26,224(a1)
>   401014:	d4ac0008 	ldc1	$f12,8(a1)
>   401018:	d4ae0010 	ldc1	$f14,16(a1)
>   40101c:	d4b00018 	ldc1	$f16,24(a1)
>   401020:	f4840000 	sdc1	$f4,0(a0)
>   401024:	f48c0008 	sdc1	$f12,8(a0)
>   401028:	f48e0010 	sdc1	$f14,16(a0)
>   40102c:	f4900018 	sdc1	$f16,24(a0)
>   401030:	d4ac0028 	ldc1	$f12,40(a1)
>   401034:	d4ae0030 	ldc1	$f14,48(a1)
>   401038:	d4b00038 	ldc1	$f16,56(a1)
>   40103c:	f4860020 	sdc1	$f6,32(a0)
>   401040:	f48c0028 	sdc1	$f12,40(a0)
>   401044:	f48e0030 	sdc1	$f14,48(a0)
>   401048:	f4900038 	sdc1	$f16,56(a0)
>   40104c:	d4ac0048 	ldc1	$f12,72(a1)
>   401050:	d4ae0050 	ldc1	$f14,80(a1)
>   401054:	d4b00058 	ldc1	$f16,88(a1)
>   401058:	f4880040 	sdc1	$f8,64(a0)
>   40105c:	f48c0048 	sdc1	$f12,72(a0)
>   401060:	f48e0050 	sdc1	$f14,80(a0)
>   401064:	f4900058 	sdc1	$f16,88(a0)
>   401068:	d4ac0068 	ldc1	$f12,104(a1)
>   40106c:	d4ae0070 	ldc1	$f14,112(a1)
>   401070:	d4b00078 	ldc1	$f16,120(a1)
>   401074:	f48a0060 	sdc1	$f10,96(a0)
>   401078:	f48c0068 	sdc1	$f12,104(a0)
>   40107c:	f48e0070 	sdc1	$f14,112(a0)
>   401080:	f4900078 	sdc1	$f16,120(a0)
>   401084:	d4ac0088 	ldc1	$f12,136(a1)
>   401088:	d4ae0090 	ldc1	$f14,144(a1)
>   40108c:	d4b00098 	ldc1	$f16,152(a1)
>   401090:	f4940080 	sdc1	$f20,128(a0)
>   401094:	f48c0088 	sdc1	$f12,136(a0)
>   401098:	f48e0090 	sdc1	$f14,144(a0)
>   40109c:	f4900098 	sdc1	$f16,152(a0)
>   4010a0:	d4ac00a8 	ldc1	$f12,168(a1)
>   4010a4:	d4ae00b0 	ldc1	$f14,176(a1)
>   4010a8:	d4b000b8 	ldc1	$f16,184(a1)
>   4010ac:	f49200a0 	sdc1	$f18,160(a0)
>   4010b0:	f48c00a8 	sdc1	$f12,168(a0)
>   4010b4:	f48e00b0 	sdc1	$f14,176(a0)
>   4010b8:	f49000b8 	sdc1	$f16,184(a0)
>   4010bc:	d4ac00c8 	ldc1	$f12,200(a1)
>   4010c0:	d4ae00d0 	ldc1	$f14,208(a1)
>   4010c4:	d4b000d8 	ldc1	$f16,216(a1)
>   4010c8:	f49800c0 	sdc1	$f24,192(a0)
>   4010cc:	f48c00c8 	sdc1	$f12,200(a0)
>   4010d0:	f48e00d0 	sdc1	$f14,208(a0)
>   4010d4:	f49000d8 	sdc1	$f16,216(a0)
>   4010d8:	d4ac00e8 	ldc1	$f12,232(a1)
>   4010dc:	d4ae00f0 	ldc1	$f14,240(a1)
>   4010e0:	d4b000f8 	ldc1	$f16,248(a1)
>   4010e4:	f49a00e0 	sdc1	$f26,224(a0)
>   4010e8:	f48c00e8 	sdc1	$f12,232(a0)
>   4010ec:	f48e00f0 	sdc1	$f14,240(a0)
>   4010f0:	f49000f8 	sdc1	$f16,248(a0)
>   4010f4:	20a50100 	addi	a1,a1,256
>   4010f8:	20840100 	addi	a0,a0,256
>   4010fc:	d7ac0000 	ldc1	$f12,0(sp)
>   401100:	d7ae0008 	ldc1	$f14,8(sp)
>   401104:	d7b40010 	ldc1	$f20,16(sp)
>   401108:	d7b80018 	ldc1	$f24,24(sp)
>   40110c:	d7ba0020 	ldc1	$f26,32(sp)
>   401110:	27bd0028 	addiu	sp,sp,40
> 
> 00401114 <__BMIPS5000_memcpy_check4w>:
>   401114:	30c8000f 	andi	t0,a2,0xf
>   401118:	1106000e 	beq	t0,a2,401154 <__BMIPS5000_memcpy_check1w>
>   40111c:	00c83823 	subu	a3,a2,t0
>   401120:	00e53821 	addu	a3,a3,a1
>   401124:	01003021 	move	a2,t0
> 
> 00401128 <__BMIPS5000_memcpy_loop4w>:
>   401128:	8ca80000 	lw	t0,0(a1)
>   40112c:	8ca90004 	lw	t1,4(a1)
>   401130:	8caa0008 	lw	t2,8(a1)
>   401134:	8cab000c 	lw	t3,12(a1)
>   401138:	ac880000 	sw	t0,0(a0)
>   40113c:	ac890004 	sw	t1,4(a0)
>   401140:	ac8a0008 	sw	t2,8(a0)
>   401144:	24840010 	addiu	a0,a0,16
>   401148:	24a50010 	addiu	a1,a1,16
>   40114c:	14a7fff6 	bne	a1,a3,401128 <__BMIPS5000_memcpy_loop4w>
>   401150:	ac8bfffc 	sw	t3,-4(a0)
> 
> 00401154 <__BMIPS5000_memcpy_check1w>:
>   401154:	30c80003 	andi	t0,a2,0x3
>   401158:	11060008 	beq	t0,a2,40117c <__BMIPS5000_memcpy_last8ByteCopy>
>   40115c:	00c83823 	subu	a3,a2,t0
>   401160:	00e53821 	addu	a3,a3,a1
>   401164:	01003021 	move	a2,t0
> 
> 00401168 <__BMIPS5000_memcpy_loop1w>:
>   401168:	8ca80000 	lw	t0,0(a1)
>   40116c:	24840004 	addiu	a0,a0,4
>   401170:	24a50004 	addiu	a1,a1,4
>   401174:	14a7fffc 	bne	a1,a3,401168 <__BMIPS5000_memcpy_loop1w>
>   401178:	ac88fffc 	sw	t0,-4(a0)
> 
> 0040117c <__BMIPS5000_memcpy_last8ByteCopy>:
>   40117c:	18c00006 	blez	a2,401198 <__BMIPS5000_memcpy_last8BCExit>
>   401180:	00c53821 	addu	a3,a2,a1
> 
> 00401184 <__BMIPS5000_memcpy_last8BCLoopBack>:
>   401184:	80a80000 	lb	t0,0(a1)
>   401188:	24840001 	addiu	a0,a0,1
>   40118c:	24a50001 	addiu	a1,a1,1
>   401190:	14a7fffc 	bne	a1,a3,401184 <__BMIPS5000_memcpy_last8BCLoopBack>
>   401194:	a088ffff 	sb	t0,-1(a0)
> 
> 00401198 <__BMIPS5000_memcpy_last8BCExit>:
>   401198:	03e00008 	jr	ra
>   40119c:	00000000 	nop
> 
> 004011a0 <__BMIPS5000_memcpy_wordAlign>:
>   4011a0:	31290003 	andi	t1,t1,0x3
>   4011a4:	11200005 	beqz	t1,4011bc <__BMIPS5000_memcpy_intCheck8w>
>   4011a8:	00c93023 	subu	a2,a2,t1
>   4011ac:	98a80000 	lwr	t0,0(a1)
>   4011b0:	00a92821 	addu	a1,a1,t1
>   4011b4:	b8880000 	swr	t0,0(a0)
>   4011b8:	00892021 	addu	a0,a0,t1
> 
> 004011bc <__BMIPS5000_memcpy_intCheck8w>:
>   4011bc:	30c801ff 	andi	t0,a2,0x1ff
>   4011c0:	1106ffd4 	beq	t0,a2,401114 <__BMIPS5000_memcpy_check4w>
>   4011c4:	00c83823 	subu	a3,a2,t0
>   4011c8:	24e7ff00 	addiu	a3,a3,-256
>   4011cc:	00000000 	nop
>   4011d0:	01003021 	move	a2,t0
>   4011d4:	00871820 	add	v1,a0,a3
>   4011d8:	27bdffe4 	addiu	sp,sp,-28
>   4011dc:	afb00000 	sw	s0,0(sp)
>   4011e0:	afb10004 	sw	s1,4(sp)
>   4011e4:	afb20008 	sw	s2,8(sp)
>   4011e8:	afb3000c 	sw	s3,12(sp)
>   4011ec:	afb40010 	sw	s4,16(sp)
>   4011f0:	afb50014 	sw	s5,20(sp)
>   4011f4:	afb60018 	sw	s6,24(sp)
>   4011f8:	8ca80000 	lw	t0,0(a1)
>   4011fc:	8ca90020 	lw	t1,32(a1)
>   401200:	8cac0080 	lw	t4,128(a1)
>   401204:	8caa0040 	lw	t2,64(a1)
>   401208:	8cab0060 	lw	t3,96(a1)
>   40120c:	8cad00a0 	lw	t5,160(a1)
>   401210:	8cae00c0 	lw	t6,192(a1)
>   401214:	8caf00e0 	lw	t7,224(a1)
>   401218:	cc9e0020 	pref	0x1e,32(a0)
>   40121c:	cc9e0040 	pref	0x1e,64(a0)
>   401220:	cc9e0060 	pref	0x1e,96(a0)
> 
> 00401224 <__BMIPS5000_memcpy_intCopyLoopBack>:
>   401224:	8cb00004 	lw	s0,4(a1)
>   401228:	8cb10008 	lw	s1,8(a1)
>   40122c:	8cb2000c 	lw	s2,12(a1)
>   401230:	8cb30010 	lw	s3,16(a1)
>   401234:	8cb40014 	lw	s4,20(a1)
>   401238:	8cb50018 	lw	s5,24(a1)
>   40123c:	8cb6001c 	lw	s6,28(a1)
>   401240:	ac880000 	sw	t0,0(a0)
>   401244:	8ca80100 	lw	t0,256(a1)
>   401248:	ac900004 	sw	s0,4(a0)
>   40124c:	ac910008 	sw	s1,8(a0)
>   401250:	ac92000c 	sw	s2,12(a0)
>   401254:	ac930010 	sw	s3,16(a0)
>   401258:	ac940014 	sw	s4,20(a0)
>   40125c:	ac950018 	sw	s5,24(a0)
>   401260:	ac96001c 	sw	s6,28(a0)
>   401264:	cc9e0080 	pref	0x1e,128(a0)
>   401268:	8cb00024 	lw	s0,36(a1)
>   40126c:	8cb10028 	lw	s1,40(a1)
>   401270:	8cb2002c 	lw	s2,44(a1)
>   401274:	8cb30030 	lw	s3,48(a1)
>   401278:	8cb40034 	lw	s4,52(a1)
>   40127c:	8cb50038 	lw	s5,56(a1)
>   401280:	8cb6003c 	lw	s6,60(a1)
>   401284:	ac890020 	sw	t1,32(a0)
>   401288:	8ca90120 	lw	t1,288(a1)
>   40128c:	ac900024 	sw	s0,36(a0)
>   401290:	ac910028 	sw	s1,40(a0)
>   401294:	ac92002c 	sw	s2,44(a0)
>   401298:	ac930030 	sw	s3,48(a0)
>   40129c:	ac940034 	sw	s4,52(a0)
>   4012a0:	ac950038 	sw	s5,56(a0)
>   4012a4:	ac96003c 	sw	s6,60(a0)
>   4012a8:	cc9e00a1 	pref	0x1e,161(a0)
>   4012ac:	8cb00044 	lw	s0,68(a1)
>   4012b0:	8cb10048 	lw	s1,72(a1)
>   4012b4:	8cb2004c 	lw	s2,76(a1)
>   4012b8:	8cb30050 	lw	s3,80(a1)
>   4012bc:	8cb40054 	lw	s4,84(a1)
>   4012c0:	8cb50058 	lw	s5,88(a1)
>   4012c4:	8cb6005c 	lw	s6,92(a1)
>   4012c8:	ac8a0040 	sw	t2,64(a0)
>   4012cc:	8caa0140 	lw	t2,320(a1)
>   4012d0:	ac900044 	sw	s0,68(a0)
>   4012d4:	ac910048 	sw	s1,72(a0)
>   4012d8:	ac92004c 	sw	s2,76(a0)
>   4012dc:	ac930050 	sw	s3,80(a0)
>   4012e0:	ac940054 	sw	s4,84(a0)
>   4012e4:	ac950058 	sw	s5,88(a0)
>   4012e8:	ac96005c 	sw	s6,92(a0)
>   4012ec:	cc9e00c0 	pref	0x1e,192(a0)
>   4012f0:	8cb00064 	lw	s0,100(a1)
>   4012f4:	8cb10068 	lw	s1,104(a1)
>   4012f8:	8cb2006c 	lw	s2,108(a1)
>   4012fc:	8cb30070 	lw	s3,112(a1)
>   401300:	8cb40074 	lw	s4,116(a1)
>   401304:	8cb50078 	lw	s5,120(a1)
>   401308:	8cb6007c 	lw	s6,124(a1)
>   40130c:	ac8b0060 	sw	t3,96(a0)
>   401310:	8cab0160 	lw	t3,352(a1)
>   401314:	ac900064 	sw	s0,100(a0)
>   401318:	ac910068 	sw	s1,104(a0)
>   40131c:	ac92006c 	sw	s2,108(a0)
>   401320:	ac930070 	sw	s3,112(a0)
>   401324:	ac940074 	sw	s4,116(a0)
>   401328:	ac950078 	sw	s5,120(a0)
>   40132c:	ac96007c 	sw	s6,124(a0)
>   401330:	cc9e00e0 	pref	0x1e,224(a0)
>   401334:	8cb00084 	lw	s0,132(a1)
>   401338:	8cb10088 	lw	s1,136(a1)
>   40133c:	8cb2008c 	lw	s2,140(a1)
>   401340:	8cb30090 	lw	s3,144(a1)
>   401344:	8cb40094 	lw	s4,148(a1)
>   401348:	8cb50098 	lw	s5,152(a1)
>   40134c:	8cb6009c 	lw	s6,156(a1)
>   401350:	ac8c0080 	sw	t4,128(a0)
>   401354:	8cac0180 	lw	t4,384(a1)
>   401358:	ac900084 	sw	s0,132(a0)
>   40135c:	ac910088 	sw	s1,136(a0)
>   401360:	ac92008c 	sw	s2,140(a0)
>   401364:	ac930090 	sw	s3,144(a0)
>   401368:	ac940094 	sw	s4,148(a0)
>   40136c:	ac950098 	sw	s5,152(a0)
>   401370:	ac96009c 	sw	s6,156(a0)
>   401374:	cc9e0100 	pref	0x1e,256(a0)
>   401378:	8cb000a4 	lw	s0,164(a1)
>   40137c:	8cb100a8 	lw	s1,168(a1)
>   401380:	8cb200ac 	lw	s2,172(a1)
>   401384:	8cb300b0 	lw	s3,176(a1)
>   401388:	8cb400b4 	lw	s4,180(a1)
>   40138c:	8cb500b8 	lw	s5,184(a1)
>   401390:	8cb600bc 	lw	s6,188(a1)
>   401394:	ac8d00a0 	sw	t5,160(a0)
>   401398:	8cad01a0 	lw	t5,416(a1)
>   40139c:	ac9000a4 	sw	s0,164(a0)
>   4013a0:	ac9100a8 	sw	s1,168(a0)
>   4013a4:	ac9200ac 	sw	s2,172(a0)
>   4013a8:	ac9300b0 	sw	s3,176(a0)
>   4013ac:	ac9400b4 	sw	s4,180(a0)
>   4013b0:	ac9500b8 	sw	s5,184(a0)
>   4013b4:	ac9600bc 	sw	s6,188(a0)
>   4013b8:	cc9e0120 	pref	0x1e,288(a0)
>   4013bc:	8cb000c4 	lw	s0,196(a1)
>   4013c0:	8cb100c8 	lw	s1,200(a1)
>   4013c4:	8cb200cc 	lw	s2,204(a1)
>   4013c8:	8cb300d0 	lw	s3,208(a1)
>   4013cc:	8cb400d4 	lw	s4,212(a1)
>   4013d0:	8cb500d8 	lw	s5,216(a1)
>   4013d4:	8cb600dc 	lw	s6,220(a1)
>   4013d8:	ac8e00c0 	sw	t6,192(a0)
>   4013dc:	8cae01c0 	lw	t6,448(a1)
>   4013e0:	ac9000c4 	sw	s0,196(a0)
>   4013e4:	ac9100c8 	sw	s1,200(a0)
>   4013e8:	ac9200cc 	sw	s2,204(a0)
>   4013ec:	ac9300d0 	sw	s3,208(a0)
>   4013f0:	ac9400d4 	sw	s4,212(a0)
>   4013f4:	ac9500d8 	sw	s5,216(a0)
>   4013f8:	ac9600dc 	sw	s6,220(a0)
>   4013fc:	cc9e0140 	pref	0x1e,320(a0)
>   401400:	8cb000e4 	lw	s0,228(a1)
>   401404:	8cb100e8 	lw	s1,232(a1)
>   401408:	8cb200ec 	lw	s2,236(a1)
>   40140c:	8cb300f0 	lw	s3,240(a1)
>   401410:	8cb400f4 	lw	s4,244(a1)
>   401414:	8cb500f8 	lw	s5,248(a1)
>   401418:	8cb600fc 	lw	s6,252(a1)
>   40141c:	ac8f00e0 	sw	t7,224(a0)
>   401420:	8caf01e0 	lw	t7,480(a1)
>   401424:	ac9000e4 	sw	s0,228(a0)
>   401428:	ac9100e8 	sw	s1,232(a0)
>   40142c:	ac9200ec 	sw	s2,236(a0)
>   401430:	ac9300f0 	sw	s3,240(a0)
>   401434:	ac9400f4 	sw	s4,244(a0)
>   401438:	ac9500f8 	sw	s5,248(a0)
>   40143c:	ac9600fc 	sw	s6,252(a0)
>   401440:	cc9e0160 	pref	0x1e,352(a0)
>   401444:	20840100 	addi	a0,a0,256
>   401448:	1483ff76 	bne	a0,v1,401224 <__BMIPS5000_memcpy_intCopyLoopBack>
>   40144c:	20a50100 	addi	a1,a1,256
>   401450:	8cb00004 	lw	s0,4(a1)
>   401454:	8cb10008 	lw	s1,8(a1)
>   401458:	8cb2000c 	lw	s2,12(a1)
>   40145c:	8cb30010 	lw	s3,16(a1)
>   401460:	8cb40014 	lw	s4,20(a1)
>   401464:	8cb50018 	lw	s5,24(a1)
>   401468:	8cb6001c 	lw	s6,28(a1)
>   40146c:	ac880000 	sw	t0,0(a0)
>   401470:	ac900004 	sw	s0,4(a0)
>   401474:	ac910008 	sw	s1,8(a0)
>   401478:	ac92000c 	sw	s2,12(a0)
>   40147c:	ac930010 	sw	s3,16(a0)
>   401480:	ac940014 	sw	s4,20(a0)
>   401484:	ac950018 	sw	s5,24(a0)
>   401488:	ac96001c 	sw	s6,28(a0)
>   40148c:	8cb00024 	lw	s0,36(a1)
>   401490:	8cb10028 	lw	s1,40(a1)
>   401494:	8cb2002c 	lw	s2,44(a1)
>   401498:	8cb30030 	lw	s3,48(a1)
>   40149c:	8cb40034 	lw	s4,52(a1)
>   4014a0:	8cb50038 	lw	s5,56(a1)
>   4014a4:	8cb6003c 	lw	s6,60(a1)
>   4014a8:	ac890020 	sw	t1,32(a0)
>   4014ac:	ac900024 	sw	s0,36(a0)
>   4014b0:	ac910028 	sw	s1,40(a0)
>   4014b4:	ac92002c 	sw	s2,44(a0)
>   4014b8:	ac930030 	sw	s3,48(a0)
>   4014bc:	ac940034 	sw	s4,52(a0)
>   4014c0:	ac950038 	sw	s5,56(a0)
>   4014c4:	ac96003c 	sw	s6,60(a0)
>   4014c8:	8cb00044 	lw	s0,68(a1)
>   4014cc:	8cb10048 	lw	s1,72(a1)
>   4014d0:	8cb2004c 	lw	s2,76(a1)
>   4014d4:	8cb30050 	lw	s3,80(a1)
>   4014d8:	8cb40054 	lw	s4,84(a1)
>   4014dc:	8cb50058 	lw	s5,88(a1)
>   4014e0:	8cb6005c 	lw	s6,92(a1)
>   4014e4:	ac8a0040 	sw	t2,64(a0)
>   4014e8:	ac900044 	sw	s0,68(a0)
>   4014ec:	ac910048 	sw	s1,72(a0)
>   4014f0:	ac92004c 	sw	s2,76(a0)
>   4014f4:	ac930050 	sw	s3,80(a0)
>   4014f8:	ac940054 	sw	s4,84(a0)
>   4014fc:	ac950058 	sw	s5,88(a0)
>   401500:	ac96005c 	sw	s6,92(a0)
>   401504:	8cb00064 	lw	s0,100(a1)
>   401508:	8cb10068 	lw	s1,104(a1)
>   40150c:	8cb2006c 	lw	s2,108(a1)
>   401510:	8cb30070 	lw	s3,112(a1)
>   401514:	8cb40074 	lw	s4,116(a1)
>   401518:	8cb50078 	lw	s5,120(a1)
>   40151c:	8cb6007c 	lw	s6,124(a1)
>   401520:	ac8b0060 	sw	t3,96(a0)
>   401524:	ac900064 	sw	s0,100(a0)
>   401528:	ac910068 	sw	s1,104(a0)
>   40152c:	ac92006c 	sw	s2,108(a0)
>   401530:	ac930070 	sw	s3,112(a0)
>   401534:	ac940074 	sw	s4,116(a0)
>   401538:	ac950078 	sw	s5,120(a0)
>   40153c:	ac96007c 	sw	s6,124(a0)
>   401540:	8cb00084 	lw	s0,132(a1)
>   401544:	8cb10088 	lw	s1,136(a1)
>   401548:	8cb2008c 	lw	s2,140(a1)
>   40154c:	8cb30090 	lw	s3,144(a1)
>   401550:	8cb40094 	lw	s4,148(a1)
>   401554:	8cb50098 	lw	s5,152(a1)
>   401558:	8cb6009c 	lw	s6,156(a1)
>   40155c:	ac8c0080 	sw	t4,128(a0)
>   401560:	ac900084 	sw	s0,132(a0)
>   401564:	ac910088 	sw	s1,136(a0)
>   401568:	ac92008c 	sw	s2,140(a0)
>   40156c:	ac930090 	sw	s3,144(a0)
>   401570:	ac940094 	sw	s4,148(a0)
>   401574:	ac950098 	sw	s5,152(a0)
>   401578:	ac96009c 	sw	s6,156(a0)
>   40157c:	8cb000a4 	lw	s0,164(a1)
>   401580:	8cb100a8 	lw	s1,168(a1)
>   401584:	8cb200ac 	lw	s2,172(a1)
>   401588:	8cb300b0 	lw	s3,176(a1)
>   40158c:	8cb400b4 	lw	s4,180(a1)
>   401590:	8cb500b8 	lw	s5,184(a1)
>   401594:	8cb600bc 	lw	s6,188(a1)
>   401598:	ac8d00a0 	sw	t5,160(a0)
>   40159c:	ac9000a4 	sw	s0,164(a0)
>   4015a0:	ac9100a8 	sw	s1,168(a0)
>   4015a4:	ac9200ac 	sw	s2,172(a0)
>   4015a8:	ac9300b0 	sw	s3,176(a0)
>   4015ac:	ac9400b4 	sw	s4,180(a0)
>   4015b0:	ac9500b8 	sw	s5,184(a0)
>   4015b4:	ac9600bc 	sw	s6,188(a0)
>   4015b8:	8cb000c4 	lw	s0,196(a1)
>   4015bc:	8cb100c8 	lw	s1,200(a1)
>   4015c0:	8cb200cc 	lw	s2,204(a1)
>   4015c4:	8cb300d0 	lw	s3,208(a1)
>   4015c8:	8cb400d4 	lw	s4,212(a1)
>   4015cc:	8cb500d8 	lw	s5,216(a1)
>   4015d0:	8cb600dc 	lw	s6,220(a1)
>   4015d4:	ac8e00c0 	sw	t6,192(a0)
>   4015d8:	ac9000c4 	sw	s0,196(a0)
>   4015dc:	ac9100c8 	sw	s1,200(a0)
>   4015e0:	ac9200cc 	sw	s2,204(a0)
>   4015e4:	ac9300d0 	sw	s3,208(a0)
>   4015e8:	ac9400d4 	sw	s4,212(a0)
>   4015ec:	ac9500d8 	sw	s5,216(a0)
>   4015f0:	ac9600dc 	sw	s6,220(a0)
>   4015f4:	8cb000e4 	lw	s0,228(a1)
>   4015f8:	8cb100e8 	lw	s1,232(a1)
>   4015fc:	8cb200ec 	lw	s2,236(a1)
>   401600:	8cb300f0 	lw	s3,240(a1)
>   401604:	8cb400f4 	lw	s4,244(a1)
>   401608:	8cb500f8 	lw	s5,248(a1)
>   40160c:	8cb600fc 	lw	s6,252(a1)
>   401610:	ac8f00e0 	sw	t7,224(a0)
>   401614:	ac9000e4 	sw	s0,228(a0)
>   401618:	ac9100e8 	sw	s1,232(a0)
>   40161c:	ac9200ec 	sw	s2,236(a0)
>   401620:	ac9300f0 	sw	s3,240(a0)
>   401624:	ac9400f4 	sw	s4,244(a0)
>   401628:	ac9500f8 	sw	s5,248(a0)
>   40162c:	ac9600fc 	sw	s6,252(a0)
>   401630:	20840100 	addi	a0,a0,256
>   401634:	20a50100 	addi	a1,a1,256
>   401638:	8fb00000 	lw	s0,0(sp)
>   40163c:	8fb10004 	lw	s1,4(sp)
>   401640:	8fb20008 	lw	s2,8(sp)
>   401644:	8fb3000c 	lw	s3,12(sp)
>   401648:	8fb40010 	lw	s4,16(sp)
>   40164c:	8fb50014 	lw	s5,20(sp)
>   401650:	8fb60018 	lw	s6,24(sp)
>   401654:	27bd001c 	addiu	sp,sp,28
>   401658:	1000feae 	b	401114 <__BMIPS5000_memcpy_check4w>
>   40165c:	00000000 	nop
> 
> 00401660 <__BMIPS5000_memcpy_unAlignSrcDest>:
>   401660:	30e70003 	andi	a3,a3,0x3
>   401664:	10e00006 	beqz	a3,401680 <__BMIPS5000_memcpy_uaCheck512>
>   401668:	00c73023 	subu	a2,a2,a3
>   40166c:	98a80000 	lwr	t0,0(a1)
>   401670:	88a80003 	lwl	t0,3(a1)
>   401674:	00a72821 	addu	a1,a1,a3
>   401678:	b8880000 	swr	t0,0(a0)
>   40167c:	00872021 	addu	a0,a0,a3
> 
> 00401680 <__BMIPS5000_memcpy_uaCheck512>:
>   401680:	30c801ff 	andi	t0,a2,0x1ff
>   401684:	110600f1 	beq	t0,a2,401a4c <__BMIPS5000_memcpy_uaCheck4w>
>   401688:	00c83823 	subu	a3,a2,t0
>   40168c:	00e43821 	addu	a3,a3,a0
>   401690:	24e7ff00 	addiu	a3,a3,-256
> 	...
>   4016a0:	01003021 	move	a2,t0
>   4016a4:	98ae0000 	lwr	t6,0(a1)
>   4016a8:	208f0300 	addi	t7,a0,768
> 
> 004016ac <__BMIPS5000_memcpy_uaLoopBack>:
>   4016ac:	cc9e0040 	pref	0x1e,64(a0)
>   4016b0:	98ad0040 	lwr	t5,64(a1)
>   4016b4:	98aa0004 	lwr	t2,4(a1)
>   4016b8:	98ab0008 	lwr	t3,8(a1)
>   4016bc:	98ac000c 	lwr	t4,12(a1)
>   4016c0:	88ae0003 	lwl	t6,3(a1)
>   4016c4:	88aa0007 	lwl	t2,7(a1)
>   4016c8:	88ab000b 	lwl	t3,11(a1)
>   4016cc:	88ac000f 	lwl	t4,15(a1)
>   4016d0:	ac8e0000 	sw	t6,0(a0)
>   4016d4:	ac8a0004 	sw	t2,4(a0)
>   4016d8:	ac8b0008 	sw	t3,8(a0)
>   4016dc:	ac8c000c 	sw	t4,12(a0)
>   4016e0:	01e7082a 	slt	at,t7,a3
>   4016e4:	10200002 	beqz	at,4016f0 <__BMIPS5000_memcpy_uaSkip>
>   4016e8:	21ef0100 	addi	t7,t7,256
>   4016ec:	80a00300 	lb	zero,768(a1)
> 
> 004016f0 <__BMIPS5000_memcpy_uaSkip>:
>   4016f0:	98a90010 	lwr	t1,16(a1)
>   4016f4:	98aa0014 	lwr	t2,20(a1)
>   4016f8:	98ab0018 	lwr	t3,24(a1)
>   4016fc:	98ac001c 	lwr	t4,28(a1)
>   401700:	88a90013 	lwl	t1,19(a1)
>   401704:	88aa0017 	lwl	t2,23(a1)
>   401708:	88ab001b 	lwl	t3,27(a1)
>   40170c:	88ac001f 	lwl	t4,31(a1)
>   401710:	ac890010 	sw	t1,16(a0)
>   401714:	ac8a0014 	sw	t2,20(a0)
>   401718:	ac8b0018 	sw	t3,24(a0)
>   40171c:	ac8c001c 	sw	t4,28(a0)
>   401720:	98a90020 	lwr	t1,32(a1)
>   401724:	98aa0024 	lwr	t2,36(a1)
>   401728:	98ab0028 	lwr	t3,40(a1)
>   40172c:	98ac002c 	lwr	t4,44(a1)
>   401730:	88a90023 	lwl	t1,35(a1)
>   401734:	88aa0027 	lwl	t2,39(a1)
>   401738:	88ab002b 	lwl	t3,43(a1)
>   40173c:	88ac002f 	lwl	t4,47(a1)
>   401740:	ac890020 	sw	t1,32(a0)
>   401744:	ac8a0024 	sw	t2,36(a0)
>   401748:	ac8b0028 	sw	t3,40(a0)
>   40174c:	ac8c002c 	sw	t4,44(a0)
>   401750:	98a90030 	lwr	t1,48(a1)
>   401754:	98aa0034 	lwr	t2,52(a1)
>   401758:	98ab0038 	lwr	t3,56(a1)
>   40175c:	98ac003c 	lwr	t4,60(a1)
>   401760:	88a90033 	lwl	t1,51(a1)
>   401764:	88aa0037 	lwl	t2,55(a1)
>   401768:	88ab003b 	lwl	t3,59(a1)
>   40176c:	88ac003f 	lwl	t4,63(a1)
>   401770:	ac890030 	sw	t1,48(a0)
>   401774:	ac8a0034 	sw	t2,52(a0)
>   401778:	ac8b0038 	sw	t3,56(a0)
>   40177c:	ac8c003c 	sw	t4,60(a0)
>   401780:	cc9e0080 	pref	0x1e,128(a0)
>   401784:	98ae0080 	lwr	t6,128(a1)
>   401788:	98aa0044 	lwr	t2,68(a1)
>   40178c:	98ab0048 	lwr	t3,72(a1)
>   401790:	98ac004c 	lwr	t4,76(a1)
>   401794:	88ad0043 	lwl	t5,67(a1)
>   401798:	88aa0047 	lwl	t2,71(a1)
>   40179c:	88ab004b 	lwl	t3,75(a1)
>   4017a0:	88ac004f 	lwl	t4,79(a1)
>   4017a4:	ac8d0040 	sw	t5,64(a0)
>   4017a8:	ac8a0044 	sw	t2,68(a0)
>   4017ac:	ac8b0048 	sw	t3,72(a0)
>   4017b0:	ac8c004c 	sw	t4,76(a0)
>   4017b4:	98a90050 	lwr	t1,80(a1)
>   4017b8:	98aa0054 	lwr	t2,84(a1)
>   4017bc:	98ab0058 	lwr	t3,88(a1)
>   4017c0:	98ac005c 	lwr	t4,92(a1)
>   4017c4:	88a90053 	lwl	t1,83(a1)
>   4017c8:	88aa0057 	lwl	t2,87(a1)
>   4017cc:	88ab005b 	lwl	t3,91(a1)
>   4017d0:	88ac005f 	lwl	t4,95(a1)
>   4017d4:	ac890050 	sw	t1,80(a0)
>   4017d8:	ac8a0054 	sw	t2,84(a0)
>   4017dc:	ac8b0058 	sw	t3,88(a0)
>   4017e0:	ac8c005c 	sw	t4,92(a0)
>   4017e4:	98a90060 	lwr	t1,96(a1)
>   4017e8:	98aa0064 	lwr	t2,100(a1)
>   4017ec:	98ab0068 	lwr	t3,104(a1)
>   4017f0:	98ac006c 	lwr	t4,108(a1)
>   4017f4:	88a90063 	lwl	t1,99(a1)
>   4017f8:	88aa0067 	lwl	t2,103(a1)
>   4017fc:	88ab006b 	lwl	t3,107(a1)
>   401800:	88ac006f 	lwl	t4,111(a1)
>   401804:	ac890060 	sw	t1,96(a0)
>   401808:	ac8a0064 	sw	t2,100(a0)
>   40180c:	ac8b0068 	sw	t3,104(a0)
>   401810:	ac8c006c 	sw	t4,108(a0)
>   401814:	98a90070 	lwr	t1,112(a1)
>   401818:	98aa0074 	lwr	t2,116(a1)
>   40181c:	98ab0078 	lwr	t3,120(a1)
>   401820:	98ac007c 	lwr	t4,124(a1)
>   401824:	88a90073 	lwl	t1,115(a1)
>   401828:	88aa0077 	lwl	t2,119(a1)
>   40182c:	88ab007b 	lwl	t3,123(a1)
>   401830:	88ac007f 	lwl	t4,127(a1)
>   401834:	ac890070 	sw	t1,112(a0)
>   401838:	ac8a0074 	sw	t2,116(a0)
>   40183c:	ac8b0078 	sw	t3,120(a0)
>   401840:	ac8c007c 	sw	t4,124(a0)
>   401844:	cc9e00c0 	pref	0x1e,192(a0)
>   401848:	98ad00c0 	lwr	t5,192(a1)
>   40184c:	98aa0084 	lwr	t2,132(a1)
>   401850:	98ab0088 	lwr	t3,136(a1)
>   401854:	98ac008c 	lwr	t4,140(a1)
>   401858:	88ae0083 	lwl	t6,131(a1)
>   40185c:	88aa0087 	lwl	t2,135(a1)
>   401860:	88ab008b 	lwl	t3,139(a1)
>   401864:	88ac008f 	lwl	t4,143(a1)
>   401868:	ac8e0080 	sw	t6,128(a0)
>   40186c:	ac8a0084 	sw	t2,132(a0)
>   401870:	ac8b0088 	sw	t3,136(a0)
>   401874:	ac8c008c 	sw	t4,140(a0)
>   401878:	98a90090 	lwr	t1,144(a1)
>   40187c:	98aa0094 	lwr	t2,148(a1)
>   401880:	98ab0098 	lwr	t3,152(a1)
>   401884:	98ac009c 	lwr	t4,156(a1)
>   401888:	88a90093 	lwl	t1,147(a1)
>   40188c:	88aa0097 	lwl	t2,151(a1)
>   401890:	88ab009b 	lwl	t3,155(a1)
>   401894:	88ac009f 	lwl	t4,159(a1)
>   401898:	ac890090 	sw	t1,144(a0)
>   40189c:	ac8a0094 	sw	t2,148(a0)
>   4018a0:	ac8b0098 	sw	t3,152(a0)
>   4018a4:	ac8c009c 	sw	t4,156(a0)
>   4018a8:	98a900a0 	lwr	t1,160(a1)
>   4018ac:	98aa00a4 	lwr	t2,164(a1)
>   4018b0:	98ab00a8 	lwr	t3,168(a1)
>   4018b4:	98ac00ac 	lwr	t4,172(a1)
>   4018b8:	88a900a3 	lwl	t1,163(a1)
>   4018bc:	88aa00a7 	lwl	t2,167(a1)
>   4018c0:	88ab00ab 	lwl	t3,171(a1)
>   4018c4:	88ac00af 	lwl	t4,175(a1)
>   4018c8:	ac8900a0 	sw	t1,160(a0)
>   4018cc:	ac8a00a4 	sw	t2,164(a0)
>   4018d0:	ac8b00a8 	sw	t3,168(a0)
>   4018d4:	ac8c00ac 	sw	t4,172(a0)
>   4018d8:	98a900b0 	lwr	t1,176(a1)
>   4018dc:	98aa00b4 	lwr	t2,180(a1)
>   4018e0:	98ab00b8 	lwr	t3,184(a1)
>   4018e4:	98ac00bc 	lwr	t4,188(a1)
>   4018e8:	88a900b3 	lwl	t1,179(a1)
>   4018ec:	88aa00b7 	lwl	t2,183(a1)
>   4018f0:	88ab00bb 	lwl	t3,187(a1)
>   4018f4:	88ac00bf 	lwl	t4,191(a1)
>   4018f8:	ac8900b0 	sw	t1,176(a0)
>   4018fc:	ac8a00b4 	sw	t2,180(a0)
>   401900:	ac8b00b8 	sw	t3,184(a0)
>   401904:	ac8c00bc 	sw	t4,188(a0)
>   401908:	cc9e0100 	pref	0x1e,256(a0)
>   40190c:	98ae0100 	lwr	t6,256(a1)
>   401910:	98aa00c4 	lwr	t2,196(a1)
>   401914:	98ab00c8 	lwr	t3,200(a1)
>   401918:	98ac00cc 	lwr	t4,204(a1)
>   40191c:	88ad00c3 	lwl	t5,195(a1)
>   401920:	88aa00c7 	lwl	t2,199(a1)
>   401924:	88ab00cb 	lwl	t3,203(a1)
>   401928:	88ac00cf 	lwl	t4,207(a1)
>   40192c:	ac8d00c0 	sw	t5,192(a0)
>   401930:	ac8a00c4 	sw	t2,196(a0)
>   401934:	ac8b00c8 	sw	t3,200(a0)
>   401938:	ac8c00cc 	sw	t4,204(a0)
>   40193c:	98a900d0 	lwr	t1,208(a1)
>   401940:	98aa00d4 	lwr	t2,212(a1)
>   401944:	98ab00d8 	lwr	t3,216(a1)
>   401948:	98ac00dc 	lwr	t4,220(a1)
>   40194c:	88a900d3 	lwl	t1,211(a1)
>   401950:	88aa00d7 	lwl	t2,215(a1)
>   401954:	88ab00db 	lwl	t3,219(a1)
>   401958:	88ac00df 	lwl	t4,223(a1)
>   40195c:	ac8900d0 	sw	t1,208(a0)
>   401960:	ac8a00d4 	sw	t2,212(a0)
>   401964:	ac8b00d8 	sw	t3,216(a0)
>   401968:	ac8c00dc 	sw	t4,220(a0)
>   40196c:	98a900e0 	lwr	t1,224(a1)
>   401970:	98aa00e4 	lwr	t2,228(a1)
>   401974:	98ab00e8 	lwr	t3,232(a1)
>   401978:	98ac00ec 	lwr	t4,236(a1)
>   40197c:	88a900e3 	lwl	t1,227(a1)
>   401980:	88aa00e7 	lwl	t2,231(a1)
>   401984:	88ab00eb 	lwl	t3,235(a1)
>   401988:	88ac00ef 	lwl	t4,239(a1)
>   40198c:	ac8900e0 	sw	t1,224(a0)
>   401990:	ac8a00e4 	sw	t2,228(a0)
>   401994:	ac8b00e8 	sw	t3,232(a0)
>   401998:	ac8c00ec 	sw	t4,236(a0)
>   40199c:	98a900f0 	lwr	t1,240(a1)
>   4019a0:	98aa00f4 	lwr	t2,244(a1)
>   4019a4:	98ab00f8 	lwr	t3,248(a1)
>   4019a8:	98ac00fc 	lwr	t4,252(a1)
>   4019ac:	88a900f3 	lwl	t1,243(a1)
>   4019b0:	88aa00f7 	lwl	t2,247(a1)
>   4019b4:	88ab00fb 	lwl	t3,251(a1)
>   4019b8:	88ac00ff 	lwl	t4,255(a1)
>   4019bc:	ac8900f0 	sw	t1,240(a0)
>   4019c0:	ac8a00f4 	sw	t2,244(a0)
>   4019c4:	ac8b00f8 	sw	t3,248(a0)
>   4019c8:	ac8c00fc 	sw	t4,252(a0)
>   4019cc:	20840100 	addi	a0,a0,256
>   4019d0:	1487ff36 	bne	a0,a3,4016ac <__BMIPS5000_memcpy_uaLoopBack>
>   4019d4:	20a50100 	addi	a1,a1,256
>   4019d8:	24e70100 	addiu	a3,a3,256
> 
> 004019dc <__BMIPS5000_memcpy_uaRemain64LoopBack>:
>   4019dc:	98ae0000 	lwr	t6,0(a1)
>   4019e0:	98aa0004 	lwr	t2,4(a1)
>   4019e4:	98ab0008 	lwr	t3,8(a1)
>   4019e8:	98ac000c 	lwr	t4,12(a1)
>   4019ec:	88ae0003 	lwl	t6,3(a1)
>   4019f0:	88aa0007 	lwl	t2,7(a1)
>   4019f4:	88ab000b 	lwl	t3,11(a1)
>   4019f8:	88ac000f 	lwl	t4,15(a1)
>   4019fc:	ac8e0000 	sw	t6,0(a0)
>   401a00:	ac8a0004 	sw	t2,4(a0)
>   401a04:	ac8b0008 	sw	t3,8(a0)
>   401a08:	ac8c000c 	sw	t4,12(a0)
>   401a0c:	98ae0010 	lwr	t6,16(a1)
>   401a10:	98aa0014 	lwr	t2,20(a1)
>   401a14:	98ab0018 	lwr	t3,24(a1)
>   401a18:	98ac001c 	lwr	t4,28(a1)
>   401a1c:	88ae0013 	lwl	t6,19(a1)
>   401a20:	88aa0017 	lwl	t2,23(a1)
>   401a24:	88ab001b 	lwl	t3,27(a1)
>   401a28:	88ac001f 	lwl	t4,31(a1)
>   401a2c:	ac8e0010 	sw	t6,16(a0)
>   401a30:	ac8a0014 	sw	t2,20(a0)
>   401a34:	ac8b0018 	sw	t3,24(a0)
>   401a38:	ac8c001c 	sw	t4,28(a0)
>   401a3c:	24840020 	addiu	a0,a0,32
>   401a40:	1487ffe6 	bne	a0,a3,4019dc <__BMIPS5000_memcpy_uaRemain64LoopBack>
>   401a44:	24a50020 	addiu	a1,a1,32
>   401a48:	00e63821 	addu	a3,a3,a2
> 
> 00401a4c <__BMIPS5000_memcpy_uaCheck4w>:
>   401a4c:	30c8000f 	andi	t0,a2,0xf
>   401a50:	11060012 	beq	t0,a2,401a9c <__BMIPS5000_memcpy_uaCheck1w>
>   401a54:	00c83823 	subu	a3,a2,t0
>   401a58:	00e53821 	addu	a3,a3,a1
>   401a5c:	01003021 	move	a2,t0
> 
> 00401a60 <__BMIPS5000_memcpy_ua4wLoopBack>:
>   401a60:	98a80000 	lwr	t0,0(a1)
>   401a64:	98a90004 	lwr	t1,4(a1)
>   401a68:	98aa0008 	lwr	t2,8(a1)
>   401a6c:	98ab000c 	lwr	t3,12(a1)
>   401a70:	88a80003 	lwl	t0,3(a1)
>   401a74:	88a90007 	lwl	t1,7(a1)
>   401a78:	88aa000b 	lwl	t2,11(a1)
>   401a7c:	88ab000f 	lwl	t3,15(a1)
>   401a80:	ac880000 	sw	t0,0(a0)
>   401a84:	ac890004 	sw	t1,4(a0)
>   401a88:	ac8a0008 	sw	t2,8(a0)
>   401a8c:	24840010 	addiu	a0,a0,16
>   401a90:	24a50010 	addiu	a1,a1,16
>   401a94:	14a7fff2 	bne	a1,a3,401a60 <__BMIPS5000_memcpy_ua4wLoopBack>
>   401a98:	ac8bfffc 	sw	t3,-4(a0)
> 
> 00401a9c <__BMIPS5000_memcpy_uaCheck1w>:
>   401a9c:	30c80003 	andi	t0,a2,0x3
>   401aa0:	1106fdb6 	beq	t0,a2,40117c <__BMIPS5000_memcpy_last8ByteCopy>
>   401aa4:	00c83823 	subu	a3,a2,t0
>   401aa8:	00e43821 	addu	a3,a3,a0
> 
> 00401aac <__BMIPS5000_memcpy_uaRemain>:
>   401aac:	98a90000 	lwr	t1,0(a1)
>   401ab0:	88a90003 	lwl	t1,3(a1)
>   401ab4:	24840004 	addiu	a0,a0,4
>   401ab8:	24a50004 	addiu	a1,a1,4
>   401abc:	1487fffb 	bne	a0,a3,401aac <__BMIPS5000_memcpy_uaRemain>
>   401ac0:	ac89fffc 	sw	t1,-4(a0)
>   401ac4:	1000fdad 	b	40117c <__BMIPS5000_memcpy_last8ByteCopy>
>   401ac8:	01003021 	move	a2,t0
> 
> 00401acc <detect_cpu>:
>   401acc:	24080ce4 	li	t0,3300
>   401ad0:	3c020041 	lui	v0,0x41
>   401ad4:	8c423144 	lw	v0,12612(v0)
>   401ad8:	1040fa11 	beqz	v0,400320 <detect_done>
>   401adc:	00000000 	nop
>   401ae0:	2408111c 	li	t0,4380
>   401ae4:	00404821 	move	t1,v0
>   401ae8:	3c0a0041 	lui	t2,0x41
>   401aec:	254a3064 	addiu	t2,t2,12388
>   401af0:	812b0000 	lb	t3,0(t1)
>   401af4:	814c0000 	lb	t4,0(t2)
>   401af8:	156c0005 	bne	t3,t4,401b10 <detect_cpu+0x44>
>   401afc:	25290001 	addiu	t1,t1,1
>   401b00:	11600010 	beqz	t3,401b44 <detect_cpu+0x78>
>   401b04:	254a0001 	addiu	t2,t2,1
>   401b08:	1580fff9 	bnez	t4,401af0 <detect_cpu+0x24>
>   401b0c:	00000000 	nop
>   401b10:	24081388 	li	t0,5000
>   401b14:	00404821 	move	t1,v0
>   401b18:	3c0a0041 	lui	t2,0x41
>   401b1c:	254a306e 	addiu	t2,t2,12398
>   401b20:	812b0000 	lb	t3,0(t1)
>   401b24:	814c0000 	lb	t4,0(t2)
>   401b28:	156c0005 	bne	t3,t4,401b40 <detect_cpu+0x74>
>   401b2c:	25290001 	addiu	t1,t1,1
>   401b30:	11600004 	beqz	t3,401b44 <detect_cpu+0x78>
>   401b34:	254a0001 	addiu	t2,t2,1
>   401b38:	1580fff9 	bnez	t4,401b20 <detect_cpu+0x54>
>   401b3c:	00000000 	nop
>   401b40:	24080ce4 	li	t0,3300
>   401b44:	3c010041 	lui	at,0x41
>   401b48:	ac283060 	sw	t0,12384(at)
>   401b4c:	1000f9f4 	b	400320 <detect_done>
>   401b50:	00000000 	nop
> 	...
> 


More information about the uClibc mailing list