11 #ifndef __SYS_MemoryOrder__
12 #define __SYS_MemoryOrder__
16 #if defined(FORCE_NON_SIMD)
17 #define SYSloadFence()
18 #define SYSstoreFence()
19 #define SYSmemoryFence()
21 #if defined(LINUX) && SYS_IS_GCC_GE(3, 4) && defined(__SSE2__)
22 #include <emmintrin.h>
23 #include <xmmintrin.h>
24 #elif defined(LINUX) && SYS_IS_GCC_GE(3, 4) && defined(__SSE__)
25 #include <xmmintrin.h>
26 #define SYSloadFence()
27 #define SYSmemoryFence()
29 #include <emmintrin.h>
30 #include <xmmintrin.h>
31 #elif defined(MBSD_INTEL)
32 #include <emmintrin.h>
33 #include <xmmintrin.h>
37 #define SYSloadFence()
38 #define SYSstoreFence()
39 #define SYSmemoryFence()
98 #ifndef SYSmemoryFence
Any reordering the compiler or hardware chooses to do is okay.