1234567891011121314151617181920212223242526272829303132333435363738394041 |
- ;; Core of the spinlock implementation
- ;;
- ;; Copyright (C) 2004 Axis Communications AB.
- ;;
- ;; Author: Mikael Starvik
- .global cris_spin_lock
- .type cris_spin_lock,@function
- .global cris_spin_trylock
- .type cris_spin_trylock,@function
- .text
- cris_spin_lock:
- clearf p
- 1: test.b [$r10]
- beq 1b
- clearf p
- ax
- clear.b [$r10]
- bcs 1b
- clearf p
- ret
- nop
- .size cris_spin_lock, . - cris_spin_lock
- cris_spin_trylock:
- clearf p
- 1: move.b [$r10], $r11
- ax
- clear.b [$r10]
- bcs 1b
- clearf p
- ret
- movu.b $r11,$r10
- .size cris_spin_trylock, . - cris_spin_trylock
|