diff options
author | Adrian Perez de Castro <aperez@igalia.com> | 2013-01-18 21:06:24 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-03-06 17:41:04 +0100 |
commit | 8f17d622b0f719973fb405705087f8a36c1f0739 (patch) | |
tree | 410d05a42006453f827a48c825f9f3e66d3ce523 /src/gui/image/qjpeghandler.cpp | |
parent | bc84e7cd436e81563191ec546109391678794537 (diff) |
MIPS: Fast path for rgb888 to rgb32 conversion
Add a hand-coded MIPS assembler function to convert a stream of rgb888
bytes to an array of 32-bit ARGB values. This is used in QImage for
image conversion, and also in QJpegHandler for decoding JPEG image
scanlines.
Change-Id: Ia74a5ff799b29fad3d4acbfcafe790cd60586d72
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/gui/image/qjpeghandler.cpp')
-rw-r--r-- | src/gui/image/qjpeghandler.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gui/image/qjpeghandler.cpp b/src/gui/image/qjpeghandler.cpp index bd358b7228..22d82ba894 100644 --- a/src/gui/image/qjpeghandler.cpp +++ b/src/gui/image/qjpeghandler.cpp @@ -857,6 +857,7 @@ bool QJpegHandlerPrivate::read(QImage *image) Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_neon(quint32 *dst, const uchar *src, int len); Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_ssse3(quint32 *dst, const uchar *src, int len); Q_GUI_EXPORT void QT_FASTCALL qt_convert_rgb888_to_rgb32_avx(quint32 *dst, const uchar *src, int len); +extern "C" void qt_convert_rgb888_to_rgb32_mips_dspr2_asm(quint32 *dst, const uchar *src, int len); QJpegHandler::QJpegHandler() : d(new QJpegHandlerPrivate(this)) @@ -875,6 +876,9 @@ QJpegHandler::QJpegHandler() rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_ssse3; } #endif // QT_COMPILER_SUPPORTS_SSSE3 +#if defined(QT_COMPILER_SUPPORTS_MIPS_DSPR2) + rgb888ToRgb32ConverterPtr = qt_convert_rgb888_to_rgb32_mips_dspr2_asm; +#endif // QT_COMPILER_SUPPORTS_DSPR2 } QJpegHandler::~QJpegHandler() |