diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-01-23 09:57:46 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-01-24 11:34:30 +0000 |
commit | b0649df7d69a3db1538c62c624eda42a6326110b (patch) | |
tree | e49a5614db41adf394fed3a417878a3825df5d59 | |
parent | 74819c4ed95af98d3caf5144f44123dee0149e45 (diff) |
Fix MIPS32 processor detection
Gcc defines neither _MIPS_ARCH_MIPS32 nor __mips32 on MIPS32
architectures, instead __mips is defined to 32.
This fix exposed bit-rot in qdrawhelper where qt_memfill32 was set as
a function pointer despite not being one since Qt4.
Change-Id: I87461823e54fa3166223ebf97175fd05d2f2fd16
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
-rw-r--r-- | src/corelib/global/qprocessordetection.h | 6 | ||||
-rw-r--r-- | src/gui/painting/qdrawhelper.cpp | 14 | ||||
-rw-r--r-- | src/gui/painting/qdrawhelper_mips_dsp.cpp | 5 |
3 files changed, 9 insertions, 16 deletions
diff --git a/src/corelib/global/qprocessordetection.h b/src/corelib/global/qprocessordetection.h index 566d76d3d2..55fcb37093 100644 --- a/src/corelib/global/qprocessordetection.h +++ b/src/corelib/global/qprocessordetection.h @@ -231,9 +231,6 @@ # if defined(_MIPS_ARCH_MIPS2) || (defined(__mips) && __mips - 0 >= 2) # define Q_PROCESSOR_MIPS_II # endif -# if defined(_MIPS_ARCH_MIPS32) || defined(__mips32) -# define Q_PROCESSOR_MIPS_32 -# endif # if defined(_MIPS_ARCH_MIPS3) || (defined(__mips) && __mips - 0 >= 3) # define Q_PROCESSOR_MIPS_III # endif @@ -243,6 +240,9 @@ # if defined(_MIPS_ARCH_MIPS5) || (defined(__mips) && __mips - 0 >= 5) # define Q_PROCESSOR_MIPS_V # endif +# if defined(_MIPS_ARCH_MIPS32) || defined(__mips32) || (defined(__mips) && __mips - 0 >= 32) +# define Q_PROCESSOR_MIPS_32 +# endif # if defined(_MIPS_ARCH_MIPS64) || defined(__mips64) # define Q_PROCESSOR_MIPS_64 # define Q_PROCESSOR_WORDSIZE 8 diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp index adc28f07d3..298304c4ef 100644 --- a/src/gui/painting/qdrawhelper.cpp +++ b/src/gui/painting/qdrawhelper.cpp @@ -6030,18 +6030,10 @@ void qt_memfill16(quint16 *dest, quint16 color, int count) qt_memfill_template<quint16>(dest, color, count); } #endif -#if !defined(__SSE2__) && !defined(__ARM_NEON__) -# ifdef QT_COMPILER_SUPPORTS_MIPS_DSP -extern "C" void qt_memfill32_asm_mips_dsp(quint32 *, quint32, int); -# endif - +#if !defined(__SSE2__) && !defined(__ARM_NEON__) && !defined(__mips_dsp) void qt_memfill32(quint32 *dest, quint32 color, int count) { -# ifdef QT_COMPILER_SUPPORTS_MIPS_DSP - qt_memfill32_asm_mips_dsp(dest, color, count); -# else qt_memfill_template<quint32>(dest, color, count); -# endif } #endif @@ -6233,10 +6225,6 @@ static void qInitDrawhelperFunctions() #endif -#if defined(Q_PROCESSOR_MIPS_32) && defined(QT_COMPILER_SUPPORTS_MIPS_DSP) - qt_memfill32 = qt_memfill32_asm_mips_dsp; -#endif // Q_PROCESSOR_MIPS_32 - #if defined(QT_COMPILER_SUPPORTS_MIPS_DSP) || defined(QT_COMPILER_SUPPORTS_MIPS_DSPR2) if (qCpuHasFeature(DSP) && qCpuHasFeature(DSPR2)) { // Composition functions are all DSP r1 diff --git a/src/gui/painting/qdrawhelper_mips_dsp.cpp b/src/gui/painting/qdrawhelper_mips_dsp.cpp index b72ca3da3d..783e481296 100644 --- a/src/gui/painting/qdrawhelper_mips_dsp.cpp +++ b/src/gui/painting/qdrawhelper_mips_dsp.cpp @@ -43,6 +43,11 @@ QT_BEGIN_NAMESPACE +void qt_memfill32(quint32 *dest, quint32 color, int count) +{ + qt_memfill32_asm_mips_dsp(dest, color, count); +} + void qt_blend_argb32_on_argb32_mips_dsp(uchar *destPixels, int dbpl, const uchar *srcPixels, int sbpl, int w, int h, |