aboutsummaryrefslogtreecommitdiff
path: root/src/os/unix/ngx_gcc_atomic_ppc.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/os/unix/ngx_gcc_atomic_ppc.h')
-rw-r--r--src/os/unix/ngx_gcc_atomic_ppc.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/os/unix/ngx_gcc_atomic_ppc.h b/src/os/unix/ngx_gcc_atomic_ppc.h
index 147c44f31..68d244e41 100644
--- a/src/os/unix/ngx_gcc_atomic_ppc.h
+++ b/src/os/unix/ngx_gcc_atomic_ppc.h
@@ -67,6 +67,13 @@ ngx_atomic_fetch_add(ngx_atomic_t *value, ngx_atomic_int_t add)
return res;
}
+
+#if (NGX_SMP)
+#define ngx_memory_barrier() __asm__ volatile ("lwsync\n" ::: "memory")
+#else
+#define ngx_memory_barrier() __asm__ volatile ("" ::: "memory")
+#endif
+
#else
static ngx_inline ngx_atomic_uint_t
@@ -117,8 +124,6 @@ ngx_atomic_fetch_add(ngx_atomic_t *value, ngx_atomic_int_t add)
return res;
}
-#endif
-
#if (NGX_SMP)
#define ngx_memory_barrier() __asm__ volatile ("sync\n" ::: "memory")
@@ -126,4 +131,7 @@ ngx_atomic_fetch_add(ngx_atomic_t *value, ngx_atomic_int_t add)
#define ngx_memory_barrier() __asm__ volatile ("" ::: "memory")
#endif
+#endif
+
+
#define ngx_cpu_pause()