diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2011-12-29 18:09:46 -0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-28 14:54:12 +0200 |
commit | d43fe0b672a665fc366f7d4a91a522959801165d (patch) | |
tree | 07ef87adf783aea20725597f8732c2bc0b037f65 /src/gui/painting/qdrawhelper_x86_p.h | |
parent | d2b1c2ef1f1fea3200d8dee5c58fe79649fd13bb (diff) |
Remove the old code using MMX registers.
There are only 8 MMX registers, each 64-bit wide, and they alias the
x87 registers. The access to the MMX register cannot use the new
VEX-prefix instructions either.
All of the functions being replaced are either present in the
qdrawhelper_sse2.cpp and qdrawhelper_ssse3.cpp files, or the plain C++
function in qdrawhelper.cpp is vectorised when compiled with
-ftree-vectorize (enabled in -O3), if SSE2 support is enabled.
All x86-64 processors have SSE2, so this is a net improvement for
64-bit builds. For 32-bit builds, without further support this will
cause the code to use non-vector or x87 instructions, which aren't the
best. The solution will come in another commit.
Change-Id: I4a22d8a2516b79172867510202d0fd627db54807
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Diffstat (limited to 'src/gui/painting/qdrawhelper_x86_p.h')
-rw-r--r-- | src/gui/painting/qdrawhelper_x86_p.h | 52 |
1 files changed, 2 insertions, 50 deletions
diff --git a/src/gui/painting/qdrawhelper_x86_p.h b/src/gui/painting/qdrawhelper_x86_p.h index ada0bec0e3..93abaf4fff 100644 --- a/src/gui/painting/qdrawhelper_x86_p.h +++ b/src/gui/painting/qdrawhelper_x86_p.h @@ -57,54 +57,6 @@ QT_BEGIN_NAMESPACE -#ifdef QT_HAVE_MMX -extern CompositionFunction qt_functionForMode_MMX[]; -extern CompositionFunctionSolid qt_functionForModeSolid_MMX[]; -void qt_blend_color_argb_mmx(int count, const QSpan *spans, void *userData); -#endif - -#ifdef QT_HAVE_MMXEXT -void qt_memfill32_mmxext(quint32 *dest, quint32 value, int count); -void qt_bitmapblit16_mmxext(QRasterBuffer *rasterBuffer, int x, int y, - quint32 color, const uchar *src, - int width, int height, int stride); -#endif - -#ifdef QT_HAVE_3DNOW -#if defined(QT_HAVE_MMX) || !defined(QT_HAVE_SSE) -extern CompositionFunction qt_functionForMode_MMX3DNOW[]; -extern CompositionFunctionSolid qt_functionForModeSolid_MMX3DNOW[]; - -void qt_blend_color_argb_mmx3dnow(int count, const QSpan *spans, - void *userData); -#endif // MMX - -#ifdef QT_HAVE_SSE -extern CompositionFunction qt_functionForMode_SSE3DNOW[]; -extern CompositionFunctionSolid qt_functionForModeSolid_SSE3DNOW[]; - -void qt_memfill32_sse3dnow(quint32 *dest, quint32 value, int count); -void qt_bitmapblit16_sse3dnow(QRasterBuffer *rasterBuffer, int x, int y, - quint32 color, - const uchar *src, int width, int height, - int stride); -void qt_blend_color_argb_sse3dnow(int count, const QSpan *spans, - void *userData); -#endif // SSE -#endif // QT_HAVE_3DNOW - -#ifdef QT_HAVE_SSE -void qt_memfill32_sse(quint32 *dest, quint32 value, int count); -void qt_bitmapblit16_sse(QRasterBuffer *rasterBuffer, int x, int y, - quint32 color, - const uchar *src, int width, int height, int stride); - -void qt_blend_color_argb_sse(int count, const QSpan *spans, void *userData); - -extern CompositionFunction qt_functionForMode_SSE[]; -extern CompositionFunctionSolid qt_functionForModeSolid_SSE[]; -#endif // QT_HAVE_SSE - #ifdef QT_HAVE_SSE2 void qt_memfill32_sse2(quint32 *dest, quint32 value, int count); void qt_memfill16_sse2(quint16 *dest, quint16 value, int count); @@ -123,8 +75,8 @@ void qt_blend_rgb32_on_rgb32_sse2(uchar *destPixels, int dbpl, int w, int h, int const_alpha); -extern CompositionFunction qt_functionForMode_onlySSE2[]; -extern CompositionFunctionSolid qt_functionForModeSolid_onlySSE2[]; +extern CompositionFunction qt_functionForMode_SSE2[]; +extern CompositionFunctionSolid qt_functionForModeSolid_SSE2[]; #endif // QT_HAVE_SSE2 #ifdef QT_HAVE_IWMMXT |