2011-10-19 15:48:45 +00:00
|
|
|
diff -up tbb40_20110809oss/include/tbb/machine/linux_ia32.h\~ tbb40_20110809oss/include/tbb/machine/linux_ia32.h
|
|
|
|
--- tbb40_20110809oss/include/tbb/machine/linux_ia32.h~ 2011-08-24 15:51:56.000000000 +0200
|
|
|
|
+++ tbb40_20110809oss/include/tbb/machine/linux_ia32.h 2011-10-18 15:04:01.994271994 +0200
|
|
|
|
@@ -42,7 +42,14 @@
|
|
|
|
#define __TBB_control_consistency_helper() __TBB_compiler_fence()
|
2011-07-26 14:41:37 +00:00
|
|
|
#define __TBB_acquire_consistency_helper() __TBB_compiler_fence()
|
|
|
|
#define __TBB_release_consistency_helper() __TBB_compiler_fence()
|
|
|
|
-#define __TBB_full_memory_fence() __asm__ __volatile__("mfence": : :"memory")
|
2011-07-26 15:22:46 +00:00
|
|
|
+#define __TBB_full_memory_fence() __TBB_full_memory_fence_imp
|
|
|
|
+inline void __TBB_full_memory_fence_imp() {
|
2011-07-26 14:41:37 +00:00
|
|
|
+ int tmp;
|
|
|
|
+ __asm__ __volatile__("xchg %0,%0"
|
|
|
|
+ : "=r"(tmp)
|
|
|
|
+ : "r"(tmp)
|
|
|
|
+ : "memory");
|
|
|
|
+}
|
|
|
|
|
|
|
|
#if __TBB_ICC_ASM_VOLATILE_BROKEN
|
|
|
|
#define __TBB_VOLATILE
|
|
|
|
|
2011-10-19 15:48:45 +00:00
|
|
|
Diff finished. Tue Oct 18 15:04:09 2011
|