Commit d5191c94 by Jakub Jelinek Committed by Jakub Jelinek

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
parent 50438485
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> 1999-11-19 Gabriel Dos Reis <dosreis@cmla.ens-cachan.fr>
* std/valarray_meta.h (_DEFINE_EXPR_UNARY_FUNCTION): Don't forget * std/valarray_meta.h (_DEFINE_EXPR_UNARY_FUNCTION): Don't forget
......
...@@ -89,14 +89,19 @@ private: ...@@ -89,14 +89,19 @@ private:
if (__val == 1) if (__val == 1)
delete this; delete this;
} }
#elif defined __sparcv9__ #elif defined __sparc_v9__
void release () void release ()
{ {
size_t __newval, __oldval = ref; size_t __newval, __oldval = ref;
do do
{ {
__newval = __oldval - 1; __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" (__oldval), "m" (ref), "r"(&(ref)), "0" (__newval)); : "r" (__oldval), "m" (ref), "r"(&(ref)), "0" (__newval));
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment