diff options
author | Thiago Macieira <thiago.macieira@intel.com> | 2015-07-17 13:22:13 -0700 |
---|---|---|
committer | Thiago Macieira <thiago.macieira@intel.com> | 2015-09-22 06:22:07 +0000 |
commit | 6a8251a89b6a61258498f4af1ba7b3d5b7f7096c (patch) | |
tree | 3776a2c70572a3735f452b4c467cfe208ccab3a1 /src/gui/painting | |
parent | 09aeda21b902763919c2e0b2b06d09275d136e8c (diff) |
Reorganize the bits for the CPU feature detection
Instead of trying to detect one bit and set another, let's just use the
bits from the x86 CPUID instruction on x86. This makes use of the full
64-bit space now.
Since MSVC doesn't like enums bigger than 32-bit, we have to store the
bit number instead of the actual bit value in the constant. For that
reason, I also renamed the constants, to catch anyone who was using them
directly, instead of through qCpuHasFeature.
Change-Id: Ib306f8f647014b399b87ffff13f1d587692d827a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'src/gui/painting')
-rw-r--r-- | src/gui/painting/qdrawhelper.cpp | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index 0cf7e20605..64a363868a 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -6326,8 +6326,6 @@ template<QtPixelOrder> const uint *QT_FASTCALL convertA2RGB30PMFromARGB32PM_sse4 void qInitDrawhelperAsm() { - const uint features = qCpuFeatures(); - Q_UNUSED(features); #ifdef __SSE2__ qDrawHelper[QImage::Format_RGB32].bitmapBlit = qt_bitmapblit32_sse2; qDrawHelper[QImage::Format_ARGB32].bitmapBlit = qt_bitmapblit32_sse2; @@ -6372,7 +6370,7 @@ void qInitDrawhelperAsm() qt_fetch_radial_gradient = qt_fetch_radial_gradient_sse2; #ifdef QT_COMPILER_SUPPORTS_SSSE3 - if (features & SSSE3) { + if (qCpuHasFeature(SSSE3)) { extern void qt_blend_argb32_on_argb32_ssse3(uchar *destPixels, int dbpl, const uchar *srcPixels, int sbpl, int w, int h, @@ -6466,7 +6464,7 @@ void qInitDrawhelperAsm() #endif // Q_PROCESSOR_MIPS_32 #if defined(QT_COMPILER_SUPPORTS_MIPS_DSP) || defined(QT_COMPILER_SUPPORTS_MIPS_DSPR2) - if (features & (DSP | DSPR2)) { + if (qCpuHasFeature(DSP) && qCpuHasFeature(DSPR2)) { // Composition functions are all DSP r1 qt_functionForMode_C[QPainter::CompositionMode_SourceOver] = comp_func_SourceOver_asm_mips_dsp; qt_functionForMode_C[QPainter::CompositionMode_Source] = comp_func_Source_mips_dsp; |