diff options
author | Shane Kearns <shane.kearns@sosco.com> | 2009-11-04 21:26:00 (GMT) |
---|---|---|
committer | axis <qt-info@nokia.com> | 2009-11-13 10:57:51 (GMT) |
commit | a53bbbf81ce2dbce143ebc08fd91418e51a44588 (patch) | |
tree | 5c1d4e86aeeced63e20c2c73c61bc1bdf469f9ae /src/s60installs | |
parent | 43c607383697ab506f9eb0d491ec6348f939e53d (diff) | |
download | Qt-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/s60installs')
-rw-r--r-- | src/s60installs/eabi/QtCoreu.def | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/s60installs/eabi/QtCoreu.def b/src/s60installs/eabi/QtCoreu.def index faf8b1e..17693ea 100644 --- a/src/s60installs/eabi/QtCoreu.def +++ b/src/s60installs/eabi/QtCoreu.def @@ -13,7 +13,7 @@ EXPORTS _Z11qt_int_sqrtj @ 12 NONAME _Z12noforcepointR11QTextStream @ 13 NONAME _Z12qSharedBuildv @ 14 NONAME - _Z12q_atomic_swpPVcc @ 15 NONAME + _Z12q_atomic_swpPVcc @ 15 NONAME ABSENT _Z12qt_s60GetRFsv @ 16 NONAME _Z13lowercasebaseR11QTextStream @ 17 NONAME _Z13qErrnoWarningPKcz @ 18 NONAME @@ -24,7 +24,7 @@ EXPORTS _Z15lowercasedigitsR11QTextStream @ 23 NONAME _Z15qAddPostRoutinePFvvE @ 24 NONAME _Z15qInitResourceIOv @ 25 NONAME - _Z15qt_atomic_yieldPi @ 26 NONAME + _Z15qt_atomic_yieldPi @ 26 NONAME ABSENT _Z15qt_error_stringi @ 27 NONAME _Z15uppercasedigitsR11QTextStream @ 28 NONAME _Z16qt_QString2HBufCRK7QString @ 29 NONAME @@ -706,7 +706,7 @@ EXPORTS _ZN15QAnimationGroupD0Ev @ 705 NONAME _ZN15QAnimationGroupD1Ev @ 706 NONAME _ZN15QAnimationGroupD2Ev @ 707 NONAME - _ZN15QBasicAtomicInt20fetchAndStoreOrderedEi @ 708 NONAME + _ZN15QBasicAtomicInt20fetchAndStoreOrderedEi @ 708 NONAME ABSENT _ZN15QDateTimeParser11parseFormatERK7QString @ 709 NONAME _ZN15QLinkedListData11shared_nullE @ 710 NONAME DATA 20 _ZN15QObjectUserDataD0Ev @ 711 NONAME @@ -3566,7 +3566,7 @@ EXPORTS inflateSync @ 3565 NONAME inflateSyncPoint @ 3566 NONAME qMetaTypeGuiHelper @ 3567 NONAME DATA 4 - q_atomic_lock @ 3568 NONAME DATA 1 + q_atomic_lock @ 3568 NONAME DATA 1 ABSENT qt_addObject @ 3569 NONAME qt_global_mutexpool @ 3570 NONAME DATA 4 qt_locale_initialized @ 3571 NONAME DATA 1 |