| Index: nss/mozilla/nsprpub/pr/include/pratom.h
|
| ===================================================================
|
| --- nss/mozilla/nsprpub/pr/include/pratom.h (revision 55475)
|
| +++ nss/mozilla/nsprpub/pr/include/pratom.h (working copy)
|
| @@ -125,16 +125,20 @@
|
| long __cdecl _InterlockedExchangeAdd(long volatile *Addend, long Value);
|
| #pragma intrinsic(_InterlockedExchangeAdd)
|
|
|
| -#define PR_ATOMIC_INCREMENT(val) _InterlockedIncrement(val)
|
| -#define PR_ATOMIC_DECREMENT(val) _InterlockedDecrement(val)
|
| -#define PR_ATOMIC_SET(val, newval) _InterlockedExchange(val, newval)
|
| -#define PR_ATOMIC_ADD(ptr, val) (_InterlockedExchangeAdd(ptr, val) + (val))
|
| +#define PR_ATOMIC_INCREMENT(val) _InterlockedIncrement((long volatile *)(val))
|
| +#define PR_ATOMIC_DECREMENT(val) _InterlockedDecrement((long volatile *)(val))
|
| +#define PR_ATOMIC_SET(val, newval) \
|
| + _InterlockedExchange((long volatile *)(val), (long)(newval))
|
| +#define PR_ATOMIC_ADD(ptr, val) \
|
| + (_InterlockedExchangeAdd((long volatile *)(ptr), (long)(val)) + (val))
|
|
|
| #elif ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) && \
|
| ((defined(DARWIN) && \
|
| - (defined(__ppc__) || defined(__i386__))) || \
|
| + (defined(__ppc__) || defined(__i386__) || defined(__x86_64__))) || \
|
| (defined(LINUX) && \
|
| - (defined(__i386__) || defined(__ia64__) || defined(__x86_64__) || \
|
| + ((defined(__i386__) && \
|
| + defined(__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4)) || \
|
| + defined(__ia64__) || defined(__x86_64__) || \
|
| (defined(__powerpc__) && !defined(__powerpc64__)) || \
|
| defined(__alpha))))
|
|
|
|
|