summaryrefslogtreecommitdiffstats
path: root/src/corelib
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/corelib
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/corelib')
-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
3 files changed, 7 insertions, 40 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();