From d5191c94d1d39034ed20410b4544869083c53b4a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 14 Dec 1999 09:48:11 +0100 Subject: [PATCH] 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 --- libstdc++/ChangeLog | 5 +++++ libstdc++/std/bastring.h | 9 +++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/libstdc++/ChangeLog b/libstdc++/ChangeLog index 33bf6d51081..83218653e4f 100644 --- a/libstdc++/ChangeLog +++ b/libstdc++/ChangeLog @@ -1,3 +1,8 @@ +1999-12-13 Jakub Jelinek + + * std/bastring.h (class basic_string::Rep): Use proper defines + for sparc v9 and fix asm for sparc64. + 1999-11-19 Gabriel Dos Reis * std/valarray_meta.h (_DEFINE_EXPR_UNARY_FUNCTION): Don't forget diff --git a/libstdc++/std/bastring.h b/libstdc++/std/bastring.h index 70891262e96..7f0b1bf7e23 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)); } -- 2.30.2