Kaynağa Gözat

remove watcom compiler support from private sources

Ozkan Sezer 2 gün önce
ebeveyn
işleme
9cefbab766

+ 1 - 3
src/SDL.c

@@ -845,9 +845,7 @@ SDL_Sandbox SDL_GetSandbox(void)
 
 #ifdef SDL_PLATFORM_WIN32
 
-#if (!defined(HAVE_LIBC) || defined(__WATCOMC__)) && !defined(SDL_STATIC_LIB)
-// FIXME: Still need to include DllMain() on Watcom C ?
-
+#if !defined(HAVE_LIBC) && !defined(SDL_STATIC_LIB)
 BOOL APIENTRY MINGW32_FORCEALIGN _DllMainCRTStartup(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
 {
     switch (ul_reason_for_call) {

+ 0 - 4
src/SDL_assert.c

@@ -120,10 +120,6 @@ static void SDL_GenerateAssertionReport(void)
     }
 }
 
-#ifdef __WATCOMC__
-static void SDL_AbortAssertion(void);
-#pragma aux SDL_AbortAssertion aborts;
-#endif
 static SDL_NORETURN void SDL_AbortAssertion(void)
 {
     SDL_Quit();

+ 0 - 4
src/SDL_internal.h

@@ -269,10 +269,6 @@ extern "C" {
 /* SDL_ExitProcess is not declared in any public header, although
    it is shared between some parts of SDL, because we don't want
    anything calling it without an extremely good reason. */
-#ifdef __WATCOMC__
-extern void SDL_ExitProcess(int exitcode);
-#pragma aux SDL_ExitProcess aborts;
-#endif
 extern SDL_NORETURN void SDL_ExitProcess(int exitcode);
 
 #ifdef HAVE_LIBC

+ 1 - 54
src/atomic/SDL_atomic.c

@@ -48,35 +48,6 @@
 #endif
 #endif
 
-/* *INDENT-OFF* */ // clang-format off
-#if defined(__WATCOMC__) && defined(__386__)
-SDL_COMPILE_TIME_ASSERT(intsize, 4==sizeof(int));
-#define HAVE_WATCOM_ATOMICS
-extern __inline int _SDL_xchg_watcom(volatile int *a, int v);
-#pragma aux _SDL_xchg_watcom = \
-  "lock xchg [ecx], eax" \
-  parm [ecx] [eax] \
-  value [eax] \
-  modify exact [eax];
-
-extern __inline unsigned char _SDL_cmpxchg_watcom(volatile int *a, int newval, int oldval);
-#pragma aux _SDL_cmpxchg_watcom = \
-  "lock cmpxchg [edx], ecx" \
-  "setz al" \
-  parm [edx] [ecx] [eax] \
-  value [al] \
-  modify exact [eax];
-
-extern __inline int _SDL_xadd_watcom(volatile int *a, int v);
-#pragma aux _SDL_xadd_watcom = \
-  "lock xadd [ecx], eax" \
-  parm [ecx] [eax] \
-  value [eax] \
-  modify exact [eax];
-
-#endif // __WATCOMC__ && __386__
-/* *INDENT-ON* */ // clang-format on
-
 /*
   If any of the operations are not provided then we must emulate some
   of them. That means we need a nice implementation of spin locks
@@ -100,7 +71,7 @@ extern __inline int _SDL_xadd_watcom(volatile int *a, int v);
   Contributed by Bob Pendleton, [email protected]
 */
 
-#if !defined(HAVE_MSC_ATOMICS) && !defined(HAVE_GCC_ATOMICS) && !defined(SDL_PLATFORM_MACOS) && !defined(SDL_PLATFORM_SOLARIS) && !defined(HAVE_WATCOM_ATOMICS)
+#if !defined(HAVE_MSC_ATOMICS) && !defined(HAVE_GCC_ATOMICS) && !defined(SDL_PLATFORM_MACOS) && !defined(SDL_PLATFORM_SOLARIS)
 #define EMULATE_CAS 1
 #endif
 
@@ -127,8 +98,6 @@ bool SDL_CompareAndSwapAtomicInt(SDL_AtomicInt *a, int oldval, int newval)
 #ifdef HAVE_MSC_ATOMICS
     SDL_COMPILE_TIME_ASSERT(atomic_cas, sizeof(long) == sizeof(a->value));
     return _InterlockedCompareExchange((long *)&a->value, (long)newval, (long)oldval) == (long)oldval;
-#elif defined(HAVE_WATCOM_ATOMICS)
-    return _SDL_cmpxchg_watcom((volatile int *)&a->value, newval, oldval);
 #elif defined(HAVE_GCC_ATOMICS)
     return __sync_bool_compare_and_swap(&a->value, oldval, newval);
 #elif defined(SDL_PLATFORM_MACOS) // this is deprecated in 10.12 sdk; favor gcc atomics.
@@ -157,9 +126,6 @@ bool SDL_CompareAndSwapAtomicU32(SDL_AtomicU32 *a, Uint32 oldval, Uint32 newval)
 #ifdef HAVE_MSC_ATOMICS
     SDL_COMPILE_TIME_ASSERT(atomic_cas, sizeof(long) == sizeof(a->value));
     return _InterlockedCompareExchange((long *)&a->value, (long)newval, (long)oldval) == (long)oldval;
-#elif defined(HAVE_WATCOM_ATOMICS)
-    SDL_COMPILE_TIME_ASSERT(atomic_cas, sizeof(int) == sizeof(a->value));
-    return _SDL_cmpxchg_watcom((volatile int *)&a->value, (int)newval, (int)oldval);
 #elif defined(HAVE_GCC_ATOMICS)
     return __sync_bool_compare_and_swap(&a->value, oldval, newval);
 #elif defined(SDL_PLATFORM_MACOS) // this is deprecated in 10.12 sdk; favor gcc atomics.
@@ -187,8 +153,6 @@ bool SDL_CompareAndSwapAtomicPointer(void **a, void *oldval, void *newval)
 {
 #ifdef HAVE_MSC_ATOMICS
     return _InterlockedCompareExchangePointer(a, newval, oldval) == oldval;
-#elif defined(HAVE_WATCOM_ATOMICS)
-    return _SDL_cmpxchg_watcom((int *)a, (long)newval, (long)oldval);
 #elif defined(HAVE_GCC_ATOMICS)
     return __sync_bool_compare_and_swap(a, oldval, newval);
 #elif defined(SDL_PLATFORM_MACOS) && defined(__LP64__)  // this is deprecated in 10.12 sdk; favor gcc atomics.
@@ -218,8 +182,6 @@ int SDL_SetAtomicInt(SDL_AtomicInt *a, int v)
 #ifdef HAVE_MSC_ATOMICS
     SDL_COMPILE_TIME_ASSERT(atomic_set, sizeof(long) == sizeof(a->value));
     return _InterlockedExchange((long *)&a->value, v);
-#elif defined(HAVE_WATCOM_ATOMICS)
-    return _SDL_xchg_watcom(&a->value, v);
 #elif defined(HAVE_GCC_ATOMICS)
     return __sync_lock_test_and_set(&a->value, v);
 #elif defined(SDL_PLATFORM_SOLARIS)
@@ -239,8 +201,6 @@ Uint32 SDL_SetAtomicU32(SDL_AtomicU32 *a, Uint32 v)
 #ifdef HAVE_MSC_ATOMICS
     SDL_COMPILE_TIME_ASSERT(atomic_set, sizeof(long) == sizeof(a->value));
     return _InterlockedExchange((long *)&a->value, v);
-#elif defined(HAVE_WATCOM_ATOMICS)
-    return _SDL_xchg_watcom(&a->value, v);
 #elif defined(HAVE_GCC_ATOMICS)
     return __sync_lock_test_and_set(&a->value, v);
 #elif defined(SDL_PLATFORM_SOLARIS)
@@ -259,8 +219,6 @@ void *SDL_SetAtomicPointer(void **a, void *v)
 {
 #ifdef HAVE_MSC_ATOMICS
     return _InterlockedExchangePointer(a, v);
-#elif defined(HAVE_WATCOM_ATOMICS)
-    return (void *)_SDL_xchg_watcom((int *)a, (long)v);
 #elif defined(HAVE_GCC_ATOMICS)
     return __sync_lock_test_and_set(a, v);
 #elif defined(SDL_PLATFORM_SOLARIS)
@@ -279,9 +237,6 @@ int SDL_AddAtomicInt(SDL_AtomicInt *a, int v)
 #ifdef HAVE_MSC_ATOMICS
     SDL_COMPILE_TIME_ASSERT(atomic_add, sizeof(long) == sizeof(a->value));
     return _InterlockedExchangeAdd((long *)&a->value, v);
-#elif defined(HAVE_WATCOM_ATOMICS)
-    SDL_COMPILE_TIME_ASSERT(atomic_add, sizeof(int) == sizeof(a->value));
-    return _SDL_xadd_watcom((volatile int *)&a->value, v);
 #elif defined(HAVE_GCC_ATOMICS)
     return __sync_fetch_and_add(&a->value, v);
 #elif defined(SDL_PLATFORM_SOLARIS)
@@ -303,9 +258,6 @@ Uint32 SDL_AddAtomicU32(SDL_AtomicU32 *a, int v)
 #ifdef HAVE_MSC_ATOMICS
     SDL_COMPILE_TIME_ASSERT(atomic_add, sizeof(long) == sizeof(a->value));
     return (Uint32)_InterlockedExchangeAdd((long *)&a->value, v);
-#elif defined(HAVE_WATCOM_ATOMICS)
-    SDL_COMPILE_TIME_ASSERT(atomic_add, sizeof(int) == sizeof(a->value));
-    return (Uint32)_SDL_xadd_watcom((volatile int *)&a->value, v);
 #elif defined(HAVE_GCC_ATOMICS)
     return __sync_fetch_and_add(&a->value, v);
 #elif defined(SDL_PLATFORM_SOLARIS)
@@ -329,8 +281,6 @@ int SDL_GetAtomicInt(SDL_AtomicInt *a)
 #elif defined(HAVE_MSC_ATOMICS)
     SDL_COMPILE_TIME_ASSERT(atomic_get, sizeof(long) == sizeof(a->value));
     return _InterlockedOr((long *)&a->value, 0);
-#elif defined(HAVE_WATCOM_ATOMICS)
-    return _SDL_xadd_watcom(&a->value, 0);
 #elif defined(HAVE_GCC_ATOMICS)
     return __sync_or_and_fetch(&a->value, 0);
 #elif defined(SDL_PLATFORM_MACOS) // this is deprecated in 10.12 sdk; favor gcc atomics.
@@ -353,9 +303,6 @@ Uint32 SDL_GetAtomicU32(SDL_AtomicU32 *a)
 #elif defined(HAVE_MSC_ATOMICS)
     SDL_COMPILE_TIME_ASSERT(atomic_get, sizeof(long) == sizeof(a->value));
     return (Uint32)_InterlockedOr((long *)&a->value, 0);
-#elif defined(HAVE_WATCOM_ATOMICS)
-    SDL_COMPILE_TIME_ASSERT(atomic_get, sizeof(int) == sizeof(a->value));
-    return (Uint32)_SDL_xadd_watcom((volatile int *)&a->value, 0);
 #elif defined(HAVE_GCC_ATOMICS)
     return __sync_or_and_fetch(&a->value, 0);
 #elif defined(SDL_PLATFORM_MACOS) // this is deprecated in 10.12 sdk; favor gcc atomics.

+ 0 - 19
src/atomic/SDL_spinlock.c

@@ -44,18 +44,6 @@
 #include <libkern/OSAtomic.h>
 #endif
 
-/* *INDENT-OFF* */ // clang-format off
-#if defined(__WATCOMC__) && defined(__386__)
-SDL_COMPILE_TIME_ASSERT(locksize, 4==sizeof(SDL_SpinLock));
-extern __inline int _SDL_xchg_watcom(volatile int *a, int v);
-#pragma aux _SDL_xchg_watcom = \
-  "lock xchg [ecx], eax" \
-  parm [ecx] [eax] \
-  value [eax] \
-  modify exact [eax];
-#endif // __WATCOMC__ && __386__
-/* *INDENT-ON* */ // clang-format on
-
 // This function is where all the magic happens...
 bool SDL_TryLockSpinlock(SDL_SpinLock *lock)
 {
@@ -69,9 +57,6 @@ bool SDL_TryLockSpinlock(SDL_SpinLock *lock)
     SDL_COMPILE_TIME_ASSERT(locksize, sizeof(*lock) == sizeof(long));
     return InterlockedExchange((long *)lock, 1) == 0;
 
-#elif defined(__WATCOMC__) && defined(__386__)
-    return _SDL_xchg_watcom(lock, 1) == 0;
-
 #elif defined(__GNUC__) && defined(__arm__) &&               \
     (defined(__ARM_ARCH_3__) || defined(__ARM_ARCH_3M__) ||  \
      defined(__ARM_ARCH_4__) || defined(__ARM_ARCH_4T__) ||  \
@@ -188,10 +173,6 @@ void SDL_UnlockSpinlock(SDL_SpinLock *lock)
     _ReadWriteBarrier();
     *lock = 0;
 
-#elif defined(__WATCOMC__) && defined(__386__)
-    SDL_CompilerBarrier();
-    *lock = 0;
-
 #elif defined(SDL_PLATFORM_SOLARIS)
     // Used for Solaris when not using gcc.
     *lock = 0;

+ 3 - 3
src/cpuinfo/SDL_cpuinfo.c

@@ -174,7 +174,7 @@ static int CPU_haveCPUID(void)
     :
     : "%rax", "%rcx"
     );
-#elif (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__)
+#elif defined(_MSC_VER) && defined(_M_IX86)
     __asm {
         pushfd                      ; Get original EFLAGS
         pop     eax
@@ -247,7 +247,7 @@ done:
         "        popq %%rbx         \n"      \
         : "=a"(a), "=S"(b), "=c"(c), "=d"(d) \
         : "a"(func))
-#elif (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__)
+#elif defined(_MSC_VER) && defined(_M_IX86)
 #define cpuid(func, a, b, c, d) \
     __asm { \
         __asm mov eax, func \
@@ -311,7 +311,7 @@ static void CPU_calcCPUIDFeatures(void)
                             : "%edx");
 #elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64)) && (_MSC_FULL_VER >= 160040219) // VS2010 SP1
                     a = (int)_xgetbv(0);
-#elif (defined(_MSC_VER) && defined(_M_IX86)) || defined(__WATCOMC__)
+#elif defined(_MSC_VER) && defined(_M_IX86)
                     __asm
                         {
                         xor ecx, ecx

+ 5 - 8
src/dynapi/SDL_dynapi.c

@@ -86,7 +86,7 @@ static void SDL_InitDynamicAPI(void);
     }
 
 #define SDL_DYNAPI_VARARGS(_static, name, initcall)                                                                                       \
-    _static bool SDLCALL SDL_SetError##name(SDL_PRINTF_FORMAT_STRING const char *fmt, ...)                                            \
+    _static bool SDLCALL SDL_SetError##name(SDL_PRINTF_FORMAT_STRING const char *fmt, ...)                                                \
     {                                                                                                                                     \
         char buf[128], *str = buf;                                                                                                        \
         int result;                                                                                                                       \
@@ -98,7 +98,7 @@ static void SDL_InitDynamicAPI(void);
         if (result >= 0 && (size_t)result >= sizeof(buf)) {                                                                               \
             str = NULL;                                                                                                                   \
             va_start(ap, fmt);                                                                                                            \
-            result = jump_table.SDL_vasprintf(&str, fmt, ap);                                                                                        \
+            result = jump_table.SDL_vasprintf(&str, fmt, ap);                                                                             \
             va_end(ap);                                                                                                                   \
         }                                                                                                                                 \
         if (result >= 0) {                                                                                                                \
@@ -107,7 +107,7 @@ static void SDL_InitDynamicAPI(void);
         if (str != buf) {                                                                                                                 \
             jump_table.SDL_free(str);                                                                                                     \
         }                                                                                                                                 \
-        return false;                                                                                                                 \
+        return false;                                                                                                                     \
     }                                                                                                                                     \
     _static int SDLCALL SDL_sscanf##name(const char *buf, SDL_SCANF_FORMAT_STRING const char *fmt, ...)                                   \
     {                                                                                                                                     \
@@ -149,7 +149,7 @@ static void SDL_InitDynamicAPI(void);
         va_end(ap);                                                                                                                       \
         return result;                                                                                                                    \
     }                                                                                                                                     \
-    _static size_t SDLCALL SDL_IOprintf##name(SDL_IOStream *context, SDL_PRINTF_FORMAT_STRING const char *fmt, ...)                          \
+    _static size_t SDLCALL SDL_IOprintf##name(SDL_IOStream *context, SDL_PRINTF_FORMAT_STRING const char *fmt, ...)                       \
     {                                                                                                                                     \
         size_t result;                                                                                                                    \
         va_list ap;                                                                                                                       \
@@ -199,7 +199,7 @@ static void SDL_InitDynamicAPI(void);
         jump_table.SDL_LogMessageV(category, priority, fmt, ap);                                                                          \
         va_end(ap);                                                                                                                       \
     }                                                                                                                                     \
-    SDL_DYNAPI_VARARGS_LOGFN(_static, name, initcall, Trace, TRACE)                                                                   \
+    SDL_DYNAPI_VARARGS_LOGFN(_static, name, initcall, Trace, TRACE)                                                                       \
     SDL_DYNAPI_VARARGS_LOGFN(_static, name, initcall, Verbose, VERBOSE)                                                                   \
     SDL_DYNAPI_VARARGS_LOGFN(_static, name, initcall, Debug, DEBUG)                                                                       \
     SDL_DYNAPI_VARARGS_LOGFN(_static, name, initcall, Info, INFO)                                                                         \
@@ -500,9 +500,6 @@ static void dynapi_warn(const char *msg)
 extern "C" {
 #endif
 extern SDL_NORETURN void SDL_ExitProcess(int exitcode);
-#ifdef __WATCOMC__
-#pragma aux SDL_ExitProcess aborts;
-#endif
 #ifdef __cplusplus
 }
 #endif

+ 0 - 4
src/libm/e_exp.c

@@ -76,10 +76,6 @@
 #include "math_libm.h"
 #include "math_private.h"
 
-#ifdef __WATCOMC__ /* Watcom defines huge=__huge */
-#undef huge
-#endif
-
 static const double
 one	= 1.0,
 halF[2]	= {0.5,-0.5,},

+ 0 - 4
src/libm/e_pow.c

@@ -64,10 +64,6 @@
 #pragma warning ( disable : 4756 )
 #endif
 
-#ifdef __WATCOMC__ /* Watcom defines huge=__huge */
-#undef huge
-#endif
-
 static const double
 bp[] = {1.0, 1.5,},
 dp_h[] = { 0.0, 5.84962487220764160156e-01,}, /* 0x3FE2B803, 0x40000000 */

+ 0 - 4
src/libm/s_atan.c

@@ -61,10 +61,6 @@ static const double aT[] = {
   1.62858201153657823623e-02, /* 0x3F90AD3A, 0xE322DA11 */
 };
 
-#ifdef __WATCOMC__ /* Watcom defines huge=__huge */
-#undef huge
-#endif
-
 static const double
 one   = 1.0,
 huge   = 1.0e300;

+ 0 - 4
src/libm/s_floor.c

@@ -25,10 +25,6 @@
 #include "math_libm.h"
 #include "math_private.h"
 
-#ifdef __WATCOMC__ /* Watcom defines huge=__huge */
-#undef huge
-#endif
-
 static const double huge = 1.0e300;
 
 double floor(double x)

+ 0 - 4
src/libm/s_scalbn.c

@@ -21,10 +21,6 @@
 #include "math_private.h"
 #include <limits.h>
 
-#ifdef __WATCOMC__ /* Watcom defines huge=__huge */
-#undef huge
-#endif
-
 static const double
 two54  = 1.80143985094819840000e+16, /* 0x43500000, 0x00000000 */
 twom54 = 5.55111512312578270212e-17, /* 0x3C900000, 0x00000000 */

+ 0 - 6
src/stdlib/SDL_stdlib.c

@@ -140,12 +140,6 @@ double SDL_copysign(double x, double y)
     return copysign(x, y);
 #elif defined(HAVE__COPYSIGN)
     return _copysign(x, y);
-#elif defined(__WATCOMC__) && defined(__386__)
-    // this is nasty as hell, but it works..
-    unsigned int *xi = (unsigned int *)&x,
-                 *yi = (unsigned int *)&y;
-    xi[1] = (yi[1] & 0x80000000) | (xi[1] & 0x7fffffff);
-    return x;
 #else
     return SDL_uclibc_copysign(x, y);
 #endif // HAVE_COPYSIGN

+ 1 - 18
src/stdlib/SDL_string.c

@@ -1830,24 +1830,7 @@ int SDL_swprintf(SDL_OUT_Z_CAP(maxlen) wchar_t *text, size_t maxlen, SDL_PRINTF_
     return result;
 }
 
-#if defined(HAVE_LIBC) && defined(__WATCOMC__)
-// _vsnprintf() doesn't ensure nul termination
-int SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, const char *fmt, va_list ap)
-{
-    int result;
-    if (!fmt) {
-        fmt = "";
-    }
-    result = _vsnprintf(text, maxlen, fmt, ap);
-    if (maxlen > 0) {
-        text[maxlen - 1] = '\0';
-    }
-    if (result < 0) {
-        result = (int)maxlen;
-    }
-    return result;
-}
-#elif defined(HAVE_VSNPRINTF)
+#if defined(HAVE_VSNPRINTF)
 int SDL_vsnprintf(SDL_OUT_Z_CAP(maxlen) char *text, size_t maxlen, const char *fmt, va_list ap)
 {
     if (!fmt) {