Clean up some QT_HAVE_xxx macros in qcompilerdetection.h
authorThiago Macieira <thiago.macieira@intel.com>
Wed, 16 May 2012 15:43:23 +0000 (17:43 +0200)
committerQt by Nokia <qt-info@nokia.com>
Fri, 18 May 2012 08:33:56 +0000 (10:33 +0200)
We no longer have code doing MMX or 3dNow! on Qt 5, so nothing defines
those macros. If nothing defines them, we don't need to undef
them. Note that the SSE case is a mislabel: the old "SSE" code on Qt 4
wasn't real SSE, it was MMX with some instructions added at the same
time as SSE was added. It's MMX that Windows 64 doesn't support.

As for QT_HAVE_ARMV6, this macro is replaced by the sub-arch detection
in qprocessordetection.h.

Change-Id: Ic3b00e1533e6b4cea32ba7824233de0a5c0fb32b
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
src/corelib/global/qcompilerdetection.h
src/gui/painting/qdrawhelper.cpp

index b4ea022..8621d8b 100644 (file)
 #    define Q_DECL_VARIABLE_DEPRECATED
 #    define Q_CC_INTEL
 #  endif
-/* MSVC does not support SSE/MMX on x64 */
-#  if (defined(Q_CC_MSVC) && defined(_M_X64))
-#    undef QT_HAVE_SSE
-#    undef QT_HAVE_MMX
-#    undef QT_HAVE_3DNOW
-#  endif
 
 #  if defined(Q_CC_MSVC) && _MSC_VER >= 1400
 #    define Q_COMPILER_VARIADIC_MACROS
    so check for it before that */
 #elif defined(__ARMCC__) || defined(__CC_ARM)
 #  define Q_CC_RVCT
-#  if __TARGET_ARCH_ARM >= 6
-#    define QT_HAVE_ARMV6
-#  endif
 /* work-around for missing compiler intrinsics */
 #  define __is_empty(X) false
 #  define __is_pod(X) false
index 3ba8381..c21cc61 100644 (file)
@@ -1944,7 +1944,7 @@ static const uint * QT_FASTCALL qt_fetch_conical_gradient(uint *buffer, const Op
 // Force ARM code generation for comp_func_* -methods
 #  pragma push
 #  pragma arm
-#  if defined(QT_HAVE_ARMV6)
+#  if defined(Q_PROCESSOR_ARM_V6)
 static __forceinline void preload(const uint *start)
 {
     asm( "pld [start]" );
@@ -1957,10 +1957,10 @@ static const uint L2CacheLineLengthInInts = L2CacheLineLength/sizeof(uint);
 // Two consecutive preloads stall, so space them out a bit by using different modulus.
 #    define PRELOAD_COND2(x,y) if (((uint)&x[i])%L2CacheLineLength == 0) preload(&x[i] + L2CacheLineLengthInInts); \
          if (((uint)&y[i])%L2CacheLineLength == 16) preload(&y[i] + L2CacheLineLengthInInts);
-#  endif // QT_HAVE_ARMV6
+#  endif // Q_PROCESSOR_ARM_V6
 #endif // Q_CC_RVCT
 
-#if !defined(Q_CC_RVCT) || !defined(QT_HAVE_ARMV6)
+#if !defined(Q_CC_RVCT) || !defined(Q_PROCESSOR_ARM_V6)
 #    define PRELOAD_INIT(x)
 #    define PRELOAD_INIT2(x,y)
 #    define PRELOAD_COND(x)