summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorivmai <ivmai>2011-03-18 22:39:38 +0000
committerIvan Maidanski <ivmai@mail.ru>2011-07-25 16:03:26 +0400
commit34af2ded91bd02169909c332f11f08e379478c5c (patch)
tree4c6ac5b8276a7dd66cf31448675351c352f732ef
parent97b63ffb6ee2900ddcc76323393441e64abed5d0 (diff)
downloadlibatomic_ops-34af2ded91bd02169909c332f11f08e379478c5c.tar.gz
2011-03-18 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops/sysdeps/gcc/arm.h: Test for all known pre-v6 ARM chips instead of all the currently existing v6+ ones.
-rw-r--r--ChangeLog5
-rw-r--r--src/atomic_ops/sysdeps/gcc/arm.h17
2 files changed, 14 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 70a183e..0c8838a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2011-03-18 Ivan Maidanski <ivmai@mail.ru>
+
+ * src/atomic_ops/sysdeps/gcc/arm.h: Test for all the known pre-v6
+ ARM chips instead of all the currently existing v6+ ones.
+
2011-03-13 Ivan Maidanski <ivmai@mail.ru>
* src/atomic_ops/sysdeps/emul_cas.h: Fix a typo in a comment;
diff --git a/src/atomic_ops/sysdeps/gcc/arm.h b/src/atomic_ops/sysdeps/gcc/arm.h
index e44f431..094505a 100644
--- a/src/atomic_ops/sysdeps/gcc/arm.h
+++ b/src/atomic_ops/sysdeps/gcc/arm.h
@@ -31,12 +31,13 @@
* and do not need to access CP15 for ensuring a DMB
*/
-/* NEC LE-IT: gcc has no way to easily check the arm architecture
- * but defines only one of __ARM_ARCH_x__ to be true */
-#if defined(__ARM_ARCH_6__) || defined(__ARM_ARCH_6J__) \
- || defined(__ARM_ARCH_6K__) || defined(__ARM_ARCH_6ZK__) \
- || defined(__ARM_ARCH_7__) || defined(__ARM_ARCH_7A__) \
- || defined(__ARM_ARCH_7M__) || defined(__ARM_ARCH_7R__)
+/* NEC LE-IT: gcc has no way to easily check the arm architecture */
+/* but it defines only one of __ARM_ARCH_x__ to be true. */
+#if !defined(__ARM_ARCH_2__) && !defined(__ARM_ARCH_3__) \
+ && !defined(__ARM_ARCH_3M__) && !defined(__ARM_ARCH_4__) \
+ && !defined(__ARM_ARCH_4T__) && !defined(__ARM_ARCH_5__) \
+ && !defined(__ARM_ARCH_5E__) && !defined(__ARM_ARCH_5T__) \
+ && !defined(__ARM_ARCH_5TE__) && !defined(__ARM_ARCH_5TEJ__)
#include "../standard_ao_double_t.h"
@@ -44,8 +45,8 @@ AO_INLINE void
AO_nop_full(void)
{
#ifndef AO_UNIPROCESSOR
- /* issue an data memory barrier (keeps ordering of memory transactions */
- /* before and after this operation) */
+ /* Issue a data memory barrier (keeps ordering of memory */
+ /* transactions before and after this operation). */
unsigned int dest=0;
__asm__ __volatile__("mcr p15,0,%0,c7,c10,5"
: "=&r"(dest) : : "memory");