From 873fa5beccbb4e95d1bbb9afb6a0eec02811f09b Mon Sep 17 00:00:00 2001 From: Vineet Gupta Date: Fri, 25 Jul 2014 17:39:05 +0530 Subject: NPTL: ARC support Signed-off-by: Vineet Gupta Signed-off-by: Bernhard Reutner-Fischer --- libpthread/nptl/sysdeps/arc/pthread_spin_trylock.S | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 libpthread/nptl/sysdeps/arc/pthread_spin_trylock.S (limited to 'libpthread/nptl/sysdeps/arc/pthread_spin_trylock.S') diff --git a/libpthread/nptl/sysdeps/arc/pthread_spin_trylock.S b/libpthread/nptl/sysdeps/arc/pthread_spin_trylock.S new file mode 100644 index 000000000..25f5421a2 --- /dev/null +++ b/libpthread/nptl/sysdeps/arc/pthread_spin_trylock.S @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2013 Synopsys, Inc. (www.synopsys.com) + * + * Licensed under LGPL v2.1 or later, see the file COPYING.LIB in this tarball. + */ + +#include + +#define _ERRNO_H 1 +#include + +; int pthread_spin_trylock(pthread_spinlock_t *lock) +; Return EBUSY is already locked, 0 if not + +ENTRY(pthread_spin_trylock) + mov_s r1, 1 + ex r1, [r0] + tst r1, r1 + mov.z r0, 0 + j.d [blink] + mov.nz r0, EBUSY + +; slightly faster, but difficult to follow +; mov_s r1, r0 +; mov_s r0, 1 +; ex r0, [r1] +; tst r0, r0 +; j.d [blink] +; mov.nz r0, EBUSY + +END(pthread_spin_trylock) -- cgit v1.2.3