X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Flib%2F_memcpy.c;h=c973f159d9a43c6cc8f0af70eee309bbcbef6872;hb=8bbdc3652fd3221d38c6cbbda3a77542cc09f27e;hp=9211c09e07ea3ef5208f45d9cebd9483143015ae;hpb=c34e2ef8668eba6fddf548a151b041bbd515987a;p=fw%2Fsdcc diff --git a/device/lib/_memcpy.c b/device/lib/_memcpy.c index 9211c09e..c973f159 100644 --- a/device/lib/_memcpy.c +++ b/device/lib/_memcpy.c @@ -26,24 +26,21 @@ #if !_SDCC_PORT_PROVIDES_MEMCPY -#define NULL (void *)0 - -void _generic * memcpy ( - void _generic * dst, - void _generic * src, - int acount +void * memcpy ( + void * dst, + void * src, + size_t acount ) { #if _SDCC_Z80_STYLE_LIB_OPT -#pragma NOINDUCTION +#pragma noinduction - char _generic * d = dst; - char _generic * s = src; - int count = -acount; + char * d = dst; + char * s = src; + /* PENDING: Divide first to get around sign problems */ + int count = -(acount >> 2); - count /= 4; - while (count) { *d++ = *s++; *d++ = *s++; @@ -61,9 +58,9 @@ void _generic * memcpy ( } return dst; #else - void _generic * ret = dst; - char _generic * d = dst; - char _generic * s = src; + void * ret = dst; + char * d = dst; + char * s = src; /* * copy from lower addresses to higher addresses