diff options
author | Samuel Rødal <samuel.rodal@nokia.com> | 2010-11-11 09:39:09 (GMT) |
---|---|---|
committer | Samuel Rødal <samuel.rodal@nokia.com> | 2010-11-11 12:52:28 (GMT) |
commit | fac68dca46131d63f11c37210834073848f5a93d (patch) | |
tree | 02044261c86ab1985e6e301ff3e7623554c3fc40 /src/corelib | |
parent | d134345b02c6813289e67ba6c5ffe6daa1086516 (diff) | |
download | Qt-fac68dca46131d63f11c37210834073848f5a93d.zip Qt-fac68dca46131d63f11c37210834073848f5a93d.tar.gz Qt-fac68dca46131d63f11c37210834073848f5a93d.tar.bz2 |
Don't set -mfpu=neon globally if the compiler supports neon.
By default only drawhelpers and image loaders will now use neon.
If -mfpu=neon has been explicitly enabled in the mkspec,
QT_ALWAYS_HAVE_NEON will be defined, allowing the use of neon
intrinsics elsewhere.
Task-number: QTBUG-15163
Reviewed-by: Benjamin Poulain <benjamin.poulain@nokia.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/corelib.pro | 7 | ||||
-rw-r--r-- | src/corelib/tools/qsimd.cpp | 2 | ||||
-rw-r--r-- | src/corelib/tools/qsimd_p.h | 3 | ||||
-rw-r--r-- | src/corelib/tools/qstring.cpp | 2 |
4 files changed, 4 insertions, 10 deletions
diff --git a/src/corelib/corelib.pro b/src/corelib/corelib.pro index b7d6034..a001940 100644 --- a/src/corelib/corelib.pro +++ b/src/corelib/corelib.pro @@ -37,10 +37,3 @@ symbian: { MMP_RULES -= PAGED MMP_RULES *= UNPAGED } - -neon { - DEFINES += QT_HAVE_NEON - QMAKE_CXXFLAGS *= -mfpu=neon -} - - diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp index b2fe2da..63ebafb 100644 --- a/src/corelib/tools/qsimd.cpp +++ b/src/corelib/tools/qsimd.cpp @@ -135,7 +135,7 @@ static inline uint detectProcessorFeatures() #if defined(QT_HAVE_IWMMXT) // runtime detection only available when running as a previlegied process features = IWMMXT; -#elif defined(QT_HAVE_NEON) +#elif defined(QT_ALWAYS_HAVE_NEON) features = NEON; #endif diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h index 664543b..87fa770 100644 --- a/src/corelib/tools/qsimd_p.h +++ b/src/corelib/tools/qsimd_p.h @@ -105,7 +105,8 @@ QT_BEGIN_HEADER #endif // defined(QT_HAVE_SSE2) && (defined(__SSE2__) || defined(Q_CC_MSVC)) // NEON intrinsics -#if defined(QT_HAVE_NEON) +#if defined __ARM_NEON__ +#define QT_ALWAYS_HAVE_NEON #include <arm_neon.h> #endif diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp index bfbdb73..d4a1248 100644 --- a/src/corelib/tools/qstring.cpp +++ b/src/corelib/tools/qstring.cpp @@ -3572,7 +3572,7 @@ static QByteArray toLatin1_helper(const QChar *data, int length) } length = length % 16; } -#elif QT_HAVE_NEON +#elif QT_ALWAYS_HAVE_NEON // Refer to the documentation of the SSE2 implementation // this use eactly the same method as for SSE except: // 1) neon has unsigned comparison |