/* * Copyright (c) 2016, ARM Limited and Contributors. All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause */ #include .globl spin_lock .globl spin_unlock func spin_lock mov r2, #1 1: ldrex r1, [r0] cmp r1, #0 wfene strexeq r1, r2, [r0] cmpeq r1, #0 bne 1b dmb bx lr endfunc spin_lock func spin_unlock mov r1, #0 stl r1, [r0] bx lr endfunc spin_unlock