aboutsummaryrefslogtreecommitdiff
path: root/system/lib/libc/musl/memcpy.c
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2013-04-23 18:50:47 -0700
committerAlon Zakai <alonzakai@gmail.com>2013-04-23 18:50:47 -0700
commitf6fa219f1275b8a98c768d1f8593613ed85d5cfe (patch)
tree89b4848d4bd5a1fbdf9100f346c1583c657b341d /system/lib/libc/musl/memcpy.c
parent430dcb4c1533a7c2e9486a2bcbb4e0bda3025c0c (diff)
parent029c076151fb9cb47c54af53c52870ef0b620c5c (diff)
Merge pull request #1063 from waywardmonkeys/musl-libc1.3.7
Add wchar and multibyte libc functions
Diffstat (limited to 'system/lib/libc/musl/memcpy.c')
-rw-r--r--system/lib/libc/musl/memcpy.c29
1 files changed, 0 insertions, 29 deletions
diff --git a/system/lib/libc/musl/memcpy.c b/system/lib/libc/musl/memcpy.c
deleted file mode 100644
index 8e98302f..00000000
--- a/system/lib/libc/musl/memcpy.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <string.h>
-#include <stdlib.h>
-#include <stdint.h>
-
-#define SS (sizeof(size_t))
-#define ALIGN (sizeof(size_t)-1)
-#define ONES ((size_t)-1/UCHAR_MAX)
-
-void *memcpy(void *restrict dest, const void *restrict src, size_t n)
-{
- unsigned char *d = dest;
- const unsigned char *s = src;
-
- if (((uintptr_t)d & ALIGN) != ((uintptr_t)s & ALIGN))
- goto misaligned;
-
- for (; ((uintptr_t)d & ALIGN) && n; n--) *d++ = *s++;
- if (n) {
- size_t *wd = (void *)d;
- const size_t *ws = (const void *)s;
-
- for (; n>=SS; n-=SS) *wd++ = *ws++;
- d = (void *)wd;
- s = (const void *)ws;
-misaligned:
- for (; n; n--) *d++ = *s++;
- }
- return dest;
-}