Add mem functions

This commit is contained in:
username
2025-02-18 13:55:27 -05:00
parent 9efb21ecc0
commit 314cd1d26d
3 changed files with 39 additions and 0 deletions

13
lib/src/libgcc/memcmp.c Normal file
View File

@@ -0,0 +1,13 @@
/* Public domain. */
#include <ultra64.h>
int memcmp(const void *str1, const void *str2, size_t count) {
const unsigned char *s1 = str1;
const unsigned char *s2 = str2;
while (count-- > 0) {
if (*s1++ != *s2++)
return s1[-1] < s2[-1] ? -1 : 1;
}
return 0;
}

17
lib/src/libgcc/memmove.c Normal file
View File

@@ -0,0 +1,17 @@
/* Public domain. */
#include <ultra64.h>
void *memmove(void *dest, const void *src, size_t len) {
char *d = dest;
const char *s = src;
if (d < s)
while (len--)
*d++ = *s++;
else {
char *lasts = (char *) s + (len - 1);
char *lastd = (char *) d + (len - 1);
while (len--)
*lastd-- = *lasts--;
}
return dest;
}

9
lib/src/libgcc/memset.c Normal file
View File

@@ -0,0 +1,9 @@
/* Public domain. */
#include <ultra64.h>
void *memset(void *dest, int val, size_t len) {
unsigned char *ptr = dest;
while (len-- > 0)
*ptr++ = val;
return dest;
}