summaryrefslogtreecommitdiff
path: root/includes/stg/SMP.h
diff options
context:
space:
mode:
Diffstat (limited to 'includes/stg/SMP.h')
-rw-r--r--includes/stg/SMP.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/includes/stg/SMP.h b/includes/stg/SMP.h
index df62e56016..4162058d3b 100644
--- a/includes/stg/SMP.h
+++ b/includes/stg/SMP.h
@@ -156,6 +156,9 @@ xchg(StgPtr p, StgWord w)
" strex %1, %2, [%3]\n"
" teq %1, #1\n"
" beq 1b\n"
+#if !defined(PRE_ARMv7)
+ " dmb\n"
+#endif
: "=&r" (result), "=&r" (tmp)
: "r" (w), "r" (p)
: "memory"
@@ -225,6 +228,9 @@ cas(StgVolatilePtr p, StgWord o, StgWord n)
" teq %0, #1\n"
" it eq\n"
" beq 1b\n"
+#if !defined(PRE_ARMv7)
+ " dmb\n"
+#endif
: "=&r"(tmp), "=&r"(result)
: "r"(p), "r"(o), "r"(n)
: "cc","memory");