diff options
author | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-02 18:38:32 +0000 |
---|---|---|
committer | bkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-06-02 18:38:32 +0000 |
commit | 3d7352f3ec22d521020fca5954d7f0940024dac6 (patch) | |
tree | e79df46115727918a39143461314e30e19239fc1 /libstdc++-v3 | |
parent | ff7023d7299b146fd2638f6da5084500ca3dc332 (diff) | |
download | gcc-3d7352f3ec22d521020fca5954d7f0940024dac6.tar.gz |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@67343 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libstdc++-v3')
-rw-r--r-- | libstdc++-v3/ChangeLog | 11 | ||||
-rw-r--r-- | libstdc++-v3/config/cpu/i386/atomicity.h | 2 | ||||
-rw-r--r-- | libstdc++-v3/config/cpu/i486/atomicity.h | 4 |
3 files changed, 13 insertions, 4 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 7e204bc4c1b..0848e64d020 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -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> diff --git a/libstdc++-v3/config/cpu/i386/atomicity.h b/libstdc++-v3/config/cpu/i386/atomicity.h index ac9f7705bbb..d619dbb99ce 100644 --- a/libstdc++-v3/config/cpu/i386/atomicity.h +++ b/libstdc++-v3/config/cpu/i386/atomicity.h @@ -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); diff --git a/libstdc++-v3/config/cpu/i486/atomicity.h b/libstdc++-v3/config/cpu/i486/atomicity.h index 73dedf10d9d..7c65fab678e 100644 --- a/libstdc++-v3/config/cpu/i486/atomicity.h +++ b/libstdc++-v3/config/cpu/i486/atomicity.h @@ -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"); } |