diff options
Diffstat (limited to 'libpthread/nptl/sysdeps/arc/pthread_spin_lock.S')
-rw-r--r-- | libpthread/nptl/sysdeps/arc/pthread_spin_lock.S | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/libpthread/nptl/sysdeps/arc/pthread_spin_lock.S b/libpthread/nptl/sysdeps/arc/pthread_spin_lock.S new file mode 100644 index 000000000..7a5e630b8 --- /dev/null +++ b/libpthread/nptl/sysdeps/arc/pthread_spin_lock.S @@ -0,0 +1,21 @@ +/* + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com) + * + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball. + */ + +#include <sysdep.h> + +; int pthread_spin_lock(pthread_spinlock_t *lock) +; 1 - locked, 0 - unlocked + +ENTRY(pthread_spin_lock) + mov_s r1, 1 + nop_s +1: + ex r1, [r0] + breq r1, 1, 1b + + j.d [blink] + mov r0, 0 +END(pthread_spin_lock) |