re PR libstdc++/9815 (atomicity.h - fails to compile with -O3 -masm=intel)
2003-06-02 Andrew Pinski <pinskia@physics.uc.edu> PR libstdc++/9815 * config/cpu/i386/atomicity.h (__exchange_and_add): add intel asm case to asm. * config/cpu/i486/atomicity.h (__exchange_and_add): Likewise. (__atomic_add): likewise. From-SVN: r67343
This commit is contained in:
parent
62929dd980
commit
159ca3a3a4
3 changed files with 13 additions and 4 deletions
|
@ -1,3 +1,11 @@
|
|||
2003-06-02 Andrew Pinski <pinskia@physics.uc.edu>
|
||||
|
||||
PR libstdc++/9815
|
||||
* config/cpu/i386/atomicity.h (__exchange_and_add): add intel
|
||||
asm case to asm.
|
||||
* config/cpu/i486/atomicity.h (__exchange_and_add): Likewise.
|
||||
(__atomic_add): likewise.
|
||||
|
||||
2003-06-02 Paolo Carlini <pcarlini@unitus.it>
|
||||
|
||||
* include/bits/sstream.tcc (pbackfail): Minor clean up and
|
||||
|
@ -86,7 +94,8 @@
|
|||
|
||||
2003-05-27 Jonathan Wakely <redi@gcc.gnu.org>
|
||||
|
||||
* include/std/std_istream.h, include/std/std_ostream.h: Typo in comment.
|
||||
* include/std/std_istream.h, include/std/std_ostream.h: Typo in
|
||||
comment.
|
||||
|
||||
2003-05-26 Benjamin Kosnik <bkoz@redhat.com>
|
||||
|
||||
|
|
|
@ -51,7 +51,7 @@ __exchange_and_add (volatile _Atomic_word *__mem, int __val)
|
|||
|
||||
/* obtain the atomic exchange/add spin lock */
|
||||
do {
|
||||
__asm__ __volatile__ ("xchgl %0,%1"
|
||||
__asm__ __volatile__ ("xchg{l} {%0,%1|%1,%0}"
|
||||
: "+m" (__Atomicity_lock<0>::_S_atomicity_lock),
|
||||
"+r" (__tmp));
|
||||
} while (__tmp);
|
||||
|
|
|
@ -37,7 +37,7 @@ __attribute__ ((__unused__))
|
|||
__exchange_and_add (volatile _Atomic_word *__mem, int __val)
|
||||
{
|
||||
register _Atomic_word __result;
|
||||
__asm__ __volatile__ ("lock; xaddl %0,%1"
|
||||
__asm__ __volatile__ ("lock; xadd{l} {%0,%1|%1,%0}"
|
||||
: "=r" (__result), "+m" (*__mem)
|
||||
: "0" (__val)
|
||||
: "memory");
|
||||
|
@ -48,7 +48,7 @@ static inline void
|
|||
__attribute__ ((__unused__))
|
||||
__atomic_add (volatile _Atomic_word* __mem, int __val)
|
||||
{
|
||||
__asm__ __volatile__ ("lock; addl %1,%0"
|
||||
__asm__ __volatile__ ("lock; add{l} {%1,%0|%0,%1}"
|
||||
: "+m" (*__mem) : "ir" (__val) : "memory");
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue