From 8a39ee361feb9bf46d728ff1ba4f07ca1d9610b1 Mon Sep 17 00:00:00 2001 From: Michael Stapelberg Date: Thu, 19 Jun 2014 09:22:53 +0200 Subject: Imported Upstream version 1.3 --- src/pkg/runtime/atomic_arm.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/pkg/runtime/atomic_arm.c') diff --git a/src/pkg/runtime/atomic_arm.c b/src/pkg/runtime/atomic_arm.c index b1e97b27d..d914475c7 100644 --- a/src/pkg/runtime/atomic_arm.c +++ b/src/pkg/runtime/atomic_arm.c @@ -41,6 +41,19 @@ runtime·xchg(uint32 volatile* addr, uint32 v) } } +#pragma textflag NOSPLIT +void* +runtime·xchgp(void* volatile* addr, void* v) +{ + void *old; + + for(;;) { + old = *addr; + if(runtime·casp(addr, old, v)) + return old; + } +} + #pragma textflag NOSPLIT void runtime·procyield(uint32 cnt) -- cgit v1.2.3