diff options
author | Bradley T. Hughes <bradley.hughes@nokia.com> | 2012-02-03 09:37:48 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-02-03 15:09:03 +0100 |
commit | 0797676329a08694efe02f5bd2023db864a75981 (patch) | |
tree | 56837fa0cea0edf07098df4fdf5df042e4198da3 /src/corelib/arch/qatomic_x86_64.h | |
parent | 67729d05d02b9c782e6d8e17255c571caf1a6a2b (diff) |
Remove src/corelib/arch/i386/* and src/corelib/arch/x86_64/*
We do not want to support out-of-line QAtomic* implementations. Remove
these from the i386 and x86_64 implementations.
Change-Id: Ib6a9614b7b11bf6bccc9054b177357afd83e33e6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/corelib/arch/qatomic_x86_64.h')
-rw-r--r-- | src/corelib/arch/qatomic_x86_64.h | 61 |
1 files changed, 1 insertions, 60 deletions
diff --git a/src/corelib/arch/qatomic_x86_64.h b/src/corelib/arch/qatomic_x86_64.h index 9045a642ea..f2fa8ce5f4 100644 --- a/src/corelib/arch/qatomic_x86_64.h +++ b/src/corelib/arch/qatomic_x86_64.h @@ -345,66 +345,7 @@ T QBasicAtomicOps<1>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveTy #define Q_ATOMIC_INT64_FETCH_AND_ADD_IS_WAIT_FREE #else // !Q_CC_INTEL && !Q_CC_GNU - -extern "C" { - Q_CORE_EXPORT int q_atomic_test_and_set_int(volatile int *ptr, int expected, int newval); - Q_CORE_EXPORT int q_atomic_test_and_set_ptr(volatile void *ptr, void *expected, void *newval); - Q_CORE_EXPORT int q_atomic_increment(volatile int *ptr); - Q_CORE_EXPORT int q_atomic_decrement(volatile int *ptr); - Q_CORE_EXPORT int q_atomic_set_int(volatile int *ptr, int newval); - Q_CORE_EXPORT void *q_atomic_set_ptr(volatile void *ptr, void *newval); - Q_CORE_EXPORT int q_atomic_fetch_and_add_int(volatile int *ptr, int value); - Q_CORE_EXPORT void *q_atomic_fetch_and_add_ptr(volatile void *ptr, qptrdiff value); -} // extern "C" - -template<> template<typename T> inline -bool QBasicAtomicOps<4>::ref(T &_q_value) -{ - return q_atomic_increment((int *)&_q_value) != 0; -} - -template<> template <typename T> inline -bool QBasicAtomicOps<4>::deref(T &_q_value) -{ - return q_atomic_decrement((int *)&_q_value) != 0; -} - -template<> template <typename T> inline -bool QBasicAtomicOps<4>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) -{ - return q_atomic_test_and_set_int((int*)&_q_value, int(expectedValue), int(newValue)); -} - -template<> template <typename T> inline -T QBasicAtomicOps<4>::fetchAndStoreRelaxed(T &_q_value, T newValue) -{ - return T(q_atomic_set_int((int*)&_q_value, int(newValue)); -} - -template<> template <typename T> inline -T QBasicAtomicOps<4>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) -{ - return T(q_atomic_fetch_and_add_int((int *)&_q_value, valueToAdd * QAtomicAdditiveType<T>::AddScale)); -} - -template<> template <typename T> inline -bool QBasicAtomicOps<8>::testAndSetRelaxed(T &_q_value, T expectedValue, T newValue) -{ - return q_atomic_test_and_set_ptr(&_q_value, (void*)expectedValue, (void*)newValue); -} - -template<> template <typename T> inline -T QBasicAtomicOps<8>::fetchAndStoreRelaxed(T &_q_value, T newValue) -{ - return T(q_atomic_set_ptr(&_q_value, (void*)newValue); -} - -template<> template <typename T> inline -T QBasicAtomicOps<8>::fetchAndAddRelaxed(T &_q_value, typename QAtomicAdditiveType<T>::AdditiveT valueToAdd) -{ - return T(q_atomic_fetch_and_add_int(&_q_value, valueToAdd * QAtomicAdditiveType<T>::AddScale)); -} - +# error "This compiler for x86_64 is not supported" #endif // Q_CC_GNU || Q_CC_INTEL QT_END_NAMESPACE |