summaryrefslogtreecommitdiffstats
path: root/mdk-stage1/dietlibc/alpha/__testandset.S
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 */