From 8012fdcf91d8bf17228e98bad49aa5e4dc01179a Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 30 Jan 2021 10:29:38 +1000 Subject: [PATCH] Decompile memcpy --- src/lib/ultra/libc/string.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/lib/ultra/libc/string.c b/src/lib/ultra/libc/string.c index 3e606be72..517abab0e 100644 --- a/src/lib/ultra/libc/string.c +++ b/src/lib/ultra/libc/string.c @@ -1,21 +1,17 @@ #include -GLOBAL_ASM( -glabel memcpy -/* 4a5e0: 00801025 */ or $v0,$a0,$zero -/* 4a5e4: 10c00007 */ beqz $a2,.L0004a604 -/* 4a5e8: 00a01825 */ or $v1,$a1,$zero -.L0004a5ec: -/* 4a5ec: 906e0000 */ lbu $t6,0x0($v1) -/* 4a5f0: 24c6ffff */ addiu $a2,$a2,-1 -/* 4a5f4: 24420001 */ addiu $v0,$v0,0x1 -/* 4a5f8: 24630001 */ addiu $v1,$v1,0x1 -/* 4a5fc: 14c0fffb */ bnez $a2,.L0004a5ec -/* 4a600: a04effff */ sb $t6,-0x1($v0) -.L0004a604: -/* 4a604: 03e00008 */ jr $ra -/* 4a608: 00801025 */ or $v0,$a0,$zero -); +void *memcpy(void *s1, const void *s2, size_t n) +{ + char *su1 = (char *)s1; + const char *su2 = (const char *)s2; + + while (n > 0) { + *su1++ = *su2++; + n--; + } + + return (void *)s1; +} size_t strlen(const char *s) {