locks.h (compare_and_swap): Fix multilib support.
authorBo Thorsen <bo@suse.de>
Tue, 1 Oct 2002 09:02:08 +0000 (09:02 +0000)
committerBo Thorsen <bo@gcc.gnu.org>
Tue, 1 Oct 2002 09:02:08 +0000 (11:02 +0200)
2002-09-30  Bo Thorsen  <bo@suse.de>

* sysdep/x86-64/locks.h (compare_and_swap): Fix multilib support.

From-SVN: r57682

libjava/ChangeLog
libjava/sysdep/x86-64/locks.h

index 8c2ab3e243ae1bde2f85f4e884af6719894515eb..eef5d761cb7eb52da62f6beb7dbf0a65f60668fa 100644 (file)
@@ -1,3 +1,7 @@
+2002-09-30  Bo Thorsen  <bo@suse.de>
+
+       * sysdep/x86-64/locks.h (compare_and_swap): Fix multilib support.
+
 2002-09-30  Tom Tromey  <tromey@redhat.com>
 
        * java/io/ObjectInputStream.java (resolveProxyClass): New method
index cb6be85951b002dd50452a7c686187a9e75550b6..bad6de6dc6f6043de240146771be8d7653b429a8 100644 (file)
@@ -24,10 +24,17 @@ inline static bool
 compare_and_swap(volatile obj_addr_t *addr, obj_addr_t old, obj_addr_t new_val)
 {
   char result;
+#ifdef __x86_64__
   __asm__ __volatile__("lock; cmpxchgq %2, %0; setz %1"
              : "+m"(*(addr)), "=q"(result)
              : "r" (new_val), "a"(old)
              : "memory");
+#else
+  __asm__ __volatile__("lock; cmpxchgl %2, %0; setz %1"
+                      : "+m"(*(addr)), "=q"(result)
+                      : "r" (new_val), "a"(old)
+                      : "memory");
+#endif
   return (bool) result;
 }