| 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 |