aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--libstdc++-v3/ChangeLog6
-rw-r--r--libstdc++-v3/config/cpu/cris/atomicity.h15
-rw-r--r--libstdc++-v3/configure.host3
3 files changed, 23 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index a6a5d0f..30d4644 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,9 @@
+2007-12-15 Hans-Peter Nilsson <hp@axis.com>
+
+ * 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.
+
2007-12-15 Benjamin Kosnik <bkoz@redhat.com>
Paolo Carlini <pcarlini@suse.de>
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"
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
index 1742128..c994b5e 100644
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -94,6 +94,9 @@ case "${host_cpu}" in
arm* | xscale | ep9312)
try_cpu=arm
;;
+ crisv32)
+ try_cpu=cris
+ ;;
i[567]86 | x86_64)
try_cpu=i486
;;