summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2014-06-24 17:52:14 -0700
committerThiago Macieira <thiago.macieira@intel.com>2014-08-05 19:23:31 +0200
commit11bbacf19474844a9a48996db9cb79bd30e3246b (patch)
tree1d0c997531dbcde79be743e2a6eb440b08225f5b /src
parent9c22b5c30a1c9f519f571ff997991804e096c586 (diff)
Remove the last remnants of iWMMXt in Qt
This code hasn't been tested for at least 4 years. It's not maintained and probably doesn't work. Change-Id: I4b9a5179e34111b400914f91caa6b741b69771bb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Diffstat (limited to 'src')
-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
7 files changed, 7 insertions, 214 deletions
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