17dd7cddfSDavid du Colombier/* 2696c1e60SDavid du Colombier * mips user level lock code 37dd7cddfSDavid du Colombier */ 47dd7cddfSDavid du Colombier 57dd7cddfSDavid du Colombier#define LL(base, rt) WORD $((060<<26)|((base)<<21)|((rt)<<16)) 67dd7cddfSDavid du Colombier#define SC(base, rt) WORD $((070<<26)|((base)<<21)|((rt)<<16)) 77dd7cddfSDavid du Colombier#define NOOP WORD $0x27 87dd7cddfSDavid du Colombier#define COP3 WORD $(023<<26) 97dd7cddfSDavid du Colombier 107dd7cddfSDavid du Colombier TEXT C_3ktas(SB),$0 117dd7cddfSDavid du Colombier MOVW R1, R21 127dd7cddfSDavid du Colombierbtas: 137dd7cddfSDavid du Colombier MOVW R21, R1 147dd7cddfSDavid du Colombier MOVB R0, 1(R1) 157dd7cddfSDavid du Colombier NOOP 167dd7cddfSDavid du Colombier COP3 177dd7cddfSDavid du Colombier BLTZ R1, btas 187dd7cddfSDavid du Colombier RET 197dd7cddfSDavid du Colombier 20*51f48f69SDavid du Colombier TEXT _tas(SB), $0 217dd7cddfSDavid du Colombier TEXT C_4ktas(SB), $0 227dd7cddfSDavid du Colombier MOVW R1, R2 /* address of key */ 237dd7cddfSDavid du Colombiertas1: 247dd7cddfSDavid du Colombier MOVW $1, R3 257dd7cddfSDavid du Colombier LL(2, 1) 267dd7cddfSDavid du Colombier NOOP 277dd7cddfSDavid du Colombier SC(2, 3) 287dd7cddfSDavid du Colombier NOOP 297dd7cddfSDavid du Colombier BEQ R3, tas1 307dd7cddfSDavid du Colombier RET 31