25 lines
547 B
C
25 lines
547 B
C
#include <stddef.h>
|
|
#include <stdint.h>
|
|
|
|
void *ft_memcpy64(void *dst, const void *src, size_t n) {
|
|
size_t i;
|
|
uint64_t *lp_dst;
|
|
const uint64_t *lp_src;
|
|
unsigned char *bp_dst;
|
|
const unsigned char *bp_src;
|
|
|
|
lp_dst = (uint64_t *)dst;
|
|
lp_src = (const uint64_t *)src;
|
|
|
|
for (i = 0; i < n / 8; i++) {
|
|
lp_dst[i] = lp_src[i];
|
|
}
|
|
|
|
bp_dst = (unsigned char *)(lp_dst + i);
|
|
bp_src = (const unsigned char *)(lp_src + i);
|
|
for (i = 0; i < n % 8; i++) {
|
|
bp_dst[i] = bp_src[i];
|
|
}
|
|
|
|
return dst;
|
|
}
|