* src/vm/jit/arm/md-atomic.hpp (Atomic_compare_and_swap_64): Use
authorChristian Thalinger <twisti@complang.tuwien.ac.at>
Fri, 4 Jul 2008 14:50:32 +0000 (16:50 +0200)
committerChristian Thalinger <twisti@complang.tuwien.ac.at>
Fri, 4 Jul 2008 14:50:32 +0000 (16:50 +0200)
generic version.
* src/vm/jit/i386/md-atomic.hpp: Likewise.
* src/vm/jit/mips/md-atomic.hpp: Likewise.
* src/vm/jit/powerpc/md-atomic.hpp: Likewise.

--HG--
branch : twisti

src/vm/jit/arm/md-atomic.hpp
src/vm/jit/i386/md-atomic.hpp
src/vm/jit/mips/md-atomic.hpp
src/vm/jit/powerpc/md-atomic.hpp

index 821cd0145788ee66ab31b326b79c1ef51063a77d..5559322b712271c8369ca090041e4cee60e6c7d4 100644 (file)
@@ -78,7 +78,7 @@ inline static uint32_t Atomic_compare_and_swap_32(volatile uint32_t *p, uint32_t
  */
 inline static uint64_t Atomic_compare_and_swap_64(volatile uint64_t *p, uint64_t oldval, uint64_t newval)
 {
-       log_println("Atomic_compare_and_swap_64: Use generic version.");
+       return Atomic_generic_compare_and_swap_64(p, oldval, newval);
 }
 
 
index acb4d6f7c744b57e9c4586de6bccb5ab67d147cb..9109b9c5faa8bf748407c34df3a1055b6b297d1a 100644 (file)
@@ -66,7 +66,7 @@ inline static uint32_t Atomic_compare_and_swap_32(volatile uint32_t *p, uint32_t
 inline static uint64_t Atomic_compare_and_swap_64(volatile uint64_t *p, uint64_t oldval, uint64_t newval)
 {
 #warning Should we use cmpxchg8b or a generic version?
-       return 0;
+       return Atomic_generic_compare_and_swap_64(p, oldval, newval);
 }
 
 
index 4bd83492f7ef5849a027b5e6c269bd7814541f3b..b9397ceb22eb9fd72c2c7cf3a513b082574e1c22 100644 (file)
@@ -98,8 +98,7 @@ inline static uint64_t Atomic_compare_and_swap_64(volatile uint64_t *p, uint64_t
 
        return result;
 #else
-# warning Use generic version.
-       return 0;
+       return Atomic_generic_compare_and_swap_64(p, oldval, newval);
 #endif
 }
 
index 6e0fb8043345a28292163a77ab54e8a8e16acda1..e9625f73c597ba703ea87040523e140ec4fef604 100644 (file)
@@ -47,18 +47,18 @@ inline static uint32_t Atomic_compare_and_swap_32(volatile uint32_t *p, uint32_t
        uint32_t temp;
        uint32_t result;
 
-       __asm__ __volatile__ ("\n\
-1:  lwarx  %0,0,%4 \n                                                  \
-    subf.  %1,%0,%2 \n                                                 \
-    bne-   2f \n                                                               \
-    or     %1,%3,%3 \n                                                 \
-    stwcx. %1,0,%4 \n                                                  \
-    bne-   1b \n                                                               \
-2: \n                                                                                  \
-"
-                                                 : "=&r"(result), "=&r"(temp)
-                                                 : "r"(oldval), "r"(newval), "r"(p)
-                                                 : "cr0", "memory");
+       __asm__ __volatile__ (
+               "1:                   \n"
+               "    lwarx  %0,0,%4   \n"
+               "    subf.  %1,%0,%2  \n"
+               "    bne-   2f        \n"
+               "    or     %1,%3,%3  \n"
+               "    stwcx. %1,0,%4   \n"
+               "    bne-   1b        \n"
+               "2:                   \n"
+               : "=&r" (result), "=&r" (temp)
+               : "r" (oldval), "r" (newval), "r" (p)
+               : "cr0", "memory");
 
        return result;
 }
@@ -75,8 +75,7 @@ inline static uint32_t Atomic_compare_and_swap_32(volatile uint32_t *p, uint32_t
  */
 inline static uint64_t Atomic_compare_and_swap_64(volatile uint64_t *p, uint64_t oldval, uint64_t newval)
 {
-#warning Use generic implementation.
-       return 0;
+       return Atomic_generic_compare_and_swap_64(p, oldval, newval);
 }