changed use also intrinsic for cas
authorgimli <ebsi4711@gmail.com>
Tue, 10 Jul 2012 05:12:32 +0000 (07:12 +0200)
committergimli <ebsi4711@gmail.com>
Tue, 10 Jul 2012 05:12:32 +0000 (07:12 +0200)
xbmc/threads/Atomics.cpp

index be1ccdc..f3ffa3c 100644 (file)
@@ -35,7 +35,9 @@
 ///////////////////////////////////////////////////////////////////////////
 long cas(volatile long *pAddr, long expectedVal, long swapVal)
 {
-#if defined(__ppc__) || defined(__powerpc__) // PowerPC
+#if defined(HAS_GCC_INTRINSICS)
+  return(__sync_val_compare_and_swap(pAddr, expectedVal, swapVal));
+#elif defined(__ppc__) || defined(__powerpc__) // PowerPC
   unsigned int prev;
   __asm__ __volatile__ (
     "  1:      lwarx   %0,0,%2  \n" /* Load the current value of *pAddr(%2) into prev (%0) and lock pAddr,  */