diff options
author | Jakub Jelinek <jakub@redhat.com> | 1999-12-14 09:48:11 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 1999-12-14 09:48:11 +0100 |
commit | d5191c94d1d39034ed20410b4544869083c53b4a (patch) | |
tree | b5972418921992c66858970eb6aed3c07c2c63b0 | |
parent | 50438485c67d49091897e7689b4623e38cf29bd8 (diff) | |
download | gcc-d5191c94d1d39034ed20410b4544869083c53b4a.zip gcc-d5191c94d1d39034ed20410b4544869083c53b4a.tar.gz gcc-d5191c94d1d39034ed20410b4544869083c53b4a.tar.bz2 |
bastring.h (class basic_string::Rep): Use proper defines for sparc v9 and fix asm for sparc64.
* std/bastring.h (class basic_string::Rep): Use proper defines
for sparc v9 and fix asm for sparc64.
From-SVN: r30906
-rw-r--r-- | libstdc++/ChangeLog | 5 | ||||
-rw-r--r-- | libstdc++/std/bastring.h | 9 |
2 files changed, 12 insertions, 2 deletions
diff --git a/libstdc++/ChangeLog b/libstdc++/ChangeLog index 33bf6d5..8321865 100644 --- a/libstdc++/ChangeLog +++ b/libstdc++/ChangeLog @@ -1,3 +1,8 @@ +1999-12-13 Jakub Jelinek <jakub@redhat.com> + + * std/bastring.h (class basic_string::Rep): Use proper defines + for sparc v9 and fix asm for sparc64. + 1999-11-19 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr> * std/valarray_meta.h (_DEFINE_EXPR_UNARY_FUNCTION): Don't forget diff --git a/libstdc++/std/bastring.h b/libstdc++/std/bastring.h index 7089126..7f0b1bf 100644 --- a/libstdc++/std/bastring.h +++ b/libstdc++/std/bastring.h @@ -89,14 +89,19 @@ private: if (__val == 1) delete this; } -#elif defined __sparcv9__ +#elif defined __sparc_v9__ void release () { size_t __newval, __oldval = ref; do { __newval = __oldval - 1; - __asm__ ("cas [%4], %2, %0" + __asm__ ( +#ifdef __arch64__ + "casx [%4], %2, %0" +#else + "cas [%4], %2, %0" +#endif : "=r" (__oldval), "=m" (ref) : "r" (__oldval), "m" (ref), "r"(&(ref)), "0" (__newval)); } |