diff options
| author | Marcel Moolenaar <marcel@FreeBSD.org> | 2002-11-16 17:05:06 +0000 |
|---|---|---|
| committer | Marcel Moolenaar <marcel@FreeBSD.org> | 2002-11-16 17:05:06 +0000 |
| commit | f8739dd5f97c8e352a0ef91ccf6a4d79b0a2d587 (patch) | |
| tree | b6338e19ceea921cd4469d68ea0cd64b12298d6b /lib | |
| parent | ecc935018a7d19dd7ed638266eca6f5e94801779 (diff) | |
Notes
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libc_r/arch/ia64/_atomic_lock.S | 5 |
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) |
