aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>1999-12-14 09:48:11 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>1999-12-14 09:48:11 +0100
commitd5191c94d1d39034ed20410b4544869083c53b4a (patch)
treeb5972418921992c66858970eb6aed3c07c2c63b0
parent50438485c67d49091897e7689b4623e38cf29bd8 (diff)
downloadgcc-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++/ChangeLog5
-rw-r--r--libstdc++/std/bastring.h9
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));
}