blob: 40606e935a08328a72d979f81bff645360e111b9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <sys/regdef.h>
#include <sys/asm.h>
/*
* lock from r4000 book
*/
LEAF(canlock)
.set noreorder
1:
ll t0,0(a0) /* a0 is argument */
or t1, t0, 1
sc t1,0(a0)
beq t1,zero,1b
nop
j $31 /* lock held */
xor v0, t0, 1
.set reorder
END(canlock)
|