summaryrefslogtreecommitdiffstats
path: root/lib/libc_r
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libc_r')
-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 836b375..d2fc18a 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)
OpenPOWER on IntegriCloud