… | |
… | |
164 | #ifndef ECB_MEMORY_FENCE |
164 | #ifndef ECB_MEMORY_FENCE |
165 | #if ECB_GCC_VERSION(2,5) || defined __INTEL_COMPILER || (__llvm__ && __GNUC__) || __SUNPRO_C >= 0x5110 || __SUNPRO_CC >= 0x5110 |
165 | #if ECB_GCC_VERSION(2,5) || defined __INTEL_COMPILER || (__llvm__ && __GNUC__) || __SUNPRO_C >= 0x5110 || __SUNPRO_CC >= 0x5110 |
166 | #if __i386 || __i386__ |
166 | #if __i386 || __i386__ |
167 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("lock; orb $0, -1(%%esp)" : : : "memory") |
167 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("lock; orb $0, -1(%%esp)" : : : "memory") |
168 | #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("" : : : "memory") |
168 | #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("" : : : "memory") |
169 | #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("") |
169 | #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("" : : : "memory") |
170 | #elif ECB_GCC_AMD64 |
170 | #elif ECB_GCC_AMD64 |
171 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mfence" : : : "memory") |
171 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("mfence" : : : "memory") |
172 | #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("" : : : "memory") |
172 | #define ECB_MEMORY_FENCE_ACQUIRE __asm__ __volatile__ ("" : : : "memory") |
173 | #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("") |
173 | #define ECB_MEMORY_FENCE_RELEASE __asm__ __volatile__ ("" : : : "memory") |
174 | #elif __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__ |
174 | #elif __powerpc__ || __ppc__ || __powerpc64__ || __ppc64__ |
175 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("sync" : : : "memory") |
175 | #define ECB_MEMORY_FENCE __asm__ __volatile__ ("sync" : : : "memory") |
176 | #elif defined __ARM_ARCH_2__ \ |
176 | #elif defined __ARM_ARCH_2__ \ |
177 | || defined __ARM_ARCH_3__ || defined __ARM_ARCH_3M__ \ |
177 | || defined __ARM_ARCH_3__ || defined __ARM_ARCH_3M__ \ |
178 | || defined __ARM_ARCH_4__ || defined __ARM_ARCH_4T__ \ |
178 | || defined __ARM_ARCH_4__ || defined __ARM_ARCH_4T__ \ |