From 0678581243475bc169cfaaa260a6521c264c60d8 Mon Sep 17 00:00:00 2001 From: Hans-Peter Nilsson Date: Sat, 15 Dec 2007 21:33:45 +0000 Subject: [PATCH] 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 --- libstdc++-v3/ChangeLog | 6 ++++++ libstdc++-v3/config/cpu/cris/atomicity.h | 15 ++++++++++++++- libstdc++-v3/configure.host | 3 +++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index a6a5d0f812c..30d464433a3 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,9 @@ +2007-12-15 Hans-Peter Nilsson + + * 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 Paolo Carlini diff --git a/libstdc++-v3/config/cpu/cris/atomicity.h b/libstdc++-v3/config/cpu/cris/atomicity.h index da16a1aacee..56dd0edcdd5 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 17421286f06..c994b5e7145 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 ;;