1/* 2 * mips user level lock code 3 */ 4 5#define LL(base, rt) WORD $((060<<26)|((base)<<21)|((rt)<<16)) 6#define SC(base, rt) WORD $((070<<26)|((base)<<21)|((rt)<<16)) 7#define NOOP WORD $0x27 8 9 TEXT _tas(SB), $0 10 TEXT C_4ktas(SB), $0 11 MOVV R1, R2 /* address of key */ 12tas1: 13 MOVW $1, R3 14 LL(2, 1) 15 NOOP 16 SC(2, 3) 17 NOOP 18 BEQ R3, tas1 19 RET 20