Don't build or use qt_convert_rgb888_to_rgb32_neon on ARM64/AArch64

The assembly code doesn't build on that architecture yet:

    qimage_neon.cpp:78:17: error: vector register expected
                "vld3.8     { d0, d1, d2 }, [%[SRC]] !\n\t"
                ^
    <inline asm>:1:15: note: instantiated into assembly here
        vld3.8     { d0, d1, d2 }, [x1] !
                     ^
    qimage_neon.cpp:78:57: error: unrecognized instruction mnemonic
                "vld3.8     { d0, d1, d2 }, [%[SRC]] !\n\t"
                                                        ^
    <inline asm>:2:2: note: instantiated into assembly here
        vswp d0, d2
        ^
    qimage_neon.cpp:79:31: error: vector register expected
                "vswp d0, d2\n\t"
                              ^
    <inline asm>:3:15: note: instantiated into assembly here
        vst4.8     { d0, d1, d2, d3 }, [x8,:64] !
                     ^

Change-Id: I8fe93b3940d971c0aed5973fe6e1a5e2f362df3c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This commit is contained in:
Tor Arne Vestbø 2014-10-28 13:20:59 +01:00
parent 30801d2d5c
commit c998200282
3 changed files with 6 additions and 5 deletions

View File

@ -2694,7 +2694,7 @@ void qInitImageConversions()
}
#endif
#ifdef __ARM_NEON__
#if defined(__ARM_NEON__) && !defined(Q_PROCESSOR_ARM_64)
extern void convert_RGB888_to_RGB32_neon(QImageData *dest, const QImageData *src, Qt::ImageConversionFlags);
qimage_converter_map[QImage::Format_RGB888][QImage::Format_RGB32] = convert_RGB888_to_RGB32_neon;
qimage_converter_map[QImage::Format_RGB888][QImage::Format_ARGB32] = convert_RGB888_to_RGB32_neon;

View File

@ -35,7 +35,7 @@
#include <private/qimage_p.h>
#include <private/qsimd_p.h>
#ifdef __ARM_NEON__
#if defined(__ARM_NEON__) && !defined(Q_PROCESSOR_ARM_64)
QT_BEGIN_NAMESPACE
@ -103,4 +103,4 @@ void convert_RGB888_to_RGB32_neon(QImageData *dest, const QImageData *src, Qt::I
QT_END_NAMESPACE
#endif // __ARM_NEON__
#endif // defined(__ARM_NEON__) && !defined(Q_PROCESSOR_ARM_64)

View File

@ -1001,12 +1001,13 @@ extern "C" void qt_convert_rgb888_to_rgb32_mips_dspr2_asm(quint32 *dst, const uc
QJpegHandler::QJpegHandler()
: d(new QJpegHandlerPrivate(this))
{
#if defined(__ARM_NEON__)
#if defined(__ARM_NEON__) && !defined(Q_PROCESSOR_ARM_64)
// from qimage_neon.cpp
if (qCpuHasFeature(NEON))
rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_neon;
#endif // __ARM_NEON__
#endif
#if defined(QT_COMPILER_SUPPORTS_SSSE3)
// from qimage_ssse3.cpp