提交 bee92013 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

oops: still need compiler barriers!

上级 1153b3c3
......@@ -6,6 +6,7 @@
#define _GLIBCXX_BEGIN_EXTERN_C extern "C" {
#define _GLIBCXX_END_EXTERN_C }
#define __glibcxx_assert(x)
#define __barrier() do { __asm__ __volatile__("" ::: "memory"); } while (0)
#define _GLIBCXX_ATOMIC_BUILTINS_1 1
#define _GLIBCXX_ATOMIC_BUILTINS_2 1
......
......@@ -285,8 +285,10 @@ namespace __atomic2
__glibcxx_assert(__m != memory_order_acq_rel);
// __sync_synchronize();
__barrier();
__int_type __ret = _M_i;
// __sync_synchronize();
__barrier();
return __ret;
}
......@@ -297,8 +299,10 @@ namespace __atomic2
__glibcxx_assert(__m != memory_order_acq_rel);
// __sync_synchronize();
__barrier();
__int_type __ret = _M_i;
// __sync_synchronize();
__barrier();
return __ret;
}
......@@ -577,8 +581,10 @@ namespace __atomic2
__glibcxx_assert(__m != memory_order_acq_rel);
// __sync_synchronize();
__barrier();
__pointer_type __ret = _M_p;
// __sync_synchronize();
__barrier();
return __ret;
}
......@@ -589,8 +595,10 @@ namespace __atomic2
__glibcxx_assert(__m != memory_order_acq_rel);
// __sync_synchronize();
__barrier();
__pointer_type __ret = _M_p;
// __sync_synchronize();
__barrier();
return __ret;
}
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论