Mikael Starvik | 51533b6 | 2005-07-27 11:44:44 -0700 | [diff] [blame] | 1 | ;; Core of the spinlock implementation |
2 | ;; | ||||
3 | ;; Copyright (C) 2004 Axis Communications AB. | ||||
4 | ;; | ||||
5 | ;; Author: Mikael Starvik | ||||
6 | |||||
7 | |||||
8 | .global cris_spin_lock | ||||
9 | .global cris_spin_trylock | ||||
10 | |||||
11 | .text | ||||
12 | |||||
13 | cris_spin_lock: | ||||
14 | clearf p | ||||
Jesper Nilsson | ea0af95 | 2008-01-25 17:57:28 +0100 | [diff] [blame^] | 15 | 1: test.b [$r10] |
Mikael Starvik | 51533b6 | 2005-07-27 11:44:44 -0700 | [diff] [blame] | 16 | beq 1b |
17 | clearf p | ||||
18 | ax | ||||
Jesper Nilsson | ea0af95 | 2008-01-25 17:57:28 +0100 | [diff] [blame^] | 19 | clear.b [$r10] |
Mikael Starvik | 51533b6 | 2005-07-27 11:44:44 -0700 | [diff] [blame] | 20 | bcs 1b |
21 | clearf p | ||||
22 | ret | ||||
23 | nop | ||||
24 | |||||
25 | cris_spin_trylock: | ||||
26 | clearf p | ||||
Jesper Nilsson | ea0af95 | 2008-01-25 17:57:28 +0100 | [diff] [blame^] | 27 | 1: move.b [$r10], $r11 |
Mikael Starvik | 51533b6 | 2005-07-27 11:44:44 -0700 | [diff] [blame] | 28 | ax |
Jesper Nilsson | ea0af95 | 2008-01-25 17:57:28 +0100 | [diff] [blame^] | 29 | clear.b [$r10] |
Mikael Starvik | 51533b6 | 2005-07-27 11:44:44 -0700 | [diff] [blame] | 30 | bcs 1b |
31 | clearf p | ||||
32 | ret | ||||
Jesper Nilsson | ea0af95 | 2008-01-25 17:57:28 +0100 | [diff] [blame^] | 33 | movu.b $r11,$r10 |