diff options
author | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2013-03-20 13:46:57 +0100 |
---|---|---|
committer | Oswald Buddenhagen <oswald.buddenhagen@digia.com> | 2013-03-20 13:49:28 +0100 |
commit | 76c0be34cd4ff4564693162fa7528463e23ce9d8 (patch) | |
tree | f165b7bc319548fb0082365411a871028f92e89e /src/corelib/arch/qatomic_armv5.h | |
parent | 27b4fe96b59e9e63d1e570e802c072e9afdfb2d4 (diff) | |
parent | 36cb3f3f655a9090c82de609010cbfb88651a0f3 (diff) |
Merge branch 'dev' into stable
This starts Qt 5.1 release cycle
Conflicts:
src/gui/text/qfontdatabase.cpp
src/gui/text/qharfbuzz_copy_p.h
src/widgets/kernel/qapplication.cpp
src/widgets/kernel/qcoreapplication.cpp
Change-Id: I72fbf83ab3c2206aeea1b089428b0fc2a89bd62b
Diffstat (limited to 'src/corelib/arch/qatomic_armv5.h')
-rw-r--r-- | src/corelib/arch/qatomic_armv5.h | 15 |
1 files changed, 9 insertions, 6 deletions
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 |