| 63 | |
| 64 | extern "C" |
| 65 | void *memcpy(void* dest, const void* src, size_t count) { |
| 66 | const char *sp = (char*)src; |
| 67 | char *dp = (char *)dest; |
| 68 | for(size_t i = count; i >= sizeof(uint64_t); i = count){ |
| 69 | *((uint64_t*)dp) = *((uint64_t*)sp); |
| 70 | sp = sp + sizeof(uint64_t); |
| 71 | dp = dp + sizeof(uint64_t); |
| 72 | count -= sizeof(uint64_t); |
| 73 | } |
| 74 | for(size_t i = count; i >= 4; i = count){ |
| 75 | *((uint32_t*)dp) = *((uint32_t*)sp); |
| 76 | sp = sp + 4; |
| 77 | dp = dp + 4; |
| 78 | count -= 4; |
| 79 | } |
| 80 | for (size_t i = count; i > 0; i = count){ |
| 81 | *(dp++) = *(sp++); |
| 82 | count--; |
| 83 | } |
| 84 | return dest; |
| 85 | } |
| 86 | |
| 87 | extern "C" |
| 88 | int memcmp(const void *s1, const void *s2, size_t n) { |
no outgoing calls
no test coverage detected