aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/config/cpu/cris
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2007-12-15 21:33:45 +0000
committerHans-Peter Nilsson <hp@gcc.gnu.org>2007-12-15 21:33:45 +0000
commit0678581243475bc169cfaaa260a6521c264c60d8 (patch)
treed42b6aa303c417983f15f36558b1f60b1689171d /libstdc++-v3/config/cpu/cris
parentc7e30cf2d1de6bdf267cfc0828abececd7ac9b03 (diff)
downloadgcc-0678581243475bc169cfaaa260a6521c264c60d8.zip
gcc-0678581243475bc169cfaaa260a6521c264c60d8.tar.gz
gcc-0678581243475bc169cfaaa260a6521c264c60d8.tar.bz2
configure.host (try_cpu settings): Set try_cpu=cris for crisv32.
* configure.host (try_cpu settings): Set try_cpu=cris for crisv32. * config/cpu/cris/atomicity.h (__exchange_and_add) [__CRIS_arch_version >= 32]: Add support for CRIS v32. From-SVN: r130963
Diffstat (limited to 'libstdc++-v3/config/cpu/cris')
-rw-r--r--libstdc++-v3/config/cpu/cris/atomicity.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/libstdc++-v3/config/cpu/cris/atomicity.h b/libstdc++-v3/config/cpu/cris/atomicity.h
index da16a1a..56dd0ed 100644
--- a/libstdc++-v3/config/cpu/cris/atomicity.h
+++ b/libstdc++-v3/config/cpu/cris/atomicity.h
@@ -37,7 +37,20 @@ _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx)
int __tmp;
_Atomic_word __result;
-#if (__CRIS_arch_version >= 10)
+#if (__CRIS_arch_version >= 32)
+ __asm__ __volatile__ (" clearf p \n"
+ "0: \n"
+ " move.d %4,%2 \n"
+ " move.d [%3],%0 \n"
+ " add.d %0,%2 \n"
+ " ax \n"
+ " move.d %2,[%3] \n"
+ " bcs 0b \n"
+ " clearf p \n"
+ : "=&r" (__result), "=Q" (*__mem), "=&r" (__tmp)
+ : "r" (__mem), "g" (__val), "Q" (*__mem)
+ : "memory");
+#elif (__CRIS_arch_version >= 10)
__asm__ __volatile__ (" clearf \n"
"0: \n"
" move.d %4,%2 \n"