diff -urN qt-everywhere-opensource-src-4.8.2.orig/src/corelib/arch/qatomic_x86_64.h qt-everywhere-opensource-src-4.8.2/src/corelib/arch/qatomic_x86_64.h --- qt-everywhere-opensource-src-4.8.2.orig/src/corelib/arch/qatomic_x86_64.h 2012-06-13 15:24:49.248025784 +0200 +++ qt-everywhere-opensource-src-4.8.2/src/corelib/arch/qatomic_x86_64.h 2012-06-13 15:28:30.550259125 +0200 @@ -170,7 +170,7 @@ { unsigned char ret; asm volatile("lock\n" - "cmpxchgq %3,%2\n" + "cmpxchg %3,%2\n" "sete %1\n" : "=a" (newValue), "=qm" (ret), "+m" (_q_value) : "r" (newValue), "0" (expectedValue) @@ -181,7 +181,7 @@ template Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndStoreOrdered(T *newValue) { - asm volatile("xchgq %0,%1" + asm volatile("xchg %0,%1" : "=r" (newValue), "+m" (_q_value) : "0" (newValue) : "memory"); @@ -192,7 +192,7 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer::fetchAndAddOrdered(qptrdiff valueToAdd) { asm volatile("lock\n" - "xaddq %0,%1" + "xadd %0,%1" : "=r" (valueToAdd), "+m" (_q_value) : "0" (valueToAdd * sizeof(T)) : "memory");