]> de.git.xonotic.org Git - xonotic/darkplaces.git/commitdiff
attempted fix for macosx compilation issues
authoreihrul <eihrul@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 25 Feb 2011 11:50:01 +0000 (11:50 +0000)
committereihrul <eihrul@d7cf8633-e32d-0410-b094-e92efae38249>
Fri, 25 Feb 2011 11:50:01 +0000 (11:50 +0000)
git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@10862 d7cf8633-e32d-0410-b094-e92efae38249

dpsoftrast.c

index 1d1c9ba0f8086540c41a66e4f241f534668825ac..7d673a5ec9a66a4cd7866c4dbbeded8140f1cb67 100644 (file)
@@ -14,7 +14,16 @@ typedef qboolean bool;
 #define ATOMIC_SIZE 32
 
 #ifdef SSE2_PRESENT
-       #if defined(__GNUC__)
+       #if defined(__APPLE__)
+               #include <libkern/OSAtomic.h>
+               #define ALIGN(var) var __attribute__((__aligned__(16)))
+               #define ATOMIC(var) var __attribute__((__aligned__(32)))
+               #define MEMORY_BARRIER (_mm_sfence())
+               #define ATOMIC_COUNTER volatile int32_t 
+               #define ATOMIC_INCREMENT(counter) (OSAtomicIncrement32Barrier(&(counter))
+               #define ATOMIC_DECREMENT(counter) (OSAtomicDecrement32Barrier(&(counter))
+               #define ATOMIC_ADD(counter, val) ((void)OSAtomicAdd32Barrier((val), &(counter)))
+       #elif defined(__GNUC__)
                #define ALIGN(var) var __attribute__((__aligned__(16)))
                #define ATOMIC(var) var __attribute__((__aligned__(32)))
                #define MEMORY_BARRIER (_mm_sfence())
@@ -31,7 +40,7 @@ typedef qboolean bool;
                #define ATOMIC_COUNTER volatile LONG
                #define ATOMIC_INCREMENT(counter) (InterlockedIncrement(&(counter)))
                #define ATOMIC_DECREMENT(counter) (InterlockedDecrement(&(counter)))
-               #define ATOMIC_ADD(counter, val) (InterlockedExchangeAdd(&(counter), (val)))
+               #define ATOMIC_ADD(counter, val) ((void)InterlockedExchangeAdd(&(counter), (val)))
        #endif
 #endif