mirror of
https://github.com/libsdl-org/SDL.git
synced 2025-09-25 20:48:29 +00:00
Allow optimizing memcpy and memset where possible
Modern C runtimes have well optimized memset and memcpy, so use those instead of dispatching into SDL's versions. In addition, some compilers can analyze memset and memcpy calls and directly turn them into optimized assembly.
This commit is contained in:
@@ -325,29 +325,6 @@ static size_t SDL_ScanFloat(const char *text, double *valuep)
|
||||
}
|
||||
#endif
|
||||
|
||||
void *SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len)
|
||||
{
|
||||
#ifdef HAVE_MEMMOVE
|
||||
return memmove(dst, src, len);
|
||||
#else
|
||||
char *srcp = (char *)src;
|
||||
char *dstp = (char *)dst;
|
||||
|
||||
if (src < dst) {
|
||||
srcp += len - 1;
|
||||
dstp += len - 1;
|
||||
while (len--) {
|
||||
*dstp-- = *srcp--;
|
||||
}
|
||||
} else {
|
||||
while (len--) {
|
||||
*dstp++ = *srcp++;
|
||||
}
|
||||
}
|
||||
return dst;
|
||||
#endif /* HAVE_MEMMOVE */
|
||||
}
|
||||
|
||||
int SDL_memcmp(const void *s1, const void *s2, size_t len)
|
||||
{
|
||||
#ifdef __vita__
|
||||
|
Reference in New Issue
Block a user