aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormalc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>2008-11-18 01:42:17 +0000
committermalc <malc@c046a42c-6fe2-441c-8c8c-71466251a162>2008-11-18 01:42:17 +0000
commit14f87098c07c33cc46fb7510be739e63c3a9be07 (patch)
tree9856ec75a02e6246ca9a533ec54332bedd09277b
parent48253bd84ee24182dd8a1e236094eb8649da3b54 (diff)
AIX's assembler does not support local labels, use relative addressing instead
(Laurent Vivier) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@5731 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--qemu-lock.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/qemu-lock.h b/qemu-lock.h
index fdd8da9435..f938e19e16 100644
--- a/qemu-lock.h
+++ b/qemu-lock.h
@@ -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");