[SCM] Multiplatform 3D Game Development Kit branch, master, updated. debian/1.2.1-1-5-gf37fbcb

Gonéri Le Bouder goneri at rulezlan.org
Wed Jul 8 19:02:17 UTC 2009


The following commit has been merged in the master branch:
commit f37fbcb3ff430d317471f77cfbb67286a5e3b859
Author: Gonéri Le Bouder <goneri at rulezlan.org>
Date:   Wed Jul 8 20:58:34 2009 +0200

    use g_atomic_pointer_compare_and_exchange() code

diff --git a/debian/patches/sparc_defined_prev_in_CompareAndSet.diff b/debian/patches/sparc_defined_prev_in_CompareAndSet.diff
index 4fea676..eb07d23 100644
--- a/debian/patches/sparc_defined_prev_in_CompareAndSet.diff
+++ b/debian/patches/sparc_defined_prev_in_CompareAndSet.diff
@@ -1,13 +1,30 @@
-diff --git a/CS/include/csutil/threading/atomicops_sparc.h b/CS/include/csutil/threading/atomicops_sparc.h
-index de1d216..323a18c 100644
---- a/CS/include/csutil/threading/atomicops_sparc.h
-+++ b/CS/include/csutil/threading/atomicops_sparc.h
-@@ -47,7 +47,7 @@ namespace Threading
+Index: crystalspace/CS/include/csutil/threading/atomicops_sparc.h
+===================================================================
+--- crystalspace.orig/CS/include/csutil/threading/atomicops_sparc.h	2009-07-07 23:58:23.000000000 +0200
++++ crystalspace/CS/include/csutil/threading/atomicops_sparc.h	2009-07-08 20:58:02.000000000 +0200
+@@ -47,16 +47,17 @@
      inline static int32 CompareAndSet (int32* target, int32 value,
        int32 comparand)
      {
 -      int32 prev;
-+      int32 prev = *target;
++        int32_t prev;
  
-       __asm__ __volatile__ 
-         (
+-      __asm__ __volatile__ 
+-        (
+-        "cas [%1],%2,%0"
+-        : "+r" (value)
+-        : "r" (target), "r" (comparand)
+-        );
++	//Based on g_atomic_pointer_compare_and_exchange() from
++ 	// glib 2.9.0
++        __asm__ __volatile__
++                ("cas [%4], %2, %0"
++                 : "=r" (prev), "=m" (*target)
++                 : "r" (value), "m" (target), "r" (target),
++                 "0" (value));
+ 
+-      return prev;
++        return prev;
+     }
+ 
+     inline static void* CompareAndSet (void** target, void* value,

-- 
Multiplatform 3D Game Development Kit



More information about the Pkg-games-commits mailing list