summaryrefslogtreecommitdiff
path: root/libstdc++-v3
diff options
context:
space:
mode:
authorbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-02 18:38:32 +0000
committerbkoz <bkoz@138bc75d-0d04-0410-961f-82ee72b054a4>2003-06-02 18:38:32 +0000
commit3d7352f3ec22d521020fca5954d7f0940024dac6 (patch)
treee79df46115727918a39143461314e30e19239fc1 /libstdc++-v3
parentff7023d7299b146fd2638f6da5084500ca3dc332 (diff)
downloadgcc-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/ChangeLog11
-rw-r--r--libstdc++-v3/config/cpu/i386/atomicity.h2
-rw-r--r--libstdc++-v3/config/cpu/i486/atomicity.h4
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");
}