blob: aeebc8f2ff001435650bb205416b1670e12808a4 [file] [log] [blame]
// 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