38 #ifndef BLOCXX_MEMORY_BARRIER_HPP_INCLUDE_GUARD_ 39 #define BLOCXX_MEMORY_BARRIER_HPP_INCLUDE_GUARD_ 40 #include "blocxx/BLOCXX_config.h" 56 __asm__ __volatile__(
"mb");
58 #elif defined(__HP_aCC) && defined(BLOCXX_ARCH_IA64) 61 #elif defined(BLOCXX_ARCH_IA64) 63 __asm__ __volatile__(
"mf");
65 #elif defined(BLOCXX_ARCH_PPC) || defined(BLOCXX_ARCH_PPC64) 67 __asm__ __volatile__ (
"sync" : : :
"memory");
69 #elif defined(BLOCXX_ARCH_S390) || defined(BLOCXX_ARCH_S390X) 71 __asm__ __volatile__ (
"bcr 15,0" : : :
"memory" );
73 #elif defined(BLOCXX_ARCH_X86_64) || defined(BLOCXX_ARCH_X86) || defined(BLOCXX_ARCH_HPPA20) || defined(BLOCXX_ARCH_SPARC) 75 #else // if defined(BLOCXX_ARCH_UNKNOWN) 76 #error "Unknown architecture. readWriteMemoryBarrier() must be updated"
void readWriteMemoryBarrier()
This function is solely for the use of libblocxx threading primitives.