From: divverent <divverent@d7cf8633-e32d-0410-b094-e92efae38249>
Date: Sun, 10 Apr 2011 19:23:57 +0000 (+0000)
Subject: fix compilation of dpsoftrast on mingw32 (use Interlocked* instead of __sync_*)
X-Git-Tag: xonotic-v0.6.0~163^2~498
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=068b4bae6bdc5b323d9a75de52f9f51afc5a3003;p=xonotic%2Fdarkplaces.git

fix compilation of dpsoftrast on mingw32 (use Interlocked* instead of __sync_*)

git-svn-id: svn://svn.icculus.org/twilight/trunk/darkplaces@11048 d7cf8633-e32d-0410-b094-e92efae38249
---

diff --git a/dpsoftrast.c b/dpsoftrast.c
index 222b71c6..75d6db80 100644
--- a/dpsoftrast.c
+++ b/dpsoftrast.c
@@ -27,6 +27,15 @@ typedef qboolean bool;
 		#define ATOMIC_INCREMENT(counter) (OSAtomicIncrement32Barrier(&(counter)))
 		#define ATOMIC_DECREMENT(counter) (OSAtomicDecrement32Barrier(&(counter)))
 		#define ATOMIC_ADD(counter, val) ((void)OSAtomicAdd32Barrier((val), &(counter)))
+	#elif defined(__GNUC__) && defined(WIN32)
+		#define ALIGN(var) var __attribute__((__aligned__(16)))
+		#define ATOMIC(var) var __attribute__((__aligned__(32)))
+		#define MEMORY_BARRIER (_mm_sfence())
+		//(__sync_synchronize())
+		#define ATOMIC_COUNTER volatile LONG
+		#define ATOMIC_INCREMENT(counter) (InterlockedIncrement(&(counter)))
+		#define ATOMIC_DECREMENT(counter) (InterlockedDecrement(&(counter)))
+		#define ATOMIC_ADD(counter, val) ((void)InterlockedExchangeAdd(&(counter), (val)))
 	#elif defined(__GNUC__)
 		#define ALIGN(var) var __attribute__((__aligned__(16)))
 		#define ATOMIC(var) var __attribute__((__aligned__(32)))