blob: c5ef812419fbc25f6d227f5b39f45b2737475f5f (
plain)
1
2
3
4
5
6
7
8
9
10
11
|
.text
.align 2
.global __testandsets
.type __testandsets,@function
__testandset:
ldq_l $0, 0($16) /* load lock */
bne $0,1f /* ok there is a lock... */
lda $0, 1($31) /* load a 1 to register 0 */
stq_c $0, 0($16) /* write lock is locked :) */
beq $0,__testandset /* oops someone changed MY lock */
1: ret $31, ($26), 0x01 /* return */
|