ref: d916a4c3823f55227ffae35738c2497256e307b5
dir: /libkern/memmove.c/
#include <lib9.h>
/* for testing only */
void*
memcpy(void *a1, void *a2, ulong n)
{
return memmove(a1, a2, n);
}
void*
memmove(void *a1, void *a2, ulong n)
{
int m = (int)n;
uchar *s, *d;
d = a1;
s = a2;
if(d > s){
s += m;
d += m;
while(--m >= 0)
*--d = *--s;
}
else{
while(--m >= 0)
*d++ = *s++;
}
return a1;
}