summaryrefslogtreecommitdiffstats
path: root/src/corelib
diff options
context:
space:
mode:
authorBradley T. Hughes <bradley.hughes@nokia.com>2012-02-03 09:37:48 +0100
committerQt by Nokia <qt-info@nokia.com>2012-02-03 15:09:03 +0100
commit0797676329a08694efe02f5bd2023db864a75981 (patch)
tree56837fa0cea0edf07098df4fdf5df042e4198da3 /src/corelib
parent67729d05d02b9c782e6d8e17255c571caf1a6a2b (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')
-rw-r--r--src/corelib/arch/i386/arch.pri4
-rw-r--r--src/corelib/arch/i386/qatomic_i386.s103
-rw-r--r--src/corelib/arch/qatomic_i386.h42
-rw-r--r--src/corelib/arch/qatomic_x86_64.h61
-rw-r--r--src/corelib/arch/x86_64/arch.pri4
-rw-r--r--src/corelib/arch/x86_64/qatomic_sun.s91
6 files changed, 2 insertions, 303 deletions
diff --git a/src/corelib/arch/i386/arch.pri b/src/corelib/arch/i386/arch.pri
deleted file mode 100644
index 3101dae01b..0000000000
--- a/src/corelib/arch/i386/arch.pri
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# i386 architecture
-#
-!*-g++*:!*-icc*:SOURCES += $$QT_ARCH_CPP/qatomic_i386.s
diff --git a/src/corelib/arch/i386/qatomic_i386.s b/src/corelib/arch/i386/qatomic_i386.s
deleted file mode 100644
index 08158f926b..0000000000
--- a/src/corelib/arch/i386/qatomic_i386.s
+++ /dev/null
@@ -1,103 +0,0 @@
- .text
-
- .align 4,0x90
- .globl q_atomic_test_and_set_int
-q_atomic_test_and_set_int:
- movl 4(%esp),%ecx
- movl 8(%esp),%eax
- movl 12(%esp),%edx
- lock
- cmpxchgl %edx,(%ecx)
- mov $0,%eax
- sete %al
- ret
- .align 4,0x90
- .type q_atomic_test_and_set_int,@function
- .size q_atomic_test_and_set_int,.-q_atomic_test_and_set_int
-
- .align 4,0x90
- .globl q_atomic_test_and_set_ptr
-q_atomic_test_and_set_ptr:
- movl 4(%esp),%ecx
- movl 8(%esp),%eax
- movl 12(%esp),%edx
- lock
- cmpxchgl %edx,(%ecx)
- mov $0,%eax
- sete %al
- ret
- .align 4,0x90
- .type q_atomic_test_and_set_ptr,@function
- .size q_atomic_test_and_set_ptr,.-q_atomic_test_and_set_ptr
-
- .align 4,0x90
- .globl q_atomic_increment
-q_atomic_increment:
- movl 4(%esp), %ecx
- lock
- incl (%ecx)
- mov $0,%eax
- setne %al
- ret
- .align 4,0x90
- .type q_atomic_increment,@function
- .size q_atomic_increment,.-q_atomic_increment
-
- .align 4,0x90
- .globl q_atomic_decrement
-q_atomic_decrement:
- movl 4(%esp), %ecx
- lock
- decl (%ecx)
- mov $0,%eax
- setne %al
- ret
- .align 4,0x90
- .type q_atomic_decrement,@function
- .size q_atomic_decrement,.-q_atomic_decrement
-
- .align 4,0x90
- .globl q_atomic_set_int
-q_atomic_set_int:
- mov 4(%esp),%ecx
- mov 8(%esp),%eax
- xchgl %eax,(%ecx)
- ret
- .align 4,0x90
- .type q_atomic_set_int,@function
- .size q_atomic_set_int,.-q_atomic_set_int
-
- .align 4,0x90
- .globl q_atomic_set_ptr
-q_atomic_set_ptr:
- mov 4(%esp),%ecx
- mov 8(%esp),%eax
- xchgl %eax,(%ecx)
- ret
- .align 4,0x90
- .type q_atomic_set_ptr,@function
- .size q_atomic_set_ptr,.-q_atomic_set_ptr
-
- .align 4,0x90
- .globl q_atomic_fetch_and_add_int
-q_atomic_fetch_and_add_int:
- mov 4(%esp),%ecx
- mov 8(%esp),%eax
- lock
- xadd %eax,(%ecx)
- ret
- .align 4,0x90
- .type q_atomic_fetch_and_add_int,@function
- .size q_atomic_fetch_and_add_int,.-q_atomic_fetch_and_add_int
-
- .align 4,0x90
- .globl q_atomic_fetch_and_add_ptr
-q_atomic_fetch_and_add_ptr:
- mov 4(%esp),%ecx
- mov 8(%esp),%eax
- lock
- xadd %eax,(%ecx)
- ret
- .align 4,0x90
- .type q_atomic_fetch_and_add_ptr,@function
- .size q_atomic_fetch_and_add_ptr,.-q_atomic_fetch_and_add_ptr
diff --git a/src/corelib/arch/qatomic_i386.h b/src/corelib/arch/qatomic_i386.h
index 9354971219..6fec561177 100644
--- a/src/corelib/arch/qatomic_i386.h
+++ b/src/corelib/arch/qatomic_i386.h
@@ -345,47 +345,7 @@ template <> struct QBasicAtomicOps<8>: QGenericAtomicOps<QBasicAtomicOps<8> >
#define Q_ATOMIC_INT64_FETCH_AND_ADD_IS_NOT_NATIVE
#else
-
-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, int 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));
-}
+# error "This compiler for i386 is not supported"
#endif
QT_END_NAMESPACE
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
diff --git a/src/corelib/arch/x86_64/arch.pri b/src/corelib/arch/x86_64/arch.pri
deleted file mode 100644
index 4145b7b133..0000000000
--- a/src/corelib/arch/x86_64/arch.pri
+++ /dev/null
@@ -1,4 +0,0 @@
-#
-# AMD64 architecture
-#
-solaris-cc*:SOURCES += $$QT_ARCH_CPP/qatomic_sun.s
diff --git a/src/corelib/arch/x86_64/qatomic_sun.s b/src/corelib/arch/x86_64/qatomic_sun.s
deleted file mode 100644
index 37969e61cb..0000000000
--- a/src/corelib/arch/x86_64/qatomic_sun.s
+++ /dev/null
@@ -1,91 +0,0 @@
- .code64
-
- .globl q_atomic_increment
- .type q_atomic_increment,@function
- .section .text, "ax"
- .align 16
-q_atomic_increment:
- lock
- incl (%rdi)
- setne %al
- ret
- .size q_atomic_increment,.-q_atomic_increment
-
- .globl q_atomic_decrement
- .type q_atomic_decrement,@function
- .section .text, "ax"
- .align 16
-q_atomic_decrement:
- lock
- decl (%rdi)
- setne %al
- ret
- .size q_atomic_decrement,.-q_atomic_decrement
-
- .globl q_atomic_test_and_set_int
- .type q_atomic_test_and_set_int, @function
- .section .text, "ax"
- .align 16
-q_atomic_test_and_set_int:
- movl %esi,%eax
- lock
- cmpxchgl %edx,(%rdi)
- movl $0,%eax
- sete %al
- ret
- .size q_atomic_test_and_set_int, . - q_atomic_test_and_set_int
-
- .globl q_atomic_set_int
- .type q_atomic_set_int,@function
- .section .text, "ax"
- .align 16
-q_atomic_set_int:
- xchgl %esi,(%rdi)
- movl %esi,%eax
- ret
- .size q_atomic_set_int,.-q_atomic_set_int
-
- .globl q_atomic_fetch_and_add_int
- .type q_atomic_fetch_and_add_int,@function
- .section .text, "ax"
- .align 16
-q_atomic_fetch_and_add_int:
- lock
- xaddl %esi,(%rdi)
- movl %esi, %eax
- ret
- .size q_atomic_fetch_and_add_int,.-q_atomic_fetch_and_add_int
-
- .globl q_atomic_test_and_set_ptr
- .type q_atomic_test_and_set_ptr, @function
- .section .text, "ax"
- .align 16
-q_atomic_test_and_set_ptr:
- movq %rsi,%rax
- lock
- cmpxchgq %rdx,(%rdi)
- movq $0, %rax
- sete %al
- ret
- .size q_atomic_test_and_set_ptr, . - q_atomic_test_and_set_ptr
-
- .globl q_atomic_set_ptr
- .type q_atomic_set_ptr,@function
- .section .text, "ax"
- .align 16
-q_atomic_set_ptr:
- xchgq %rsi,(%rdi)
- movq %rsi,%rax
- ret
- .size q_atomic_set_ptr,.-q_atomic_set_ptr
-
- .globl q_atomic_fetch_and_add_ptr
- .type q_atomic_fetch_and_add_ptr,@function
- .section .text, "ax"
- .align 16
-q_atomic_fetch_and_add_ptr:
- lock
- xaddq %rsi,(%rdi)
- movq %rsi,%rax
- ret
- .size q_atomic_fetch_and_add_ptr,.-q_atomic_fetch_and_add_ptr