blob: 2437ae7f6ed23481154c016e30a4166d36cbee92 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
;; Core of the spinlock implementation
;;
;; Copyright (C) 2004 Axis Communications AB.
;;
;; Author: Mikael Starvik
.global cris_spin_lock
.global cris_spin_trylock
.text
cris_spin_lock:
clearf p
1: test.d [$r10]
beq 1b
clearf p
ax
clear.d [$r10]
bcs 1b
clearf p
ret
nop
cris_spin_trylock:
clearf p
1: move.d [$r10], $r11
ax
clear.d [$r10]
bcs 1b
clearf p
ret
move.d $r11,$r10
|