aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMarcel Moolenaar <marcel@FreeBSD.org>2002-11-16 17:05:06 +0000
committerMarcel Moolenaar <marcel@FreeBSD.org>2002-11-16 17:05:06 +0000
commitf8739dd5f97c8e352a0ef91ccf6a4d79b0a2d587 (patch)
treeb6338e19ceea921cd4469d68ea0cd64b12298d6b /lib
parentecc935018a7d19dd7ed638266eca6f5e94801779 (diff)
Notes
Diffstat (limited to 'lib')
-rw-r--r--lib/libc_r/arch/ia64/_atomic_lock.S5
1 files changed, 3 insertions, 2 deletions
diff --git a/lib/libc_r/arch/ia64/_atomic_lock.S b/lib/libc_r/arch/ia64/_atomic_lock.S
index 836b3751abb0..d2fc18a02f2e 100644
--- a/lib/libc_r/arch/ia64/_atomic_lock.S
+++ b/lib/libc_r/arch/ia64/_atomic_lock.S
@@ -38,11 +38,12 @@
* is not currently locked.
*
* long _atomic_lock(long *);
- * eax will contain the return value (zero if lock obtained).
*/
ENTRY(_atomic_lock, 1)
+ mov ar.ccv = r0
add r14 = 1, r0
+ nop 0
;;
- xchg8 r8 = [r32], r14
+ cmpxchg8.acq r8 = [r32], r14, ar.ccv
br.ret.sptk rp
END(_atomic_lock)