summaryrefslogtreecommitdiff
path: root/libatomic/config/powerpc/host-config.h
diff options
context:
space:
mode:
Diffstat (limited to 'libatomic/config/powerpc/host-config.h')
-rw-r--r--libatomic/config/powerpc/host-config.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/libatomic/config/powerpc/host-config.h b/libatomic/config/powerpc/host-config.h
new file mode 100644
index 00000000000..5447c8393e0
--- /dev/null
+++ b/libatomic/config/powerpc/host-config.h
@@ -0,0 +1,24 @@
+/* Avoiding the synchronizations are a good thing. */
+#define WANT_SPECIALCASE_RELAXED
+#define WANT_SPECIALCASE_ACQREL
+
+/* Glibc, at least, uses lwsync (aka acq_rel) in its pthread mutex
+ implementation. If the user is asking for seq_cst (aka hwsync),
+ this is insufficient. */
+
+static inline void __attribute__((always_inline, artificial))
+pre_seq_barrier(int model)
+{
+ if (model == __ATOMIC_SEQ_CST)
+ __atomic_thread_fence (__ATOMIC_SEQ_CST);
+}
+
+static inline void __attribute__((always_inline, artificial))
+post_seq_barrier(int model)
+{
+ pre_seq_barrier(model);
+}
+
+#define pre_post_seq_barrier 1
+
+#include_next <host-config.h>