This source file includes following definitions.
- runtime揃atomicload
- runtime揃atomicloadp
- runtime揃xadd64
- runtime揃xchg64
#include "runtime.h"
#include "../../cmd/ld/textflag.h"
#pragma textflag NOSPLIT
uint32
runtime揃atomicload(uint32 volatile* addr)
{
return *addr;
}
#pragma textflag NOSPLIT
void*
runtime揃atomicloadp(void* volatile* addr)
{
return *addr;
}
#pragma textflag NOSPLIT
uint64
runtime揃xadd64(uint64 volatile* addr, int64 v)
{
uint64 old;
do
old = *addr;
while(!runtime揃cas64(addr, old, old+v));
return old+v;
}
#pragma textflag NOSPLIT
uint64
runtime揃xchg64(uint64 volatile* addr, uint64 v)
{
uint64 old;
do
old = *addr;
while(!runtime揃cas64(addr, old, v));
return old;
}