Index: i386/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/i386/atomicity.h,v retrieving revision 1.5 diff -u -d -b -w -u -p -r1.5 atomicity.h --- i386/atomicity.h 29 Apr 2003 21:57:39 -0000 1.5 +++ i386/atomicity.h 24 May 2003 20:45:01 -0000 @@ -51,7 +51,7 @@ __exchange_and_add (volatile _Atomic_wor /* 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); Index: i486/atomicity.h =================================================================== RCS file: /cvs/gcc/gcc/libstdc++-v3/config/cpu/i486/atomicity.h,v retrieving revision 1.2 diff -u -d -b -w -u -p -r1.2 atomicity.h --- i486/atomicity.h 2 Jan 2003 22:48:20 -0000 1.2 +++ i486/atomicity.h 24 May 2003 20:45:01 -0000 @@ -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"); }