char *dest = __dest;
const char *src = __src;
void *ret = __dest;
+
+ if( len == 0 || dest == src )
+ return dest;
if( (tVAddr)dest > (tVAddr)src + len )
return memcpy(dest, src, len);
if( (tVAddr)dest + len < (tVAddr)src )
return memcpy(dest, src, len);
+ // NOTE: Assumes memcpy works forward
+ if( (tVAddr)dest < (tVAddr)src )
+ return memcpy(dest, src, len);
+
if( (tVAddr)dest < (tVAddr)src )
block_size = (tVAddr)src - (tVAddr)dest;
else