// Copyright 2016 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
// +build mips mipsle
#include "textflag.h"
TEXT ·spinLock(SB),NOSPLIT,$0-4
MOVW state+0(FP), R1
MOVW $1, R2
SYNC
try_lock:
MOVW R2, R3
check_again:
LL (R1), R4
BNE R4, check_again
SC R3, (R1)
BEQ R3, try_lock
SYNC
RET
TEXT ·spinUnlock(SB),NOSPLIT,$0-4
MOVW state+0(FP), R1
SYNC
MOVW R0, (R1)
SYNC
RET
|