1219b2ee8SDavid du Colombier/* 2f53d914dSDavid du Colombier * mips user level lock code 3219b2ee8SDavid du Colombier */ 4219b2ee8SDavid du Colombier 5219b2ee8SDavid du Colombier#define LL(base, rt) WORD $((060<<26)|((base)<<21)|((rt)<<16)) 6219b2ee8SDavid du Colombier#define SC(base, rt) WORD $((070<<26)|((base)<<21)|((rt)<<16)) 7219b2ee8SDavid du Colombier#define NOOP WORD $0x27 8219b2ee8SDavid du Colombier#define COP3 WORD $(023<<26) 9219b2ee8SDavid du Colombier 10219b2ee8SDavid du Colombier TEXT C_3ktas(SB),$0 11219b2ee8SDavid du Colombier MOVW R1, R21 12219b2ee8SDavid du Colombierbtas: 13219b2ee8SDavid du Colombier MOVW R21, R1 14219b2ee8SDavid du Colombier MOVB R0, 1(R1) 15219b2ee8SDavid du Colombier NOOP 16219b2ee8SDavid du Colombier COP3 17219b2ee8SDavid du Colombier BLTZ R1, btas 18219b2ee8SDavid du Colombier RET 19219b2ee8SDavid du Colombier 20*51f48f69SDavid du Colombier TEXT tas(SB), $0 21219b2ee8SDavid du Colombier TEXT C_4ktas(SB), $0 22219b2ee8SDavid du Colombier MOVW R1, R2 /* address of key */ 23219b2ee8SDavid du Colombiertas1: 24219b2ee8SDavid du Colombier MOVW $1, R3 25219b2ee8SDavid du Colombier LL(2, 1) 26219b2ee8SDavid du Colombier NOOP 27219b2ee8SDavid du Colombier SC(2, 3) 28219b2ee8SDavid du Colombier NOOP 29219b2ee8SDavid du Colombier BEQ R3, tas1 30219b2ee8SDavid du Colombier RET 31