summaryrefslogtreecommitdiffstats
path: root/src/gui/painting/painting.pri
diff options
context:
space:
mode:
authorShane Kearns <shane.kearns@sosco.com>2009-11-04 21:26:00 (GMT)
committeraxis <qt-info@nokia.com>2009-11-13 10:57:51 (GMT)
commita53bbbf81ce2dbce143ebc08fd91418e51a44588 (patch)
tree5c1d4e86aeeced63e20c2c73c61bc1bdf469f9ae /src/gui/painting/painting.pri
parent43c607383697ab506f9eb0d491ec6348f939e53d (diff)
downloadQt-a53bbbf81ce2dbce143ebc08fd91418e51a44588.zip
Qt-a53bbbf81ce2dbce143ebc08fd91418e51a44588.tar.gz
Qt-a53bbbf81ce2dbce143ebc08fd91418e51a44588.tar.bz2
Binary compatibility of Symbian ARMv5 and ARMv6 builds
Use ARMv6 atomics where available Use OS atomics otherwise Integrate ARMV6 atomics to Symbian builds Use compiler defined macros to detect if ARMv6 instructions are available This defines the QT_HAVE_ARMV6 macro, replacing the way it was defined by the Symbian build system previously in qpainting.pri. qatomic_symbian now uses qatomic_arm or qatomic_armv6 automatically Port armv6 atomics to implement generic atomics interface The inline atomics are not inlined when we build for thumb using RVCT. So there is no performance improvement of using the "inline" versions vs a shared version called through a function call. The generic atomics interface is good for binary compatibility, as the same symbols are exported in all versions now. Changed the fallback generic atomics implementation from the unix one to a symbian specific one using RFastLock (identical code to the windows generic atomics, except for RFastLock replaces Win32 CRITICAL_SECTION) Note: GCCE atomics still need porting Tell git to ignore .lst listing files (produced by sbs/abld listing) ARMv6 support for GCCE compiler and fallback implementation using OS When building corelib with GCCE and -march=armv6, QT_HAVE_ARMV6 will be defined. This patch adds copies of the asm functions in GCC syntax. When building for the Symbian emulator, or ARMv5, then Symbian OS atomic functions are used as a fallback - these are more efficient than the unix atomics, and don't require data import (which the ARMv5 atomics use, but the OS loader doesn't support fully) Symbian OS functions are always used for QBasicAtomicInt::ref / deref, because these are faster than the generic function in all cases. They are machine coded for ARMv6, and are used internally by RFastLock. Reviewed-By: axis Reviewed-By: Brad
Diffstat (limited to 'src/gui/painting/painting.pri')
-rw-r--r--src/gui/painting/painting.pri1
1 files changed, 0 insertions, 1 deletions
diff --git a/src/gui/painting/painting.pri b/src/gui/painting/painting.pri
index c35c33a..628a109 100644
--- a/src/gui/painting/painting.pri
+++ b/src/gui/painting/painting.pri
@@ -370,7 +370,6 @@ symbian {
SOURCES += painting/qwindowsurface_s60.cpp
armccIfdefBlock = \
"$${LITERAL_HASH}if defined(ARMV6)" \
- "MACRO QT_HAVE_ARMV6" \
"SOURCEPATH painting" \
"SOURCE qblendfunctions_armv6_rvct.s" \
"SOURCE qdrawhelper_armv6_rvct.s" \