files
kolibrios/programs/develop/ktcc/libc.obj/source/string/memcpy.c
Andrew 4f450aa637
Some checks failed
Build system / Check kernel codestyle (pull_request) Successful in 20s
Build system / Build (pull_request) Failing after 23s
develop/ktcc: Post-SVN tidy
- Move source code from `trunk` into program root directory.
- Update build files and include paths.
- Note: Line endings standardised from `CRLF` > `LF`, so best to view diffs with whitespace changes hidden.
2025-05-24 11:58:48 +01:00

19 lines
465 B
C

#include <string.h>
void* memcpy(void* _dest, const void* _src, size_t _n)
{
int d0, d1, d2;
__asm__ __volatile__(
"rep ; movsl\n\t"
"testb $2,%b4\n\t"
"je 1f\n\t"
"movsw\n"
"1:\ttestb $1,%b4\n\t"
"je 2f\n\t"
"movsb\n"
"2:"
: "=&c"(d0), "=&D"(d1), "=&S"(d2)
: "0"(_n / 4), "q"(_n), "1"((long)_dest), "2"((long)_src)
: "memory");
return (_dest);
}