summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config.tests/unix/iwmmxt/iwmmxt.cpp48
-rw-r--r--config.tests/unix/iwmmxt/iwmmxt.pro4
-rwxr-xr-xconfigure18
-rw-r--r--mkspecs/common/gcc-base.conf1
-rw-r--r--mkspecs/common/qcc-base.conf1
-rw-r--r--mkspecs/win32-g++/qmake.conf1
-rw-r--r--src/corelib/global/qcompilerdetection.h1
-rw-r--r--src/corelib/tools/qsimd.cpp22
-rw-r--r--src/corelib/tools/qsimd_p.h24
-rw-r--r--src/gui/painting/painting.pri1
-rw-r--r--src/gui/painting/qdrawhelper.cpp8
-rw-r--r--src/gui/painting/qdrawhelper_iwmmxt.cpp158
-rw-r--r--src/gui/painting/qdrawhelper_x86_p.h7
-rw-r--r--tools/configure/configureapp.cpp19
14 files changed, 8 insertions, 305 deletions
diff --git a/config.tests/unix/iwmmxt/iwmmxt.cpp b/config.tests/unix/iwmmxt/iwmmxt.cpp
deleted file mode 100644
index 908c6f835b..0000000000
--- a/config.tests/unix/iwmmxt/iwmmxt.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the config.tests of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, 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, Digia gives you certain additional
-** rights. These rights are described in the Digia 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.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <mmintrin.h>
-
-int main(int, char**)
-{
- _mm_unpackhi_pi16(_mm_setzero_si64(), _mm_setzero_si64());
- return 0;
-}
diff --git a/config.tests/unix/iwmmxt/iwmmxt.pro b/config.tests/unix/iwmmxt/iwmmxt.pro
deleted file mode 100644
index f463176d5c..0000000000
--- a/config.tests/unix/iwmmxt/iwmmxt.pro
+++ /dev/null
@@ -1,4 +0,0 @@
-SOURCES = iwmmxt.cpp
-CONFIG -= x11 qt
-isEmpty(QMAKE_CFLAGS_IWMMXT):error("This compiler does not support iWMMXt")
-else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_IWMMXT
diff --git a/configure b/configure
index 8b95c805b7..4a317638d2 100755
--- a/configure
+++ b/configure
@@ -683,7 +683,6 @@ CFG_AVX2=auto
CFG_REDUCE_RELOCATIONS=auto
CFG_ACCESSIBILITY=auto
CFG_ACCESSIBILITY_ATSPI_BRIDGE=no # will be enabled depending on dbus and accessibility being enabled
-CFG_IWMMXT=no
CFG_NEON=auto
CFG_MIPS_DSP=auto
CFG_MIPS_DSPR2=auto
@@ -1569,9 +1568,6 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
- iwmmxt)
- CFG_IWMMXT="yes"
- ;;
mips_dsp)
if [ "$VAL" = "no" ]; then
CFG_MIPS_DSP="$VAL"
@@ -4117,16 +4113,6 @@ if [ "${CFG_AVX2}" = "auto" ]; then
fi
fi
-# check iWMMXt support
-if [ "$CFG_IWMMXT" = "yes" ]; then
- compileTest unix/iwmmxt "iwmmxt"
- if [ $? != "0" ]; then
- echo "The iWMMXt functionality test failed!"
- echo " Please make sure your compiler supports iWMMXt intrinsics!"
- exit 1
- fi
-fi
-
# check Neon support
if [ "$CFG_NEON" = "auto" ]; then
# no compile test, just check what the compiler has
@@ -5651,7 +5637,6 @@ fi
[ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2"
[ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx"
[ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2"
-[ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt"
[ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon"
if [ "$CFG_ARCH" = "mips" ]; then
[ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp"
@@ -6079,7 +6064,6 @@ fi
echo "" >>"$outpath/src/corelib/global/qconfig.h.new"
echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new"
for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \
- IWMMXT \
MIPS_DSP MIPS_DSPR2; do
eval "VAL=\$CFG_$SUBARCH"
case "$VAL" in
@@ -6524,7 +6508,7 @@ if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
echo " SSE4.1/SSE4.2 ........ ${CFG_SSE4_1}/${CFG_SSE4_2}"
echo " AVX/AVX2 ............. ${CFG_AVX}/${CFG_AVX2}"
elif [ "$CFG_ARCH" = "arm" ]; then
- echo " iWMMXt/Neon .......... ${CFG_IWMMXT}/${CFG_NEON}"
+ echo " Neon ................. ${CFG_NEON}"
elif [ "$CFG_ARCH" = "mips" ]; then
echo " DSP/DSPr2 ............ ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}"
fi
diff --git a/mkspecs/common/gcc-base.conf b/mkspecs/common/gcc-base.conf
index 06d87d7b36..a149f4d907 100644
--- a/mkspecs/common/gcc-base.conf
+++ b/mkspecs/common/gcc-base.conf
@@ -79,5 +79,4 @@ QMAKE_CFLAGS_SSE4_1 += -msse4.1
QMAKE_CFLAGS_SSE4_2 += -msse4.2
QMAKE_CFLAGS_AVX += -mavx
QMAKE_CFLAGS_AVX2 += -mavx2
-QMAKE_CFLAGS_IWMMXT += -mcpu=iwmmxt
QMAKE_CFLAGS_NEON += -mfpu=neon
diff --git a/mkspecs/common/qcc-base.conf b/mkspecs/common/qcc-base.conf
index 32645e539a..122f940ec3 100644
--- a/mkspecs/common/qcc-base.conf
+++ b/mkspecs/common/qcc-base.conf
@@ -29,7 +29,6 @@ QMAKE_CFLAGS_SSE4_1 += -msse4.1
QMAKE_CFLAGS_SSE4_2 += -msse4.2
QMAKE_CFLAGS_AVX += -mavx
QMAKE_CFLAGS_AVX2 += -mavx2
-QMAKE_CFLAGS_IWMMXT += -mcpu=iwmmxt
QMAKE_CFLAGS_NEON += -mfpu=neon
QMAKE_CXXFLAGS += $$QMAKE_CFLAGS -lang-c++
diff --git a/mkspecs/win32-g++/qmake.conf b/mkspecs/win32-g++/qmake.conf
index 01c8ab9bc3..9f0188be80 100644
--- a/mkspecs/win32-g++/qmake.conf
+++ b/mkspecs/win32-g++/qmake.conf
@@ -40,7 +40,6 @@ QMAKE_CFLAGS_SSE4_1 = -msse4.1
QMAKE_CFLAGS_SSE4_2 = -msse4.2
QMAKE_CFLAGS_AVX = -mavx
QMAKE_CFLAGS_AVX2 = -mavx2
-QMAKE_CFLAGS_IWMMXT = -mcpu=iwmmxt
QMAKE_CFLAGS_NEON = -mfpu=neon
QMAKE_CXX = $${CROSS_COMPILE}g++
diff --git a/src/corelib/global/qcompilerdetection.h b/src/corelib/global/qcompilerdetection.h
index 02365449e5..3bf1cc0cbb 100644
--- a/src/corelib/global/qcompilerdetection.h
+++ b/src/corelib/global/qcompilerdetection.h
@@ -1069,7 +1069,6 @@
# undef QT_COMPILER_SUPPORTS_AVX2
#endif
#if !defined(Q_PROCESSOR_ARM)
-# undef QT_COMPILER_SUPPORTS_IWMMXT
# undef QT_COMPILER_SUPPORTS_NEON
#endif
#if !defined(Q_PROCESSOR_MIPS)
diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp
index 64f13cf1e7..0271e2ff68 100644
--- a/src/corelib/tools/qsimd.cpp
+++ b/src/corelib/tools/qsimd.cpp
@@ -54,14 +54,13 @@
# include <intrin.h>
# endif
# endif
-#elif defined(Q_OS_LINUX) && (defined(Q_PROCESSOR_ARM) || defined(Q_PROCESSOR_MIPS_32) || defined(QT_COMPILER_SUPPORTS_IWMMXT))
+#elif defined(Q_OS_LINUX) && (defined(Q_PROCESSOR_ARM) || defined(Q_PROCESSOR_MIPS_32))
#include "private/qcore_unix_p.h"
// the kernel header definitions for HWCAP_*
// (the ones we need/may need anyway)
// copied from <asm/hwcap.h> (ARM)
-#define HWCAP_IWMMXT 512
#define HWCAP_CRUNCH 1024
#define HWCAP_THUMBEE 2048
#define HWCAP_NEON 4096
@@ -86,8 +85,6 @@ static inline uint detectProcessorFeatures()
uint features = 0;
#if defined (ARM)
- if (IsProcessorFeaturePresent(PF_ARM_INTEL_WMMX))
- features |= IWMMXT;
# ifdef PF_ARM_NEON
if (IsProcessorFeaturePresent(PF_ARM_NEON))
features |= ARM_NEON;
@@ -101,7 +98,7 @@ static inline uint detectProcessorFeatures()
return features;
}
-#elif defined(Q_PROCESSOR_ARM) || defined(QT_COMPILER_SUPPORTS_IWMMXT)
+#elif defined(Q_PROCESSOR_ARM)
static inline uint detectProcessorFeatures()
{
uint features = 0;
@@ -121,8 +118,6 @@ static inline uint detectProcessorFeatures()
int max = nread / (sizeof vector[0]);
for (int i = 0; i < max; i += 2)
if (vector[i] == AT_HWCAP) {
- if (vector[i+1] & HWCAP_IWMMXT)
- features |= IWMMXT;
if (vector[i+1] & HWCAP_NEON)
features |= NEON;
break;
@@ -135,10 +130,7 @@ static inline uint detectProcessorFeatures()
// fall back if /proc/self/auxv wasn't found
#endif
-#if defined(QT_COMPILER_SUPPORTS_IWMMXT)
- // runtime detection only available when running as a previlegied process
- features = IWMMXT;
-#elif defined(__ARM_NEON__)
+#if defined(__ARM_NEON__)
features = NEON;
#endif
@@ -470,7 +462,7 @@ static inline uint detectProcessorFeatures()
/*
* Use kdesdk/scripts/generate_string_table.pl to update the table below.
* Here's the data (don't forget the ONE leading space):
- iwmmxt
+
neon
sse2
sse3
@@ -487,7 +479,7 @@ static inline uint detectProcessorFeatures()
// begin generated
static const char features_string[] =
- " iwmmxt\0"
+ "\0"
" neon\0"
" sse2\0"
" sse3\0"
@@ -503,8 +495,8 @@ static const char features_string[] =
"\0";
static const int features_indices[] = {
- 0, 8, 14, 20, 26, 33, 41, 49,
- 54, 60, 65, 70, 75, -1
+ 0, 1, 7, 13, 19, 26, 34, 42,
+ 47, 53, 58, 63, 68, -1
};
// end generated
diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h
index 19a1943367..084e09db63 100644
--- a/src/corelib/tools/qsimd_p.h
+++ b/src/corelib/tools/qsimd_p.h
@@ -63,7 +63,6 @@
* Supported XXX are:
* Flag | Arch | GCC | Intel CC | MSVC |
* ARM_NEON | ARM | I & C | None | ? |
- * IWMMXT | ARM | I & C | None | I & C |
* SSE2 | x86 | I & C | I & C | I & C |
* SSE3 | x86 | I & C | I & C | I only |
* SSSE3 | x86 | I & C | I & C | I only |
@@ -236,31 +235,12 @@
#define QT_FUNCTION_TARGET_STRING_ARM_NEON "neon"
#endif
-
-// IWMMXT intrinsics
-#if defined(QT_COMPILER_SUPPORTS_IWMMXT)
-#include <mmintrin.h>
-#if defined(Q_OS_WINCE)
-# include "qplatformdefs.h"
-#endif
-#endif
-
-#if defined(QT_COMPILER_SUPPORTS_IWMMXT)
-#if !defined(__IWMMXT__) && !defined(Q_OS_WINCE)
-# include <xmmintrin.h>
-#elif defined(Q_OS_WINCE_STD) && defined(_X86_)
-# pragma warning(disable: 4391)
-# include <xmmintrin.h>
-#endif
-#endif
-
#undef QT_COMPILER_SUPPORTS_SIMD_ALWAYS
QT_BEGIN_NAMESPACE
enum CPUFeatures {
- IWMMXT = 0x1,
NEON = 0x2, ARM_NEON = NEON,
SSE2 = 0x4,
SSE3 = 0x8,
@@ -309,9 +289,6 @@ static const uint qCompilerCpuFeatures = 0
#if defined __ARM_NEON__
| NEON
#endif
-#if defined __IWMMXT__
- | IWMMXT
-#endif
#if defined __mips_dsp
| DSP
#endif
@@ -320,7 +297,6 @@ static const uint qCompilerCpuFeatures = 0
#endif
;
-
extern Q_CORE_EXPORT QBasicAtomicInt qt_cpu_features;
Q_CORE_EXPORT void qDetectCpuFeatures();
diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri
index 31c0c214d5..a5a395cce2 100644
--- a/src/gui/painting/painting.pri
+++ b/src/gui/painting/painting.pri
@@ -93,7 +93,6 @@ SOURCES += \
SSE2_SOURCES += painting/qdrawhelper_sse2.cpp
SSSE3_SOURCES += painting/qdrawhelper_ssse3.cpp
-IWMMXT_SOURCES += painting/qdrawhelper_iwmmxt.cpp
!ios {
CONFIG += no_clang_integrated_as
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index ffb952bce4..9292eeb4a5 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -6801,14 +6801,6 @@ void qInitDrawhelperAsm()
functionForModeSolidAsm = qt_functionForModeSolid_SSE2;
#endif // SSE2
-#ifdef QT_COMPILER_SUPPORTS_IWMMXT
- if (features & IWMMXT) {
- functionForModeAsm = qt_functionForMode_IWMMXT;
- functionForModeSolidAsm = qt_functionForModeSolid_IWMMXT;
- qDrawHelper[QImage::Format_ARGB32_Premultiplied].blendColor = qt_blend_color_argb_iwmmxt;
- }
-#endif // IWMMXT
-
#if defined(__ARM_NEON__) && !defined(Q_OS_IOS)
qBlendFunctions[QImage::Format_RGB32][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_neon;
qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_neon;
diff --git a/src/gui/painting/qdrawhelper_iwmmxt.cpp b/src/gui/painting/qdrawhelper_iwmmxt.cpp
deleted file mode 100644
index 7b734fdfc6..0000000000
--- a/src/gui/painting/qdrawhelper_iwmmxt.cpp
+++ /dev/null
@@ -1,158 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/legal
-**
-** This file is part of the QtGui module of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** Commercial License Usage
-** Licensees holding valid commercial Qt licenses may use this file in
-** accordance with the commercial license agreement provided with the
-** Software or, alternatively, in accordance with the terms contained in
-** a written agreement between you and Digia. For licensing terms and
-** conditions see http://qt.digia.com/licensing. For further information
-** use the contact form at http://qt.digia.com/contact-us.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, 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, Digia gives you certain additional
-** rights. These rights are described in the Digia 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.
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#ifdef QT_COMPILER_SUPPORTS_IWMMXT
-
-#include <mmintrin.h>
-#if defined(Q_OS_WINCE)
-# include "qplatformdefs.h"
-#endif
-#if !defined(__IWMMXT__) && !defined(Q_OS_WINCE)
-# include <xmmintrin.h>
-#elif defined(Q_OS_WINCE_STD) && defined(_X86_)
-# pragma warning(disable: 4391)
-# include <xmmintrin.h>
-#endif
-
-#include <private/qdrawhelper_sse_p.h>
-
-QT_BEGIN_NAMESPACE
-
-#ifndef _MM_SHUFFLE
-#define _MM_SHUFFLE(fp3,fp2,fp1,fp0) \
- (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | (fp0))
-#endif
-
-struct QIWMMXTIntrinsics : public QMMXCommonIntrinsics
-{
- static inline m64 alpha(m64 x) {
- return _mm_shuffle_pi16 (x, _MM_SHUFFLE(3, 3, 3, 3));
- }
-
- static inline m64 _load_alpha(uint x, const m64 &mmx_0x0000) {
- m64 t = _mm_unpacklo_pi8(_mm_cvtsi32_si64(x), mmx_0x0000);
- return _mm_shuffle_pi16(t, _MM_SHUFFLE(0, 0, 0, 0));
- }
-
- static inline void end() {
- }
-};
-
-CompositionFunctionSolid qt_functionForModeSolid_IWMMXT[numCompositionFunctions] = {
- comp_func_solid_SourceOver<QIWMMXTIntrinsics>,
- comp_func_solid_DestinationOver<QIWMMXTIntrinsics>,
- comp_func_solid_Clear<QIWMMXTIntrinsics>,
- comp_func_solid_Source<QIWMMXTIntrinsics>,
- 0,
- comp_func_solid_SourceIn<QIWMMXTIntrinsics>,
- comp_func_solid_DestinationIn<QIWMMXTIntrinsics>,
- comp_func_solid_SourceOut<QIWMMXTIntrinsics>,
- comp_func_solid_DestinationOut<QIWMMXTIntrinsics>,
- comp_func_solid_SourceAtop<QIWMMXTIntrinsics>,
- comp_func_solid_DestinationAtop<QIWMMXTIntrinsics>,
- comp_func_solid_XOR<QIWMMXTIntrinsics>,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // svg 1.2 modes
- rasterop_solid_SourceOrDestination<QIWMMXTIntrinsics>,
- rasterop_solid_SourceAndDestination<QIWMMXTIntrinsics>,
- rasterop_solid_SourceXorDestination<QIWMMXTIntrinsics>,
- rasterop_solid_NotSourceAndNotDestination<QIWMMXTIntrinsics>,
- rasterop_solid_NotSourceOrNotDestination<QIWMMXTIntrinsics>,
- rasterop_solid_NotSourceXorDestination<QIWMMXTIntrinsics>,
- rasterop_solid_NotSource<QIWMMXTIntrinsics>,
- rasterop_solid_NotSourceAndDestination<QIWMMXTIntrinsics>,
- rasterop_solid_SourceAndNotDestination<QIWMMXTIntrinsics>,
- rasterop_solid_NotSourceOrDestination<QIWMMXTIntrinsics>,
- rasterop_solid_SourceOrNotDestination<QIWMMXTIntrinsics>,
- rasterop_solid_ClearDestination<QIWMMXTIntrinsics>,
- rasterop_solid_SetDestination<QIWMMXTIntrinsics>,
- rasterop_solid_NotDestination<QIWMMXTIntrinsics>
-};
-
-CompositionFunction qt_functionForMode_IWMMXT[] = {
- comp_func_SourceOver<QIWMMXTIntrinsics>,
- comp_func_DestinationOver<QIWMMXTIntrinsics>,
- comp_func_Clear<QIWMMXTIntrinsics>,
- comp_func_Source<QIWMMXTIntrinsics>,
- comp_func_Destination,
- comp_func_SourceIn<QIWMMXTIntrinsics>,
- comp_func_DestinationIn<QIWMMXTIntrinsics>,
- comp_func_SourceOut<QIWMMXTIntrinsics>,
- comp_func_DestinationOut<QIWMMXTIntrinsics>,
- comp_func_SourceAtop<QIWMMXTIntrinsics>,
- comp_func_DestinationAtop<QIWMMXTIntrinsics>,
- comp_func_XOR<QIWMMXTIntrinsics>,
- comp_func_Plus,
- comp_func_Multiply,
- comp_func_Screen,
- comp_func_Overlay,
- comp_func_Darken,
- comp_func_Lighten,
- comp_func_ColorDodge,
- comp_func_ColorBurn,
- comp_func_HardLight,
- comp_func_SoftLight,
- comp_func_Difference,
- comp_func_Exclusion,
- rasterop_SourceOrDestination,
- rasterop_SourceAndDestination,
- rasterop_SourceXorDestination,
- rasterop_NotSourceAndNotDestination,
- rasterop_NotSourceOrNotDestination,
- rasterop_NotSourceXorDestination,
- rasterop_NotSource,
- rasterop_NotSourceAndDestination,
- rasterop_SourceAndNotDestination,
- rasterop_NotSourceOrDestination,
- rasterop_SourceOrNotDestination,
- rasterop_ClearDestination,
- rasterop_SetDestination,
- rasterop_NotDestination
-};
-
-void qt_blend_color_argb_iwmmxt(int count, const QSpan *spans, void *userData)
-{
- qt_blend_color_argb_x86<QIWMMXTIntrinsics>(count, spans, userData,
- (CompositionFunctionSolid*)qt_functionForModeSolid_IWMMXT);
-}
-
-#endif // QT_COMPILER_SUPPORTS_IWMMXT
-
-QT_END_NAMESPACE
diff --git a/src/gui/painting/qdrawhelper_x86_p.h b/src/gui/painting/qdrawhelper_x86_p.h
index 97c1f87c2a..dfbb38eb2d 100644
--- a/src/gui/painting/qdrawhelper_x86_p.h
+++ b/src/gui/painting/qdrawhelper_x86_p.h
@@ -82,13 +82,6 @@ extern CompositionFunction qt_functionForMode_SSE2[];
extern CompositionFunctionSolid qt_functionForModeSolid_SSE2[];
#endif // __SSE2__
-#ifdef QT_COMPILER_SUPPORTS_IWMMXT
-void qt_blend_color_argb_iwmmxt(int count, const QSpan *spans, void *userData);
-
-extern CompositionFunction qt_functionForMode_IWMMXT[];
-extern CompositionFunctionSolid qt_functionForModeSolid_IWMMXT[];
-#endif
-
static const int numCompositionFunctions = 38;
QT_END_NAMESPACE
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index f8715ef32e..63f85791a4 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -170,7 +170,6 @@ Configure::Configure(int& argc, char** argv)
dictionary[ "SSE4_2" ] = "auto";
dictionary[ "AVX" ] = "auto";
dictionary[ "AVX2" ] = "auto";
- dictionary[ "IWMMXT" ] = "auto";
dictionary[ "SYNCQT" ] = "auto";
dictionary[ "CE_CRT" ] = "no";
dictionary[ "CETEST" ] = "auto";
@@ -858,10 +857,6 @@ void Configure::parseCmdLine()
dictionary[ "AVX2" ] = "no";
else if (configCmdLine.at(i) == "-avx2")
dictionary[ "AVX2" ] = "yes";
- else if (configCmdLine.at(i) == "-no-iwmmxt")
- dictionary[ "IWMMXT" ] = "no";
- else if (configCmdLine.at(i) == "-iwmmxt")
- dictionary[ "IWMMXT" ] = "yes";
else if (configCmdLine.at(i) == "-no-openssl") {
dictionary[ "OPENSSL"] = "no";
@@ -1657,15 +1652,12 @@ void Configure::applySpecSpecifics()
dictionary[ "SSE4_2" ] = "no";
dictionary[ "AVX" ] = "no";
dictionary[ "AVX2" ] = "no";
- dictionary[ "IWMMXT" ] = "no";
dictionary[ "CE_CRT" ] = "yes";
dictionary[ "LARGE_FILE" ] = "no";
dictionary[ "ANGLE" ] = "no";
dictionary[ "DYNAMICGL" ] = "no";
- // We only apply MMX/IWMMXT for mkspecs we know they work
if (dictionary[ "XQMAKESPEC" ].startsWith("wincewm")) {
dictionary[ "MMX" ] = "yes";
- dictionary[ "IWMMXT" ] = "yes";
}
} else if (dictionary.value("XQMAKESPEC").startsWith("linux")) { //TODO actually wrong.
//TODO
@@ -2006,8 +1998,6 @@ bool Configure::displayHelp()
// Qt\Windows CE only options go below here -----------------------------------------------------------------------------
desc("Qt for Windows CE only:\n\n");
- desc("IWMMXT", "no", "-no-iwmmxt", "Do not compile with use of IWMMXT instructions.");
- desc("IWMMXT", "yes", "-iwmmxt", "Do compile with use of IWMMXT instructions. (Qt for Windows CE on Arm only)\n");
desc("CE_CRT", "no", "-no-crt" , "Do not add the C runtime to default deployment rules.");
desc("CE_CRT", "yes", "-qt-crt", "Qt identifies C runtime during project generation.");
desc( "-crt <path>", "Specify path to C runtime used for project generation.\n");
@@ -2208,8 +2198,6 @@ bool Configure::checkAvailability(const QString &part)
available = findFile("sqlite.h") && findFile("sqlite.lib");
else if (part == "SQL_IBASE")
available = findFile("ibase.h") && (findFile("gds32_ms.lib") || findFile("gds32.lib"));
- else if (part == "IWMMXT")
- available = (dictionary.value("XQMAKESPEC").startsWith("wince"));
else if (part == "OPENGL_ES_2")
available = (dictionary.value("XQMAKESPEC").startsWith("wince"));
else if (part == "SSE2")
@@ -2383,8 +2371,6 @@ void Configure::autoDetection()
dictionary["AVX"] = checkAvailability("AVX") ? "yes" : "no";
if (dictionary["AVX2"] == "auto")
dictionary["AVX2"] = checkAvailability("AVX2") ? "yes" : "no";
- if (dictionary["IWMMXT"] == "auto")
- dictionary["IWMMXT"] = checkAvailability("IWMMXT") ? "yes" : "no";
if (dictionary["NEON"] == "auto")
dictionary["NEON"] = checkAvailability("NEON") ? "yes" : "no";
if (dictionary["OPENSSL"] == "auto")
@@ -3059,8 +3045,6 @@ void Configure::generateCachefile()
moduleStream << " avx";
if (dictionary[ "AVX2" ] == "yes")
moduleStream << " avx2";
- if (dictionary[ "IWMMXT" ] == "yes")
- moduleStream << " iwmmxt";
if (dictionary[ "NEON" ] == "yes")
moduleStream << " neon";
if (dictionary[ "LARGE_FILE" ] == "yes")
@@ -3500,8 +3484,6 @@ void Configure::generateConfigfiles()
tmpStream << "#define QT_COMPILER_SUPPORTS_AVX 1" << endl;
if (dictionary[ "AVX2" ] == "yes")
tmpStream << "#define QT_COMPILER_SUPPORTS_AVX2 1" << endl;
- if (dictionary[ "IWMMXT" ] == "yes")
- tmpStream << "#define QT_COMPILER_SUPPORTS_IWMMXT 1" << endl;
if (dictionary["QREAL"] != "double") {
tmpStream << "#define QT_COORD_TYPE " << dictionary["QREAL"] << endl;
@@ -3663,7 +3645,6 @@ void Configure::displayConfig()
sout << "AVX support................." << dictionary[ "AVX" ] << endl;
sout << "AVX2 support................" << dictionary[ "AVX2" ] << endl;
sout << "NEON support................" << dictionary[ "NEON" ] << endl;
- sout << "IWMMXT support.............." << dictionary[ "IWMMXT" ] << endl;
sout << "OpenGL support.............." << dictionary[ "OPENGL" ] << endl;
sout << "Large File support.........." << dictionary[ "LARGE_FILE" ] << endl;
sout << "NIS support................." << dictionary[ "NIS" ] << endl;