summaryrefslogtreecommitdiffstats
path: root/src/corelib/arch
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/arch')
-rw-r--r--src/corelib/arch/alpha/arch.pri4
-rw-r--r--src/corelib/arch/alpha/qatomic_alpha.s239
-rw-r--r--src/corelib/arch/qatomic_alpha.h126
3 files changed, 2 insertions, 367 deletions
diff --git a/src/corelib/arch/alpha/arch.pri b/src/corelib/arch/alpha/arch.pri
deleted file mode 100644
index 448a531f07..0000000000
--- a/src/corelib/arch/alpha/arch.pri
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# Alpha architecture
-#
-!*-g++*:SOURCES += $$QT_ARCH_CPP/qatomic_alpha.s
diff --git a/src/corelib/arch/alpha/qatomic_alpha.s b/src/corelib/arch/alpha/qatomic_alpha.s
deleted file mode 100644
index 3bccd12849..0000000000
--- a/src/corelib/arch/alpha/qatomic_alpha.s
+++ /dev/null
@@ -1,239 +0,0 @@
-;/****************************************************************************
-;**
-;** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-;** Contact: http://www.qt-project.org/
-;**
-;** This file is part of the QtGui module of the Qt Toolkit.
-;**
-;** $QT_BEGIN_LICENSE:LGPL$
-;** GNU Lesser General Public License Usage
-;** This file may be used under the terms of the GNU Lesser General Public
-;** License version 2.1 as published by the Free Software Foundation and
-;** appearing in the file LICENSE.LGPL included in the packaging of this
-;** file. Please review the following information to ensure the GNU Lesser
-;** General Public License version 2.1 requirements will be met:
-;** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-;**
-;** In addition, as a special exception, Nokia gives you certain additional
-;** rights. These rights are described in the Nokia Qt LGPL Exception
-;** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-;**
-;** GNU General Public License Usage
-;** Alternatively, this file may be used under the terms of the GNU General
-;** Public License version 3.0 as published by the Free Software Foundation
-;** and appearing in the file LICENSE.GPL included in the packaging of this
-;** file. Please review the following information to ensure the GNU General
-;** Public License version 3.0 requirements will be met:
-;** http://www.gnu.org/copyleft/gpl.html.
-;**
-;** Other Usage
-;** Alternatively, this file may be used in accordance with the terms and
-;** conditions contained in a signed written agreement between you and Nokia.
-;**
-;**
-;**
-;**
-;**
-;**
-;** $QT_END_LICENSE$
-;**
-;****************************************************************************/
- .set noreorder
- .set volatile
- .set noat
- .arch ev4
- .text
- .align 2
- .align 4
- .globl q_atomic_test_and_set_int
- .ent q_atomic_test_and_set_int
-q_atomic_test_and_set_int:
- .frame $30,0,$26,0
- .prologue 0
-1: ldl_l $0,0($16)
- cmpeq $0,$17,$0
- beq $0,3f
- mov $18,$0
- stl_c $0,0($16)
- beq $0,2f
- br 3f
-2: br 1b
-3: addl $31,$0,$0
- ret $31,($26),1
- .end q_atomic_test_and_set_int
- .align 2
- .align 4
- .globl q_atomic_test_and_set_acquire_int
- .ent q_atomic_test_and_set_acquire_int
-q_atomic_test_and_set_acquire_int:
- .frame $30,0,$26,0
- .prologue 0
-1: ldl_l $0,0($16)
- cmpeq $0,$17,$0
- beq $0,3f
- mov $18,$0
- stl_c $0,0($16)
- beq $0,2f
- br 3f
-2: br 1b
-3: mb
- addl $31,$0,$0
- ret $31,($26),1
- .end q_atomic_test_and_set_acquire_int
- .align 2
- .align 4
- .globl q_atomic_test_and_set_release_int
- .ent q_atomic_test_and_set_release_int
-q_atomic_test_and_set_release_int:
- .frame $30,0,$26,0
- .prologue 0
- mb
-1: ldl_l $0,0($16)
- cmpeq $0,$17,$0
- beq $0,3f
- mov $18,$0
- stl_c $0,0($16)
- beq $0,2f
- br 3f
-2: br 1b
-3: addl $31,$0,$0
- ret $31,($26),1
- .end q_atomic_test_and_set_release_int
- .align 2
- .align 4
- .globl q_atomic_test_and_set_ptr
- .ent q_atomic_test_and_set_ptr
-q_atomic_test_and_set_ptr:
- .frame $30,0,$26,0
- .prologue 0
-1: ldq_l $0,0($16)
- cmpeq $0,$17,$0
- beq $0,3f
- mov $18,$0
- stq_c $0,0($16)
- beq $0,2f
- br 3f
-2: br 1b
-3: addl $31,$0,$0
- ret $31,($26),1
- .end q_atomic_test_and_set_ptr
- .align 2
- .align 4
- .globl q_atomic_increment
- .ent q_atomic_increment
-q_atomic_increment:
- .frame $30,0,$26,0
- .prologue 0
-1: ldl_l $0,0($16)
- addl $0,1,$1
- stl_c $1,0($16)
- beq $1,2f
- br 3f
-2: br 1b
-3: addl $31,$0,$0
- cmpeq $0,$1,$0
- xor $0,1,$0
- ret $31,($26),1
- .end q_atomic_increment
- .align 2
- .align 4
- .globl q_atomic_decrement
- .ent q_atomic_decrement
-q_atomic_decrement:
- .frame $30,0,$26,0
- .prologue 0
-1: ldl_l $0,0($16)
- subl $0,1,$1
- stl_c $1,0($16)
- beq $1,2f
- br 3f
-2: br 1b
-3: addl $31,$0,$0
- cmpeq $0,1,$0
- xor $0,1,$0
- ret $31,($26),1
- .end q_atomic_decrement
- .align 2
- .align 4
- .globl q_atomic_set_int
- .ent q_atomic_set_int
-q_atomic_set_int:
- .frame $30,0,$26,0
- .prologue 0
-1: ldl_l $0,0($16)
- mov $17,$1
- stl_c $1,0($16)
- beq $1,2f
- br 3f
-2: br 1b
-3: addl $31,$0,$0
- ret $31,($26),1
- .end q_atomic_set_int
- .align 2
- .align 4
- .globl q_atomic_set_ptr
- .ent q_atomic_set_ptr
-q_atomic_set_ptr:
- .frame $30,0,$26,0
- .prologue 0
-1: ldq_l $0,0($16)
- mov $17,$1
- stq_c $1,0($16)
- beq $1,2f
- br 3f
-2: br 1b
-3: ret $31,($26),1
- .end q_atomic_set_ptr
-
- .align 2
- .align 4
- .globl q_atomic_fetch_and_add_int
- .ent q_atomic_fetch_and_add_int
-q_atomic_fetch_and_add_int:
- .frame $30,0,$26,0
- .prologue 0
-1: ldl_l $0,0($16)
- addl $0,$17,$1
- stl_c $1,0($16)
- beq $1,2f
- br 3f
-2: br 1b
-3: addl $31,$0,$0
- ret $31,($26),1
- .end q_atomic_fetch_and_add_int
-
- .align 2
- .align 4
- .globl q_atomic_fetch_and_add_acquire_int
- .ent q_atomic_fetch_and_add_acquire_int
-q_atomic_fetch_and_add_acquire_int:
- .frame $30,0,$26,0
- .prologue 0
-1: ldl_l $0,0($16)
- addl $0,$17,$1
- stl_c $1,0($16)
- beq $1,2f
- br 3f
-2: br 1b
-3: mb
- addl $31,$0,$0
- ret $31,($26),1
- .end q_atomic_fetch_and_add_acquire_int
-
- .align 2
- .align 4
- .globl q_atomic_fetch_and_add_release_int
- .ent q_atomic_fetch_and_add_release_int
-q_atomic_fetch_and_add_release_int:
- .frame $30,0,$26,0
- .prologue 0
- mb
-1: ldl_l $0,0($16)
- addl $0,$17,$1
- stl_c $1,0($16)
- beq $1,2f
- br 3f
-2: br 1b
-3: addl $31,$0,$0
- ret $31,($26),1
- .end q_atomic_fetch_and_add_release_int
diff --git a/src/corelib/arch/qatomic_alpha.h b/src/corelib/arch/qatomic_alpha.h
index 432fb62c0a..79546448e6 100644
--- a/src/corelib/arch/qatomic_alpha.h
+++ b/src/corelib/arch/qatomic_alpha.h
@@ -476,130 +476,8 @@ Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueTo
return reinterpret_cast<T *>(old);
}
-#else // !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_acquire_int(volatile int *ptr, int expected, int newval);
- Q_CORE_EXPORT int q_atomic_test_and_set_release_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 int q_atomic_fetch_and_add_acquire_int(volatile int *ptr, int value);
- Q_CORE_EXPORT int q_atomic_fetch_and_add_release_int(volatile int *ptr, int value);
-} // extern "C"
-
-inline bool QBasicAtomicInt::ref()
-{
- return q_atomic_increment(&_q_value) != 0;
-}
-
-inline bool QBasicAtomicInt::deref()
-{
- return q_atomic_decrement(&_q_value) != 0;
-}
-
-inline bool QBasicAtomicInt::testAndSetRelaxed(int expectedValue, int newValue)
-{
- return q_atomic_test_and_set_int(&_q_value, expectedValue, newValue) != 0;
-}
-
-inline bool QBasicAtomicInt::testAndSetAcquire(int expectedValue, int newValue)
-{
- return q_atomic_test_and_set_acquire_int(&_q_value, expectedValue, newValue) != 0;
-}
-
-inline bool QBasicAtomicInt::testAndSetRelease(int expectedValue, int newValue)
-{
- return q_atomic_test_and_set_release_int(&_q_value, expectedValue, newValue) != 0;
-}
-
-inline int QBasicAtomicInt::fetchAndStoreRelaxed(int newValue)
-{
- return q_atomic_set_int(&_q_value, newValue);
-}
-
-inline int QBasicAtomicInt::fetchAndStoreAcquire(int newValue)
-{
- return q_atomic_fetch_and_store_acquire_int(&_q_value, newValue);
-}
-
-inline int QBasicAtomicInt::fetchAndStoreRelease(int newValue)
-{
- return q_atomic_fetch_and_store_release_int(&_q_value, newValue);
-}
-
-inline int QBasicAtomicInt::fetchAndAddRelaxed(int valueToAdd)
-{
- return q_atomic_fetch_and_add_int(&_q_value, valueToAdd);
-}
-
-inline int QBasicAtomicInt::fetchAndAddAcquire(int valueToAdd)
-{
- return q_atomic_fetch_and_add_acquire_int(&_q_value, valueToAdd);
-}
-
-inline int QBasicAtomicInt::fetchAndAddRelease(int valueToAdd)
-{
- return q_atomic_fetch_and_add_release_int(&_q_value, valueToAdd);
-}
-
-template <typename T>
-Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelaxed(T *expectedValue, T *newValue)
-{
- return q_atomic_test_and_set_ptr(&_q_value, expectedValue, newValue) != 0;
-}
-
-template <typename T>
-Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetAcquire(T *expectedValue, T *newValue)
-{
- return q_atomic_test_and_set_acquire_ptr(&_q_value, expectedValue, newValue) != 0;
-}
-
-template <typename T>
-Q_INLINE_TEMPLATE bool QBasicAtomicPointer<T>::testAndSetRelease(T *expectedValue, T *newValue)
-{
- return q_atomic_test_and_set_release_ptr(&_q_value, expectedValue, newValue) != 0;
-}
-
-template <typename T>
-Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelaxed(T *newValue)
-{
- return reinterpret_cast<T *>(q_atomic_set_ptr(&_q_value, newValue));
-}
-
-template <typename T>
-Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *newValue)
-{
- return reinterpret_cast<T *>(q_atomic_fetch_and_store_acquire_ptr(&_q_value, newValue));
-}
-
-template <typename T>
-Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndStoreRelease(T *newValue)
-{
- return reinterpret_cast<T *>(q_atomic_fetch_and_store_release_ptr(&_q_value, newValue));
-}
-
-template <typename T>
-Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelaxed(qptrdiff valueToAdd)
-{
- return reinterpret_cast<T *>(q_atomic_fetch_and_add_ptr(&_q_value, newValue));
-}
-template <typename T>
-Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddAcquire(qptrdiff valueToAdd)
-{
- return reinterpret_cast<T *>(q_atomic_fetch_and_add_acquire_ptr(&_q_value, newValue));
-}
-
-template <typename T>
-Q_INLINE_TEMPLATE T *QBasicAtomicPointer<T>::fetchAndAddRelease(qptrdiff valueToAdd)
-{
- return reinterpret_cast<T *>(q_atomic_fetch_and_add_release_ptr(&_q_value, newValue));
-}
-
+#else
+# error "This compiler for Alpha is not supported"
#endif // Q_CC_GNU
inline bool QBasicAtomicInt::testAndSetOrdered(int expectedValue, int newValue)