diff options
Diffstat (limited to 'src/corelib/arch')
-rw-r--r-- | src/corelib/arch/qatomic_alpha.h | 13 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_armv5.h | 15 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_armv6.h | 7 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_armv7.h | 5 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_bfin.h | 13 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_bootstrap.h | 7 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_cxx11.h | 5 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_gcc.h | 6 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_ia64.h | 41 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_integrity.h | 13 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_mips.h | 7 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_msvc.h | 6 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_power.h | 13 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_s390.h | 13 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_sh4a.h | 7 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_sparc.h | 13 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_unix.h | 6 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_vxworks.h | 18 | ||||
-rw-r--r-- | src/corelib/arch/qatomic_x86.h | 7 | ||||
-rw-r--r-- | src/corelib/arch/sparc/arch.pri | 2 | ||||
-rw-r--r-- | src/corelib/arch/sparc/qatomic_sparc.cpp | 2 |
21 files changed, 112 insertions, 107 deletions
diff --git a/src/corelib/arch/qatomic_alpha.h b/src/corelib/arch/qatomic_alpha.h index b842859336..71cb112d47 100644 --- a/src/corelib/arch/qatomic_alpha.h +++ b/src/corelib/arch/qatomic_alpha.h @@ -44,10 +44,17 @@ #include <QtCore/qoldbasicatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE +#if 0 +// silence syncqt warnings +QT_END_NAMESPACE +QT_END_HEADER + +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing +#endif + #define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE inline bool QBasicAtomicInt::isReferenceCountingNative() @@ -517,6 +524,4 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueTo QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_ALPHA_H diff --git a/src/corelib/arch/qatomic_armv5.h b/src/corelib/arch/qatomic_armv5.h index cdb9c8f979..e0a50b3c24 100644 --- a/src/corelib/arch/qatomic_armv5.h +++ b/src/corelib/arch/qatomic_armv5.h @@ -45,15 +45,12 @@ #include <QtCore/qgenericatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE #if 0 // silence syncqt warnings QT_END_NAMESPACE -QT_END_HEADER - +#pragma qt_sync_skip_header_check #pragma qt_sync_stop_processing #endif @@ -167,12 +164,20 @@ __asm T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL template<> template <typename T> inline T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) Q_DECL_NOTHROW { +#if defined(__thumb__) + register T originalValue; + do { + originalValue = _q_value; + } while (_q_cmpxchg(originalValue, newValue, &_q_value) != 0); + return originalValue; +#else T originalValue; asm volatile("swp %0,%2,[%3]" : "=&r"(originalValue), "=m" (_q_value) : "r"(newValue), "r"(&_q_value) : "cc", "memory"); return originalValue; +#endif } #endif // Q_CC_RVCT @@ -190,6 +195,4 @@ T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveTy QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_ARMV5_H diff --git a/src/corelib/arch/qatomic_armv6.h b/src/corelib/arch/qatomic_armv6.h index 38ab1983d6..7f5939e391 100644 --- a/src/corelib/arch/qatomic_armv6.h +++ b/src/corelib/arch/qatomic_armv6.h @@ -45,15 +45,12 @@ #include <QtCore/qgenericatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE #if 0 // silence syncqt warnings QT_END_NAMESPACE -QT_END_HEADER - +#pragma qt_sync_skip_header_check #pragma qt_sync_stop_processing #endif @@ -729,6 +726,4 @@ void QBasicAtomicOps<size>::orderedMemoryFence(const T &) Q_DECL_NOTHROW QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_ARMV6_H diff --git a/src/corelib/arch/qatomic_armv7.h b/src/corelib/arch/qatomic_armv7.h index fc5dbc9175..1929ae0ab3 100644 --- a/src/corelib/arch/qatomic_armv7.h +++ b/src/corelib/arch/qatomic_armv7.h @@ -54,11 +54,12 @@ #if 0 // silence syncqt warnings -QT_BEGIN_HEADER QT_BEGIN_NAMESPACE QT_END_NAMESPACE -QT_END_HEADER + +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing #endif #endif // QATOMIC_ARMV7_H diff --git a/src/corelib/arch/qatomic_bfin.h b/src/corelib/arch/qatomic_bfin.h index 24c9ea77e1..79519308a4 100644 --- a/src/corelib/arch/qatomic_bfin.h +++ b/src/corelib/arch/qatomic_bfin.h @@ -44,10 +44,17 @@ #include <QtCore/qoldbasicatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE +#if 0 +// silence syncqt warnings +QT_END_NAMESPACE +QT_END_HEADER + +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing +#endif + #define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_NOT_NATIVE inline bool QBasicAtomicInt::isReferenceCountingNative() @@ -340,6 +347,4 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueTo QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_BFIN_H diff --git a/src/corelib/arch/qatomic_bootstrap.h b/src/corelib/arch/qatomic_bootstrap.h index 5b2a2f86fd..160e0abdf3 100644 --- a/src/corelib/arch/qatomic_bootstrap.h +++ b/src/corelib/arch/qatomic_bootstrap.h @@ -45,15 +45,12 @@ #include <QtCore/qgenericatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE #if 0 // silence syncqt warnings QT_END_NAMESPACE -QT_END_HEADER - +#pragma qt_sync_skip_header_check #pragma qt_sync_stop_processing #endif @@ -98,6 +95,4 @@ template <typename T> struct QAtomicOps: QGenericAtomicOps<QAtomicOps<T> > QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_BOOTSTRAP_H diff --git a/src/corelib/arch/qatomic_cxx11.h b/src/corelib/arch/qatomic_cxx11.h index f7a7ba4295..3119edaf45 100644 --- a/src/corelib/arch/qatomic_cxx11.h +++ b/src/corelib/arch/qatomic_cxx11.h @@ -45,14 +45,12 @@ #include <QtCore/qgenericatomic.h> #include <atomic> -QT_BEGIN_HEADER QT_BEGIN_NAMESPACE #if 0 // silence syncqt warnings QT_END_NAMESPACE -QT_END_HEADER - +#pragma qt_sync_skip_header_check #pragma qt_sync_stop_processing #endif @@ -247,6 +245,5 @@ template <typename T> struct QAtomicOps #endif QT_END_NAMESPACE -QT_END_HEADER #endif // QATOMIC_CXX0X_H diff --git a/src/corelib/arch/qatomic_gcc.h b/src/corelib/arch/qatomic_gcc.h index 0940ed082f..bd296053e5 100644 --- a/src/corelib/arch/qatomic_gcc.h +++ b/src/corelib/arch/qatomic_gcc.h @@ -44,14 +44,12 @@ #include <QtCore/qgenericatomic.h> -QT_BEGIN_HEADER QT_BEGIN_NAMESPACE #if 0 // silence syncqt warnings QT_END_NAMESPACE -QT_END_HEADER - +#pragma qt_sync_skip_header_check #pragma qt_sync_stop_processing #endif @@ -132,6 +130,4 @@ template <typename T> struct QAtomicOps: QGenericAtomicOps<QAtomicOps<T> > }; QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_GCC_H diff --git a/src/corelib/arch/qatomic_ia64.h b/src/corelib/arch/qatomic_ia64.h index 1a5259aa09..ed72036076 100644 --- a/src/corelib/arch/qatomic_ia64.h +++ b/src/corelib/arch/qatomic_ia64.h @@ -45,15 +45,12 @@ #include <QtCore/qgenericatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE #if 0 // silence syncqt warnings QT_END_NAMESPACE -QT_END_HEADER - +#pragma qt_sync_skip_header_check #pragma qt_sync_stop_processing #endif @@ -222,28 +219,28 @@ inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue) inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue) { register int expectedValueCopy = expectedValue; - return (static_cast<int>(_InterlockedCompareExchange(&_q_value, - newValue, - expectedValueCopy)) - == expectedValue); + return (static_cast<int>(_InterlockedCompareExchange(&_q_value, + newValue, + expectedValueCopy)) + == expectedValue); } inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue) { register int expectedValueCopy = expectedValue; - return (static_cast<int>(_InterlockedCompareExchange_acq(reinterpret_cast<volatile uint *>(&_q_value), - newValue, - expectedValueCopy)) - == expectedValue); + return (static_cast<int>(_InterlockedCompareExchange_acq(reinterpret_cast<volatile uint *>(&_q_value), + newValue, + expectedValueCopy)) + == expectedValue); } inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue) { register int expectedValueCopy = expectedValue; - return (static_cast<int>(_InterlockedCompareExchange_rel(reinterpret_cast<volatile uint *>(&_q_value), - newValue, - expectedValueCopy)) - == expectedValue); + return (static_cast<int>(_InterlockedCompareExchange_rel(reinterpret_cast<volatile uint *>(&_q_value), + newValue, + expectedValueCopy)) + == expectedValue); } inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd) @@ -289,10 +286,10 @@ template <typename T> Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue) { register T *expectedValueCopy = expectedValue; - return (_InterlockedCompareExchangePointer(reinterpret_cast<void * volatile*>(&_q_value), - newValue, - expectedValueCopy) - == expectedValue); + return (_InterlockedCompareExchangePointer(reinterpret_cast<void * volatile*>(&_q_value), + newValue, + expectedValueCopy) + == expectedValue); } template <typename T> @@ -304,7 +301,7 @@ Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValu }; x = &_q_value; register T *expectedValueCopy = expectedValue; - return (_InterlockedCompareExchange64_acq(p, quintptr(newValue), quintptr(expectedValueCopy)) + return (_InterlockedCompareExchange64_acq(p, quintptr(newValue), quintptr(expectedValueCopy)) == quintptr(expectedValue)); } @@ -1089,6 +1086,4 @@ T QBasicAtomicOps<size>::fetchAndAddOrdered(T &_q_value, typename QAtomicAdditiv QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_IA64_H diff --git a/src/corelib/arch/qatomic_integrity.h b/src/corelib/arch/qatomic_integrity.h index 50654e6713..f8cfc8ce5b 100644 --- a/src/corelib/arch/qatomic_integrity.h +++ b/src/corelib/arch/qatomic_integrity.h @@ -45,10 +45,17 @@ #include <QtCore/qoldbasicatomic.h> #include <INTEGRITY.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE +#if 0 +// silence syncqt warnings +QT_END_NAMESPACE +QT_END_HEADER + +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing +#endif + #define qt_i2addr(a) reinterpret_cast<Address *>(const_cast<int *>(a)) #define qt_p2addr(a) reinterpret_cast<Address *>(const_cast<void *>(a)) #define qt_addr(a) reinterpret_cast<Address>(a) @@ -284,7 +291,5 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueTo QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_INTEGRITY_H diff --git a/src/corelib/arch/qatomic_mips.h b/src/corelib/arch/qatomic_mips.h index 98ac928184..7716750332 100644 --- a/src/corelib/arch/qatomic_mips.h +++ b/src/corelib/arch/qatomic_mips.h @@ -45,15 +45,12 @@ #include <QtCore/qgenericatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE #if 0 // silence syncqt warnings QT_END_NAMESPACE -QT_END_HEADER - +#pragma qt_sync_skip_header_check #pragma qt_sync_stop_processing #endif @@ -362,6 +359,4 @@ T QBasicAtomicOps<8>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveTy QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_MIPS_H diff --git a/src/corelib/arch/qatomic_msvc.h b/src/corelib/arch/qatomic_msvc.h index 58b2f30bb7..4f91e3d9da 100644 --- a/src/corelib/arch/qatomic_msvc.h +++ b/src/corelib/arch/qatomic_msvc.h @@ -214,14 +214,12 @@ extern "C" { //////////////////////////////////////////////////////////////////////////////////////////////////// -QT_BEGIN_HEADER QT_BEGIN_NAMESPACE #if 0 // silence syncqt warnings QT_END_NAMESPACE -QT_END_HEADER - +#pragma qt_sync_skip_header_check #pragma qt_sync_stop_processing #endif @@ -383,6 +381,4 @@ inline T *QAtomicOps<T *>::fetchAndAddRelaxed(T *&_q_value, qptrdiff valueToAdd) #undef QT_INTERLOCKED_EXCHANGE_ADD_POINTER QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_MSVC_H diff --git a/src/corelib/arch/qatomic_power.h b/src/corelib/arch/qatomic_power.h index 5e4de3f9fd..ad1c619d56 100644 --- a/src/corelib/arch/qatomic_power.h +++ b/src/corelib/arch/qatomic_power.h @@ -44,10 +44,17 @@ #include <QtCore/qoldbasicatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE +#if 0 +// silence syncqt warnings +QT_END_NAMESPACE +QT_END_HEADER + +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing +#endif + #define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE inline bool QBasicAtomicInt::isReferenceCountingNative() @@ -511,6 +518,4 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddOrdered(qptrdiff valueTo QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_POWER_H diff --git a/src/corelib/arch/qatomic_s390.h b/src/corelib/arch/qatomic_s390.h index c24c243c03..0469f44e5f 100644 --- a/src/corelib/arch/qatomic_s390.h +++ b/src/corelib/arch/qatomic_s390.h @@ -44,10 +44,17 @@ #include <QtCore/qoldbasicatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE +#if 0 +// silence syncqt warnings +QT_END_NAMESPACE +QT_END_HEADER + +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing +#endif + #define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE inline bool QBasicAtomicInt::isReferenceCountingNative() @@ -423,6 +430,4 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueTo QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_S390_H diff --git a/src/corelib/arch/qatomic_sh4a.h b/src/corelib/arch/qatomic_sh4a.h index 0fd96d1f0f..08f75e44f2 100644 --- a/src/corelib/arch/qatomic_sh4a.h +++ b/src/corelib/arch/qatomic_sh4a.h @@ -44,14 +44,15 @@ #include <QtCore/qoldbasicatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE QT_END_NAMESPACE -QT_END_HEADER +#if 0 +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing +#endif #define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE diff --git a/src/corelib/arch/qatomic_sparc.h b/src/corelib/arch/qatomic_sparc.h index 1bf625fbb1..8aea33ce85 100644 --- a/src/corelib/arch/qatomic_sparc.h +++ b/src/corelib/arch/qatomic_sparc.h @@ -44,10 +44,17 @@ #include <QtCore/qoldbasicatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE +#if 0 +// silence syncqt warnings +QT_END_NAMESPACE +QT_END_HEADER + +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing +#endif + #if defined(_LP64) #define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_ALWAYS_NATIVE @@ -522,6 +529,4 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueTo QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_SPARC_H diff --git a/src/corelib/arch/qatomic_unix.h b/src/corelib/arch/qatomic_unix.h index 0e9c105d57..03c7d2eee8 100644 --- a/src/corelib/arch/qatomic_unix.h +++ b/src/corelib/arch/qatomic_unix.h @@ -44,14 +44,12 @@ #include <QtCore/qgenericatomic.h> -QT_BEGIN_HEADER QT_BEGIN_NAMESPACE #if 0 // silence syncqt warnings QT_END_NAMESPACE -QT_END_HEADER - +#pragma qt_sync_skip_header_check #pragma qt_sync_stop_processing #endif @@ -112,6 +110,4 @@ struct QAtomicOps<T *> : QGenericAtomicOps<QAtomicOps<T *> > }; QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_UNIX_H diff --git a/src/corelib/arch/qatomic_vxworks.h b/src/corelib/arch/qatomic_vxworks.h index a8664cf752..57e3b6a32b 100644 --- a/src/corelib/arch/qatomic_vxworks.h +++ b/src/corelib/arch/qatomic_vxworks.h @@ -42,8 +42,6 @@ #ifndef QATOMIC_VXWORKS_H #define QATOMIC_VXWORKS_H -QT_BEGIN_HEADER - #if defined(__ppc) # include <QtCore/qatomic_power.h> #else // generic implementation with taskLock() @@ -56,14 +54,28 @@ QT_BEGIN_HEADER # include <vxWorksCommon.h> # include <taskLib.h> #else +#if defined(_WRS_KERNEL) extern "C" int taskLock(); extern "C" int taskUnlock(); +#else +inline int taskLock() { return 0; } +inline int taskUnlock() { return 0; } +#endif #endif QT_BEGIN_NAMESPACE +#if 0 +// silence syncqt warnings +QT_END_NAMESPACE +QT_END_HEADER + +#pragma qt_sync_skip_header_check +#pragma qt_sync_stop_processing +#endif + #define Q_ATOMIC_INT_REFERENCE_COUNTING_IS_NOT_NATIVE inline bool QBasicAtomicInt::isReferenceCountingNative() @@ -315,6 +327,4 @@ QT_END_NAMESPACE #endif // generic implementation with taskLock() -QT_END_HEADER - #endif // QATOMIC_VXWORKS_H diff --git a/src/corelib/arch/qatomic_x86.h b/src/corelib/arch/qatomic_x86.h index 077cfd1336..f8180ad9d6 100644 --- a/src/corelib/arch/qatomic_x86.h +++ b/src/corelib/arch/qatomic_x86.h @@ -45,15 +45,12 @@ #include <QtCore/qgenericatomic.h> -QT_BEGIN_HEADER - QT_BEGIN_NAMESPACE #if 0 // silence syncqt warnings QT_END_NAMESPACE -QT_END_HEADER - +#pragma qt_sync_skip_header_check #pragma qt_sync_stop_processing #endif @@ -423,6 +420,4 @@ template <> struct QBasicAtomicOps<8>: QGenericAtomicOps<QBasicAtomicOps<8> > QT_END_NAMESPACE -QT_END_HEADER - #endif // QATOMIC_X86_H diff --git a/src/corelib/arch/sparc/arch.pri b/src/corelib/arch/sparc/arch.pri index b3ca399640..a201c83c6a 100644 --- a/src/corelib/arch/sparc/arch.pri +++ b/src/corelib/arch/sparc/arch.pri @@ -3,7 +3,7 @@ # *-64* { SOURCES += $$PWD/qatomic64.s -} +} else { SOURCES += $$PWD/qatomic32.s \ $$PWD/qatomic_sparc.cpp diff --git a/src/corelib/arch/sparc/qatomic_sparc.cpp b/src/corelib/arch/sparc/qatomic_sparc.cpp index d0a9eb8d29..8ea270e90a 100644 --- a/src/corelib/arch/sparc/qatomic_sparc.cpp +++ b/src/corelib/arch/sparc/qatomic_sparc.cpp @@ -60,7 +60,7 @@ Q_CORE_EXPORT int q_atomic_lock_int(volatile int *addr) sched_yield(); returnValue = *addr; } while (returnValue == INT_MIN); - + // try again returnValue = q_atomic_trylock_int(addr); } while (returnValue == INT_MIN); |