summaryrefslogtreecommitdiff
path: root/libpthread/nptl/sysdeps/csky/pthread_spin_lock.S
diff options
context:
space:
mode:
Diffstat (limited to 'libpthread/nptl/sysdeps/csky/pthread_spin_lock.S')
-rw-r--r--libpthread/nptl/sysdeps/csky/pthread_spin_lock.S18
1 files changed, 18 insertions, 0 deletions
diff --git a/libpthread/nptl/sysdeps/csky/pthread_spin_lock.S b/libpthread/nptl/sysdeps/csky/pthread_spin_lock.S
new file mode 100644
index 000000000..da6e234eb
--- /dev/null
+++ b/libpthread/nptl/sysdeps/csky/pthread_spin_lock.S
@@ -0,0 +1,18 @@
+#include <sysdep.h>
+
+ .text
+ .align 4
+
+ENTRY (pthread_spin_lock)
+ mov a2, a0
+1:
+ movi a0, 0
+ movi a1, 1
+ trap 2 // trap 2 use to cmpxchg
+ cmpnei a0, 0
+ bt 1b
+ movi a0, 0
+ jmp r15
+
+ /* TODO */
+END (pthread_spin_lock)