Decompile strncpy

This commit is contained in:
Ryan Dwyer
2021-01-30 13:52:21 +10:00
parent b39302bda6
commit 133832c5a3
2 changed files with 29 additions and 32 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
#include "types.h"
char *strcpy(char *dest, char *src);
char *strncpy(char *dest, char *src, u32 len);
char *strncpy(char *dst, char *s2, s32 len);
char *strcat(char *dst, char *src);
s32 strcmp(char *s1, char *s2);
s32 strncmp(char *s1, char *s2, s32 len);
+28 -31
View File
@@ -65,37 +65,34 @@ glabel strcpy
/* 131c4: 00000000 */ nop
);
GLOBAL_ASM(
glabel strncpy
/* 131c8: 90a20000 */ lbu $v0,0x0($a1)
/* 131cc: 24830001 */ addiu $v1,$a0,0x1
/* 131d0: 24a50001 */ addiu $a1,$a1,0x1
/* 131d4: 10400009 */ beqz $v0,.L000131fc
/* 131d8: a0820000 */ sb $v0,0x0($a0)
.L000131dc:
/* 131dc: 24c6ffff */ addiu $a2,$a2,-1
/* 131e0: 50c00007 */ beqzl $a2,.L00013200
/* 131e4: 00c01025 */ or $v0,$a2,$zero
/* 131e8: 90a20000 */ lbu $v0,0x0($a1)
/* 131ec: 24630001 */ addiu $v1,$v1,0x1
/* 131f0: 24a50001 */ addiu $a1,$a1,0x1
/* 131f4: 1440fff9 */ bnez $v0,.L000131dc
/* 131f8: a062ffff */ sb $v0,-0x1($v1)
.L000131fc:
/* 131fc: 00c01025 */ or $v0,$a2,$zero
.L00013200:
/* 13200: 10c00006 */ beqz $a2,.L0001321c
/* 13204: 24c6ffff */ addiu $a2,$a2,-1
.L00013208:
/* 13208: 00c01025 */ or $v0,$a2,$zero
/* 1320c: a0600000 */ sb $zero,0x0($v1)
/* 13210: 24630001 */ addiu $v1,$v1,0x1
/* 13214: 14c0fffc */ bnez $a2,.L00013208
/* 13218: 24c6ffff */ addiu $a2,$a2,-1
.L0001321c:
/* 1321c: 03e00008 */ jr $ra
/* 13220: 00801025 */ or $v0,$a0,$zero
);
char *strncpy(char *dst, char *src, s32 len)
{
char *ptr = dst;
char c;
*ptr = c = *src;
ptr++;
src++;
while (c != '\0') {
len--;
if (len == 0) {
break;
}
*ptr = c = *src;
ptr++;
src++;
}
while (len--) {
*ptr = '\0';
ptr++;
}
return dst;
}
char *strcat(char *dst, char *src)
{