iOS: Enable NEON optimizations, except for the pixman draw-helpers
We used to disable NEON completely, as the iOS toolchain does not handle the GAS syntax of the pixman draw-helpers. But we can limit the disabling to just the draw-helpers, which means we get NEON optimization of eg. QImage and QString. Change-Id: If350b06ce521cca8b24468be5a168ff21e9e7124 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
This commit is contained in:
parent
4f072e2d3d
commit
182d6292ce
3
configure
vendored
3
configure
vendored
@ -4291,8 +4291,7 @@ fi
|
|||||||
|
|
||||||
# detect neon support
|
# detect neon support
|
||||||
if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
|
if [ "$CFG_ARCH" = "arm" ] && [ "${CFG_NEON}" = "auto" ]; then
|
||||||
# The iOS toolchain has trouble building the pixman NEON draw-helpers
|
if compileTest unix/neon "neon"; then
|
||||||
if [ "$XPLATFORM_IOS" != "yes" ] && compileTest unix/neon "neon"; then
|
|
||||||
CFG_NEON=yes
|
CFG_NEON=yes
|
||||||
else
|
else
|
||||||
CFG_NEON=no
|
CFG_NEON=no
|
||||||
|
@ -91,9 +91,12 @@ SSE2_SOURCES += painting/qdrawhelper_sse2.cpp
|
|||||||
SSSE3_SOURCES += painting/qdrawhelper_ssse3.cpp
|
SSSE3_SOURCES += painting/qdrawhelper_ssse3.cpp
|
||||||
IWMMXT_SOURCES += painting/qdrawhelper_iwmmxt.cpp
|
IWMMXT_SOURCES += painting/qdrawhelper_iwmmxt.cpp
|
||||||
AVX_SOURCES += painting/qdrawhelper_avx.cpp
|
AVX_SOURCES += painting/qdrawhelper_avx.cpp
|
||||||
NEON_SOURCES += painting/qdrawhelper_neon.cpp
|
|
||||||
NEON_HEADERS += painting/qdrawhelper_neon_p.h
|
!ios {
|
||||||
NEON_ASM += ../3rdparty/pixman/pixman-arm-neon-asm.S painting/qdrawhelper_neon_asm.S
|
NEON_SOURCES += painting/qdrawhelper_neon.cpp
|
||||||
|
NEON_HEADERS += painting/qdrawhelper_neon_p.h
|
||||||
|
NEON_ASM += ../3rdparty/pixman/pixman-arm-neon-asm.S painting/qdrawhelper_neon_asm.S
|
||||||
|
}
|
||||||
|
|
||||||
MIPS_DSP_SOURCES += painting/qdrawhelper_mips_dsp.cpp
|
MIPS_DSP_SOURCES += painting/qdrawhelper_mips_dsp.cpp
|
||||||
MIPS_DSP_HEADERS += painting/qdrawhelper_mips_dsp_p.h painting/qt_mips_asm_dsp_p.h
|
MIPS_DSP_HEADERS += painting/qdrawhelper_mips_dsp_p.h painting/qt_mips_asm_dsp_p.h
|
||||||
|
@ -6157,7 +6157,7 @@ void qInitDrawhelperAsm()
|
|||||||
}
|
}
|
||||||
#endif // IWMMXT
|
#endif // IWMMXT
|
||||||
|
|
||||||
#if defined(QT_COMPILER_SUPPORTS_NEON)
|
#if defined(QT_COMPILER_SUPPORTS_NEON) && !defined(Q_OS_IOS)
|
||||||
if (features & NEON) {
|
if (features & NEON) {
|
||||||
qBlendFunctions[QImage::Format_RGB32][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_neon;
|
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;
|
qBlendFunctions[QImage::Format_ARGB32_Premultiplied][QImage::Format_RGB32] = qt_blend_rgb32_on_rgb32_neon;
|
||||||
|
Loading…
Reference in New Issue
Block a user