From dec7875a6e23212021e4d9080330a42832dfe02a Mon Sep 17 00:00:00 2001
From: Edward Rudd <urkle@outoforder.cc>
Date: Tue, 15 Jun 2021 01:40:19 +0000
Subject: [PATCH] update SDL soruce to 2.0.14
---
source/src/stdlib/SDL_stdlib.c | 74 +++++++++++++++++++++----------------
1 files changed, 42 insertions(+), 32 deletions(-)
diff --git a/source/src/stdlib/SDL_stdlib.c b/source/src/stdlib/SDL_stdlib.c
index c2774cb..5334a51 100644
--- a/source/src/stdlib/SDL_stdlib.c
+++ b/source/src/stdlib/SDL_stdlib.c
@@ -261,6 +261,30 @@
}
double
+SDL_trunc(double x)
+{
+#if defined(HAVE_TRUNC)
+ return trunc(x);
+#else
+ if (x >= 0.0f) {
+ return SDL_floor(x);
+ } else {
+ return SDL_ceil(x);
+ }
+#endif
+}
+
+float
+SDL_truncf(float x)
+{
+#if defined(HAVE_TRUNCF)
+ return truncf(x);
+#else
+ return (float)SDL_trunc((double)x);
+#endif
+}
+
+double
SDL_fmod(double x, double y)
{
#if defined(HAVE_FMOD)
@@ -462,42 +486,28 @@
__declspec(selectany) int _fltused = 1;
#endif
-/* The optimizer on Visual Studio 2005 and later generates memcpy() calls */
-#if (_MSC_VER >= 1400) && defined(_WIN64) && !defined(_DEBUG) && !(_MSC_VER >= 1900 && defined(_MT))
-#include <intrin.h>
+/* The optimizer on Visual Studio 2005 and later generates memcpy() and memset() calls */
+#if _MSC_VER >= 1400
+extern void *memcpy(void* dst, const void* src, size_t len);
+#pragma intrinsic(memcpy)
#pragma function(memcpy)
-void * memcpy ( void * destination, const void * source, size_t num )
+void *
+memcpy(void *dst, const void *src, size_t len)
{
- const Uint8 *src = (const Uint8 *)source;
- Uint8 *dst = (Uint8 *)destination;
- size_t i;
-
- /* All WIN64 architectures have SSE, right? */
- if (!((uintptr_t) src & 15) && !((uintptr_t) dst & 15)) {
- __m128 values[4];
- for (i = num / 64; i--;) {
- _mm_prefetch(src, _MM_HINT_NTA);
- values[0] = *(__m128 *) (src + 0);
- values[1] = *(__m128 *) (src + 16);
- values[2] = *(__m128 *) (src + 32);
- values[3] = *(__m128 *) (src + 48);
- _mm_stream_ps((float *) (dst + 0), values[0]);
- _mm_stream_ps((float *) (dst + 16), values[1]);
- _mm_stream_ps((float *) (dst + 32), values[2]);
- _mm_stream_ps((float *) (dst + 48), values[3]);
- src += 64;
- dst += 64;
- }
- num &= 63;
- }
-
- while (num--) {
- *dst++ = *src++;
- }
- return destination;
+ return SDL_memcpy(dst, src, len);
}
-#endif /* _MSC_VER == 1600 && defined(_WIN64) && !defined(_DEBUG) */
+
+extern void *memset(void* dst, int c, size_t len);
+#pragma intrinsic(memset)
+
+#pragma function(memset)
+void *
+memset(void *dst, int c, size_t len)
+{
+ return SDL_memset(dst, c, len);
+}
+#endif /* _MSC_VER >= 1400 */
#ifdef _M_IX86
--
Gitblit v1.9.3