AIX's assembler does not support local labels, use relative addressing instead
authormalc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 18 Nov 2008 01:42:17 +0000 (01:42 +0000)
committermalc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>
Tue, 18 Nov 2008 01:42:17 +0000 (01:42 +0000)
(Laurent Vivier)

git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5731 c046a42c-6fe2-441c-8c8c-71466251a162

qemu-lock.h

index fdd8da9..f938e19 100644 (file)
@@ -63,12 +63,11 @@ static inline int testandset (int *p)
 {
     int ret;
     __asm__ __volatile__ (
-                          "0:    lwarx %0,0,%1\n"
+                          "      lwarx %0,0,%1\n"
                           "      xor. %0,%3,%0\n"
-                          "      bne 1f\n"
+                          "      bne $+12\n"
                           "      stwcx. %2,0,%1\n"
-                          "      bne- 0b\n"
-                          "1:    "
+                          "      bne- $-16\n"
                           : "=&r" (ret)
                           : "r" (p), "r" (1), "r" (0)
                           : "cr0", "memory");