summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Maidanski <ivmai@mail.ru>2016-04-21 10:59:18 +0300
committerIvan Maidanski <ivmai@mail.ru>2016-04-21 10:59:18 +0300
commit49b9286a8c304283ece186f1fabb27b587e7a9a6 (patch)
treeae26aad45adeca9d136243746b7e0810e787bb60
parent30c0456f7568b4b9e6212f1a05b863dd18c4e471 (diff)
downloadlibatomic_ops-49b9286a8c304283ece186f1fabb27b587e7a9a6.tar.gz
Do not force GCC atomic intrinsics usage if AO_PREFER_BUILTIN_ATOMICS
The macro should only prevent usage of assembly completely but only if at least some of GCC atomic intrinsics are available. * src/atomic_ops/sysdeps/gcc/arm.h (AO_PREFER_BUILTIN_ATOMICS): Remove from the condition whether to include generic.h. * src/atomic_ops/sysdeps/gcc/mips.h (AO_PREFER_BUILTIN_ATOMICS): Likewise.
-rw-r--r--src/atomic_ops/sysdeps/gcc/arm.h4
-rw-r--r--src/atomic_ops/sysdeps/gcc/mips.h4
2 files changed, 2 insertions, 6 deletions
diff --git a/src/atomic_ops/sysdeps/gcc/arm.h b/src/atomic_ops/sysdeps/gcc/arm.h
index 0f7c958..84a96e1 100644
--- a/src/atomic_ops/sysdeps/gcc/arm.h
+++ b/src/atomic_ops/sysdeps/gcc/arm.h
@@ -17,9 +17,7 @@
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8) \
|| __clang_major__ > 3 \
- || (__clang_major__ == 3 && __clang_minor__ >= 5) \
- || (defined(AO_PREFER_BUILTIN_ATOMICS) \
- && __GNUC__ == 4 && __GNUC_MINOR__ >= 2)) \
+ || (__clang_major__ == 3 && __clang_minor__ >= 5)) \
&& !defined(AO_DISABLE_GCC_ATOMICS)
/* Probably, it could be enabled even for earlier gcc/clang versions. */
# define AO_GCC_ATOMIC_TEST_AND_SET
diff --git a/src/atomic_ops/sysdeps/gcc/mips.h b/src/atomic_ops/sysdeps/gcc/mips.h
index 429ab07..191ad26 100644
--- a/src/atomic_ops/sysdeps/gcc/mips.h
+++ b/src/atomic_ops/sysdeps/gcc/mips.h
@@ -25,9 +25,7 @@
#if (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 9) \
|| __clang_major__ > 3 \
- || (__clang_major__ == 3 && __clang_minor__ >= 5) \
- || (defined(AO_PREFER_BUILTIN_ATOMICS) \
- && __GNUC__ == 4 && __GNUC_MINOR__ >= 2)) \
+ || (__clang_major__ == 3 && __clang_minor__ >= 5)) \
&& !defined(AO_DISABLE_GCC_ATOMICS)
/* Probably, it could be enabled even for earlier gcc/clang versions. */