1 // ----------------------------------------------------------------------------
3 // ----------------------------------------------------------------------------
4 // Public Domain C Library - http://pdclib.sourceforge.net
5 // This code is Public Domain. Use, modify, and redistribute at will.
6 // ----------------------------------------------------------------------------
10 void * memcpy( void * restrict dest, const void * restrict src, size_t n )
12 const char * src_p = (const char *) src;
13 char * dest_p = (char *) dest;
21 /* TODO: This is code from PDPC, optimizing for word access.
23 void *memcpy(void *s1, const void *s2, size_t n)
25 register unsigned int *p = (unsigned int *)s1;
26 register unsigned int *cs2 = (unsigned int *)s2;
27 register unsigned int *endi;
29 endi = (unsigned int *)((char *)p + (n & ~0x03));
39 *(char *)p = *(char *)cs2;
42 *(char *)p = *(char *)cs2;
43 p = (unsigned int *)((char *)p + 1);
44 cs2 = (unsigned int *)((char *)cs2 + 1);
45 *(char *)p = *(char *)cs2;
48 *(char *)p = *(char *)cs2;
49 p = (unsigned int *)((char *)p + 1);
50 cs2 = (unsigned int *)((char *)cs2 + 1);
51 *(char *)p = *(char *)cs2;
52 p = (unsigned int *)((char *)p + 1);
53 cs2 = (unsigned int *)((char *)cs2 + 1);
54 *(char *)p = *(char *)cs2;