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>
This commit is contained in:
parent
9c22b5c30a
commit
11bbacf194
@ -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;
|
||||
}
|
@ -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
|
18
configure
vendored
18
configure
vendored
@ -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
|
||||
|
@ -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
|
||||
|
@ -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++
|
||||
|
@ -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++
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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();
|
||||
|
||||
|
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user