summaryrefslogtreecommitdiffstats
path: root/src/corelib/arch
Commit message (Collapse)AuthorAgeFilesLines
* Update licenseheader text in source filesJyri Tahtela2011-05-1350-853/+853
| | | | | | | Updated version of LGPL and FDL licenseheaders. Apply release phase licenseheaders for all source files. Reviewed-by: Trust Me
* Update copyright year to 2011.Jason McDonald2011-01-1050-50/+50
| | | | Reviewed-by: Trust Me
* Fixed many spelling errors.Rohan McGovern2010-10-252-5/+5
|
* Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into ↵Qt Continuous Integration System2010-10-061-1/+1
|\ | | | | | | | | | | | | | | 4.7-integration * '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2: Adding a threshold for partial updates. Fixed arm X11 build.
| * Fixed arm X11 build.Samuel Rødal2010-10-051-1/+1
| | | | | | | | | | | | Without we get error: invalid conversion from 'const void*' to 'void*' Reviewed-by: Thiago Macieira
* | fix for USER: 163 panic found on 5800XMmread2010-10-041-1/+1
| | | | | | | | | | | | | | The NO_NAMED_LOCAL_CHUNKS macro should have been set for S605.0 builds. Also for S60 3.2 and Symbian^2. All are added. Reviewed-by: Shane Kearns
* | Fixed crash on startup in Symbian debug buildGareth Stockwell2010-10-011-1/+1
| | | | | | | | | | | | | | | | This fixes a typo in a debug-only function in the hybrid heap allocator. The typo causes an assertion to fail during startup of applications, when using a debug build of Qt. Reviewed-by: mread
* | fixed hybrid heap Symbian udeb build issuesmread2010-10-013-2/+9
|/ | | | | | | | | | | | | | | | | | | Fixed name collision with TAllocFail Added definition for EDebugHdrSize and fixed scope issue Added definition for SRAllocatorBurstFail Added a definition for global enum ETHeapBadDebugFailParameter Tested compilation on: Symbian^3 RnD - armv5_urel, armv5_udeb, winscw_urel, winscw_udeb S60 3.1 SDK - armv5_urel, armv5_udeb S60 5.0 SDK - armv5_urel, armv5_udeb Symbian^3 PDK - armv5_urel, armv5_udeb Symbian^4 RnD - armv5_urel, armv5_udeb Basic functional testing on N8 armv5_urel Task-number: QTBUG-14168 Reviewed-by: Shane Kearns
* hybrid heap improvement in the disabling of BTracemread2010-09-302-9/+1
| | | | | | | | Using an inline function for noBTrace() which can be optimised to nothing. Task-number: QT-3967 Reviewed-by: Shane Kearns
* Further hybrid heap review changesmread2010-09-301-2/+1
| | | | | | | this time, adding a comment to explain a performance improvement Task-number: QT-3967 Reviewed-by: Shane Kearns
* hybrid heap further review changesmread2010-09-303-18/+14
| | | | | | | | | changing the way enums are declared and used. commenting and restricting export macro changes. improved flagging Task-number: QT-3967 Reviewed-by: Shane Kearns
* lower case name for allocator support headermread2010-09-301-0/+0
| | | | | | | Using lower case name, as recommended by review comment Task-number: QT-3967 Reviewed-by: Shane Kearns
* hybrid allocator integration review updatesmread2010-09-304-12/+14
| | | | | | | | Disabling BTrace use in the heap checking macros without disabling any of the rest of the heap checking functionality. Task-number: QT-3967 Reviewed-by: Shane Kearns
* hybrid allocator tuningmread2010-09-302-1/+9
| | | | | | | | | | | | | | | | | | | | | Set various pragmas and defines to tune the hybrid allocator. Performance test was the time takes to allocate or deallocate as appropriate 1,000,000 times from a set of 100,000 pointers, selected at random, with sizes generated randomly with min 2, max 5960, avg 46. The function was exp(8 - log(2 + rand(0..1023))) * rand(1 or 4). The following parameters were chosen: * pragma arm, for ~1.2% * pragma Otime, for ~3% * pragma O2, already the compiler default, just to be sure * all possible slab sizes enabled, for ~1% NB Disabling BTrace would also gain ~1.5%, but that seems like a bad thing to do. Not done. Task-number: QT-3967 Reviewed-by: Shane Kearns
* declaring fast allocation shrink hysteresis valuemread2010-09-301-0/+2
| | | | | | | | | The allocator code copied from 10.1 would have no default value set for KHeapShrinkHysRatio, since it's no longer a patchable constant. This change gives it a value of 0x800, to be tuned for performance. Task-number: QT-3967 Reviewed-by: Shane Kearns
* fast allocator compiling for S60 3.2mread2010-09-304-4/+19
| | | | | | | | The fast allocator on S60 3.2 can't use TChunkCreateInfo. Instead, RChunk::CreateDisconnectedLocal() has to be used Task-number: QT-3967 Reviewed-by: Shane Kearns
* moved fast allocator config to qt_hybridHeap_symbian_p.hmread2010-09-301-0/+6
| | | | | | | | | The fast allocator switch was in qglobal.h, which is unnessarily global. Instead it has been moved to qt_hybridHeap_symbian_p.h, where is has the minimum visibility required. Task-number: QT-3967 Reviewed-by: Shane Kearns
* getting fast allocator to compile on S60 5.0 SDKmread2010-09-306-14/+110
| | | | | | | | This change adds flagging and definitions necessary to get the fast allocator compiling on 5.0 Task-number: QT-3967 Reviewed-by: Shane Kearns
* removing header use not in public SDKsmread2010-09-301-1/+5
| | | | | | | | u32exec.h was not available in the symbian^3 SDK, so it has been removed and other necessary headers are added. Task-number: QT-3967 Reviewed-by: Shane Kearns
* added header to arch.primread2010-09-301-1/+2
| | | | | | | qt_hybridHeap_symbian_p.h was missing from arch.pri, added. Task-number: QT-3967 Reviewed-by: Shane Kearns
* added renamed headermread2010-09-301-0/+77
| | | | | | | | | qt_hybridHeap_symbian_p.h was renamed from qt_hybridHeap_symbian.h to make it clear that it's private/internal. But it hadn't been added to git. Now it is. Task-number: QT-3967 Reviewed-by: Shane Kearns
* new allocator tidy up and winscw freezemread2010-09-305-86/+11
| | | | | | | | | renamed headers diabaled new allocator for winscw builds, and froze the heap creation export Task-number: QT-3967 Reviewed-by: Shane Kearns
* Qt apps to use the Symbian^4 fast allocator in pre-Symbian^4 platformsmread2010-09-3012-3615/+5619
| | | | | | | | | The hybrid heap allocator has been copied from Symbian^4 (MCL wk36 initially) and is installed by qtmain.lib as the initial allocator for Qt apps. Task-number: QT-3967 Reviewed-by: Shane Kearns
* Enable call stack tracing of allocs, for memory leak debuggingShane Kearns2010-09-303-21/+55
| | | | | Task-number: QT-3967 Reviewed-by: mread
* Fix BTRACE loggingShane Kearns2010-09-302-112/+77
| | | | | Task-number: QT-3967 Reviewed-by: mread
* Implement RNewAllocator::Available for Doug Lea sectionShane Kearns2010-09-302-7/+11
| | | | | Task-number: QT-3967 Reviewed-by: mread
* Fill in some of the missing functionsShane Kearns2010-09-301-5/+24
| | | | | Task-number: QT-3967 Reviewed-by: mread
* Fix bug where negative numbers are cast to unsigned and added as an offsetShane Kearns2010-09-301-1/+1
| | | | | | | It worked, but relied on integer overflow and casting behaviour Task-number: QT-3967 Reviewed-by: mread
* Code cleanupShane Kearns2010-09-304-19/+22
| | | | | Task-number: QT-3967 Reviewed-by: mread
* Add the new allocator to corelibShane Kearns2010-09-304-1/+4300
| | | | | | | | | | | | | | | | | | | | | New export in corelib that is called from the qtmain wrapper to setup the thread heap. This allows 7k of code to be shared, and makes it easier to disable or upgrade the allocator in future releases Task-number: QTBUG-4895 Enable new allocator by default Rename of headers as _p.h to avoid syncqt adding them to applications move inline functions from .inl -> .h, document & rename macros remove #if 0 from the dla header, implement getpagesize properly squashed after sanitisation Task-number: QT-3967 Reviewed-by: mread
* Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-05-271-6/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: demos/spectrum/app/engine.h demos/spectrum/app/mainwidget.h demos/spectrum/app/settingsdialog.h demos/spectrum/app/spectrograph.h demos/spectrum/app/spectrumanalyser.h demos/spectrum/app/tonegenerator.h demos/spectrum/app/tonegeneratordialog.h demos/spectrum/app/utils.h demos/spectrum/app/waveform.h tests/auto/qtextcodec/tst_qtextcodec.cpp
| * QTBUG-5955: Qt fails to build on alpha architectureFathi Boudra2010-05-251-6/+6
| | | | | | | | | | | | | | | | - add alpha platform support based on JavaScriptCore from src/3rdparty/webkit copy. - fix invalid type conversions on alpha architecture. Merge-request: 640 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
* | Merge remote branch 'origin/4.6' into qt-4.7-from-4.6Thiago Macieira2010-03-173-38/+571
|\ \ | |/ | | | | | | | | Conflicts: src/s60installs/bwins/QtCoreu.def src/s60installs/eabi/QtCoreu.def
| * Implement symbian^3 e32atomics APIShane Kearns2010-03-153-38/+571
| | | | | | | | | | | | | | | | | | | | | | | | Symbian^3 provides an enhanced atomics API, which provides relaxed, acquire, release, ordered versions of each atomic operation. The armv5 and armv6 assembly atomics previously used in Qt are not SMP safe. The atomics provided by the OS will be SMP safe when using the SMP kernel, or similar ARM assembly implementations when using the uniprocessor kernel. Task-number: QTBUG-7655 Reviewed-by: mread
* | Compile on ARM with -Werror -Wold-style-castBradley T. Hughes2010-03-151-2/+2
|/ | | | | | | | The C-style casts for the qt_atomic_eabi_cmpxchg_*() functions cause warnings when -Wold-style-cast is enabled. Use reinterpret_cast instead. Task-number: QTBUG-3933
* Merge branch '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1 into ↵Qt Continuous Integration System2010-02-181-10/+6
|\ | | | | | | | | | | | | | | | | | | 4.6-integration * '4.6' of scm.dev.nokia.troll.no:qt/oslo-staging-1: QNAM HTTP: Always set channel.reply to 0 when done Revert "Added note to make QList destructor virtual in version 5" Fix s390(x) atomic ops related crashes Fix undefined sequence point compiler warning
| * Fix s390(x) atomic ops related crashesDirk Mueller2010-02-171-10/+6
| | | | | | | | | | | | | | | | | | | | The s390 implementation of the pointer related atomic ops never worked before, and the memory barrier was mixed up between the Acquire and the Relaxed variant. This fixes both. Merge-request: 2312 Reviewed-by: Thiago Macieira <thiago.macieira@nokia.com>
* | Use correct include path for qglobal.hIain2010-02-181-1/+1
|/ | | | Reviewed-by: Shane Kearns
* Take into account the solaris-cc-64-stlport mkspecPierre Rossi2010-02-101-1/+1
| | | | Reviewed-by: Simon Hausmann
* Fix compilation on IA-64 with the Intel compiler: cast properly.Thiago Macieira2010-01-161-1/+1
| | | | | | | | | | | | Error was: ../../include/QtCore/../../src/corelib/arch/qatomic_ia64.h(208): error: argument of type "QMutexPool *volatile *" is incompatible with parameter of type "void *volatile *" return (T *)_InterlockedExchangePointer(&_q_value, newValue); ^ detected during instantiation of "T *QBasicAtomicPointer<T>::fetchAndStoreAcquire(T *) [with T=QMutexPool]" Patch by Intel Yolanda Chen (relayed by reporter Richard Fleck). Task-number: QTBUG-7356
* Update copyright year to 2010Jason McDonald2010-01-0641-41/+41
| | | | Reviewed-by: Trust Me
* Fix functions that return whether atomics are natives following review commentsShane Kearns2009-11-132-18/+76
| | | | Reviewed-By: Brad
* Binary compatibility of Symbian ARMv5 and ARMv6 buildsShane Kearns2009-11-135-33/+576
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Add the ARMv6 inline assembly code for compiling with RVCT.Thiago Macieira2009-11-131-0/+132
| | | | | | | | | | | | | | | | | | | | | | This is basically a copy & paste of the GCC inline assembly above, switched to the RVCT inline assembly model (which is actually easier to write and understand). I verified that this code compiles and assembles as expected. The output generated by RVCT is pretty much on the mark. However, I have not executed this code yet to see if it performs as expected. To be noted: - when expanding the inline template code, RVCT may be tempted to switch your entire function to ARM mode. Should we add __attribute__((noinline)) to prevent that? - There's no equivalent to GCC inline assembler's clobber, especially of "memory". Also, there's no "volatile" qualifier to the assembly. Does the compiler know it can't reorder the code? Does it know it shouldn't trust the value of the memory after this? My test indicates the code is fine... Reviewed-By: Shane Kearns
* Reorganize the qatomic_armv6.h file to receive the RVCT inlineThiago Macieira2009-11-131-81/+90
| | | | | | | | | assembly. Move the *Relaxed, *Acquire and *Release functions (which are simply forwarding calls to the *Ordered version) to the bottom of the file. Reviewed-By: Shane Kearns
* Fixed namespacing in qatomic_symbian.haxis2009-10-301-2/+10
| | | | | | | | | The namespace needs to be there, even if empty, to avoid warnings. Also, the header declaration was moved to avoid nested header declarations. RevBy: hjk
* Fix typo in QtCore license headers.Jason McDonald2009-10-062-2/+2
| | | | Reviewed-by: Trust Me
* Revert to using Q_CORE_EXPORT to export two assembler functionsIain2009-09-241-5/+2
| | | | | | | | It seems the problem is no longer there (maybe it was related to when we used --no_hide_all?), but anyway, it seems to be fine to use Q_CORE_EXPORT so reverted to that. Reviewed-by: axis
* Update license headers again.Jason McDonald2009-09-0940-160/+160
| | | | Reviewed-by: Trust Me
* Merge branch '4.5' into 4.6Rohan McGovern2009-09-051-40/+0
|\ | | | | | | | | Conflicts: src/gui/itemviews/qlistview.cpp