aboutsummaryrefslogtreecommitdiffstats
path: root/src/3rdparty
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/stable' into devSimon Hausmann2014-01-261-2/+2
|\ | | | | | | Change-Id: If45606c96ef130588004598c560aa790373f0a78
| * Fix QNX 6.6 buildFrank Osterfeld2014-01-241-2/+2
| | | | | | | | | | | | | | | | | | | | | | The stdlib of the upcoming QNX 6.6 has this abs overload, so check for the version when redefining it. Change-Id: Ib5650226c65417b42d8d7a79fac7ca53d3f315f1 Reviewed-by: Fabian Bumberger <fbumberger@rim.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Bernd Weimer <bweimer@blackberry.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | Fix build on WinRTAndrew Knight2014-01-241-1/+1
| | | | | | | | | | | | | | | | | | | | Disable JIT and avoid unsupported functions under WinRT. Also add MSVC's ARM flag to the double conversion white list. Cherry-picking commit eeabbf554880f61979fa0a9ecf87ba380cd70863 on top of rebased double-conversion code Change-Id: Iec899efc9de412bc61172ef6e2a15cd7da12fd03 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* | Fix various compiler warnings in order to remove warn_off in the near futureErik Verbruggen2014-01-241-0/+1
| | | | | | | | | | | | | | Cherry-picking commit a79e400 on top of rebased double-conversion code Change-Id: I818fec877ee22d31e7aec6463fb5fbf986433339 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
* | wince: Build fix, Windows can also run on ARM.Sergio Martins2014-01-241-0/+2
| | | | | | | | | | | | | | | | | | | | Cherry-picked commit 96d950c4d0ea058e92b668dbdea3d91a89985efe on top of rebased double-conversion code Change-Id: Iac3733b425d63bfbd027c16de7bf24b23262adc9 Reviewed-by: Sérgio Martins <sergio.martins@kdab.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | wince: Build fix, assert() is not present in this platform.Sérgio Martins2014-01-241-3/+7
| | | | | | | | | | | | | | | | Cherry-picking commit e88a447 on top of rebased double-conversion code Change-Id: I62d4b152f8551adc9eebd5e23424b44e0a90a256 Reviewed-by: Sérgio Martins <sergio.martins@kdab.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | wince: Build fix, abort() is not available on this platformSergio Martins2014-01-241-2/+2
| | | | | | | | | | | | | | | | Cherry-picking commit 23919b3 on top of rebased double-conversion code Change-Id: If0a6bf38fa707acd500c0ed84651d116056c5904 Reviewed-by: Sérgio Martins <sergio.martins@kdab.com> Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
* | Update our double conversion code to the latest release from code.google.comSimon Hausmann2014-01-2411-118/+222
|/ | | | | | | | | This fixes AArch64 builds and brings us in sync with upstream commit 2fb03de56faa32bbba5e02222528e7b760f71d77 Task-number: QTBUG-35528 Change-Id: Ib356627e06c1fecaa5b3f66d0a98fb5b30dc87e5 Reviewed-by: Liang Qi <liang.qi@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Delete a disallowed template instantiation the proper wayThiago Macieira2013-12-171-1/+1
| | | | | | | | | | | | | | | C++11 allows you to do = delete to the declaration. But some version of Clang on Mac doesn't like it. I'm guessing it's a compiler bug in an older version of Clang used in the Qt CI system. I can't reproduce the issue, so no further investigation was done. So just remove the "inline" keyword, which is what ICC 14.0 complains about: MathExtras.h(270): error #864: extern inline function "clampTo(double, T, T) [with T=long long]" was referenced but not defined Change-Id: I3887ccb527b5995ffa7ece612f9c7d5a80e71079 Reviewed-by: Alan Alpert <aalpert@blackberry.com>
* V4 IR: reverse propagate int32 truncation.Erik Verbruggen2013-12-042-0/+30
| | | | | Change-Id: I5cb0c7798d0e530f3137710bf0e723bd7b64dc89 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Avoid symbol clashes when linking QtDeclarative and QtScript staticallySimon Hausmann2013-11-221-0/+5
| | | | | | | | | Re-define the three symbols we actually implement (as stubs). Task-number: QTBUG-35041 Change-Id: Ie9511207440fa23645e52643881f5993177a4368 Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix build on WinRTAndrew Knight2013-11-066-2/+80
| | | | | | | | Disable JIT and avoid unsupported functions under WinRT. Also add MSVC's ARM flag to the double conversion white list. Change-Id: I22ec340a20b113fdeefb802ac61812f78a527895 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix various compiler warnings in order to remove warn_off in the near futureErik Verbruggen2013-11-044-1/+7
| | | | | Change-Id: Ic0492fbe31a1e134674bc6c20381f735dd6d5b7a Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix MSVC2013 compilationYuchen Deng2013-10-211-0/+2
| | | | | | Change-Id: I79b50e786f46c9a15963f09158c18871c95fe093 Reviewed-by: Peter Kümmel <syntheticpp@gmx.net> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Disable WTF assertions in release buildsSimon Hausmann2013-10-171-0/+2
| | | | | | | Define NDEBUG to disable them. Change-Id: Ie1f08863b9b483216be2c0768b505f2e9e7ccef8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix build on ARM in ARM mode (instead of thumb2)Simon Hausmann2013-10-173-27/+10
| | | | | | | | | | We don't support the traditional ARM assembler (yet), only JIT on thumb2. In order for us to reliably check that, we have to wait until the pre-processor runs, which this patch achieves by moving all JIT enable/disable decisions into qv4global_p.h Change-Id: I7eff5b4fbf1cd26297a08dee16984ad867358113 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Implement WTFReportAssertionFailureSimon Hausmann2013-10-171-1/+2
| | | | | | | At least do a printf with the failure details, to make debugging easier. Change-Id: I092d31e3408cd0a651c6dd96b5fd94adf4abe3a7 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix ASSERT_VALID_CODE_POINTER for our ARM buildsSimon Hausmann2013-10-171-4/+2
| | | | | | | | | | | We want to allow intermixing thumb and ARM for all builds, not only Android. Modified the macro to do a thumb-compatible null pointer check. This also works around a miscompilation on QNX where the compiler appeared to make incorrect assumptions about the address of functions we are taking. Change-Id: Ib8fc400178e0c2621bde2ca94b3f94041591e19a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4 ARM: extend disassembler.Erik Verbruggen2013-10-172-0/+77
| | | | | | | Added VADD/VSUB/VLDR/VSTR. Change-Id: I25fbb338652c3457e15cc9ef17209d35c63fefe5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Speed up stack trace generation for the JITSimon Hausmann2013-10-162-0/+10
| | | | | | | | | | | | | | It turns out that in QML it is not unusual that during early binding evaluations due to the undefined order, the evaluation tries to look up properties in objects that aren't initialized yet and thus exceptions are thrown. Eeach thrown exception saves a stack trace, which is expensive to generate when using the JIT, as it does full stack unwinding. This patch implements a more light-weight approach by storing the instruction pointer in the context before leaving JIT generated code. Change-Id: I95e1cfd01179247dfc2c1df949828f474a23161b Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4 disasm: fix sub sp,sp,immErik Verbruggen2013-10-141-1/+1
| | | | | | | | This is a special-case instruction, where the immediate needs to be multiplied by 4. Change-Id: I86e5ab9d39d65b8eab99fae859969896c6e5630c Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* V4 ARM: fix disassembler vmovErik Verbruggen2013-10-121-1/+1
| | | | | | | rt is on position 12. See A8.8.345. Change-Id: Ibf380b9bda8d2edd603857935d6c92cd89d0f104 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Optimise code generation for convertTypeToSInt32Lars Knoll2013-10-113-2/+35
| | | | | | | | Add 64 bit code patch and avoid some duplicated calculation in 32 bit mode Change-Id: I0e111de8ac4e733aa8802c49b4b15d785688d7ea Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Add support for showing disassembled ARM JIT codeSimon Hausmann2013-10-106-3/+2775
| | | | | | | | | | Ported the ARM disassembler from upstream trunk. QtQml needs to be configured with qmake CONFIG+=disassembler and QV4_SHOW_ASM=1 enables the dump at run-time. Change-Id: Ia13a98835829fde0d3c5a795cb8f6ef9de951807 Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* V4 JIT: implement convertUInt32ToDouble on ARMv7.Erik Verbruggen2013-10-032-0/+12
| | | | | Change-Id: I11caf07a8776bb2c6527639f22d47103f4ca1cef Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4: invert conditions when the true block follows the test.Erik Verbruggen2013-10-032-1/+2
| | | | | Change-Id: I5044acd4263b71734e4eb5d7e74b1a4a8414741e Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4: changed environment variable SHOW_CODE.Erik Verbruggen2013-09-301-1/+1
| | | | | | | | | Use QV4_SHOW_ASM for the generated assembly from the JIT, and use QV4_SHOW_IR to get dumps of the IR. Change-Id: Id85d3d6c87b47088c312475a7c737d54c58c7791 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Allow delayed deallocation in the executable memory allocatorSimon Hausmann2013-09-201-1/+1
| | | | | | | | | Allow for allocations to outlive the allocator itself. When the allocator dies, it invalidates any remaining non-free allocations, making them safe to delete later. Change-Id: I6c71cddbbd5dcaff1ad50f3991a3c710d4f96737 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Android: Fix compilation when doing ARM buildsSimon Hausmann2013-09-181-3/+10
| | | | | | | | | | | Clean up the code to determine when to _disable_ the JIT and add Android to that list when targeting ARMv5 (dubbed armeabi as opposed to armeabi-v7a) Task-number: QTBUG-33507 Change-Id: Id78e08e888df8f8075d5655e15bb754cede70638 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
* wince: Build fix, Windows can also run on ARM.Sergio Martins2013-09-171-0/+2
| | | | | | Change-Id: I113a9fd86215700fe11fa5b2bfb8461953b1255b Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Removed strange character from MacroAssemblerARM.cpp file.Tomasz Olszak2013-09-171-1/+1
| | | | | | | | | | It caused: error: stray ‘\302’ in program error: stray ‘\304’ in program when cross-compiling for ARM with gcc 4.5 Change-Id: Ibd80a21b436b65b355181b1e304ade22f9ff7404 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* V4 JIT: generate code for binary expressions.Erik Verbruggen2013-09-111-0/+6
| | | | | Change-Id: If32ee3528fa0b6a2d04263d6c6abe1d34053d658 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* wince: Build fix, assert() is not present in this platform.Sérgio Martins2013-08-292-5/+9
| | | | | Change-Id: Ib29f1411b9829bc9bf6a94e4fb23a33f955ee1b2 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* wince: Build fix, disable the assembler when JIT is disabled.Sérgio Martins2013-08-293-10/+13
| | | | | Change-Id: Ibd22f27401c3751bc64749c6f1eea3aba57d66eb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* wince: Build fix, abort() is not available on this platformSergio Martins2013-08-281-2/+2
| | | | | Change-Id: I0962f8b89de465d84d913b46ba482a538fe25495 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Generate code conversion to double.Erik Verbruggen2013-08-281-6/+4
| | | | | | | | Performance improves by about 15% on fact.3.js when Qt is build in debug mode. Change-Id: I4a1c868fe211c1e0f9e7d9a5652f7726b37405d1 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* wince: vsnprintf is not available, use qvsnprintfSergio Martins2013-08-271-2/+3
| | | | | | | Change-Id: I42c87b2c319ce5b530ac5dc673edc99b067fafd7 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com> Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
* Fix compilation with MSVC 2008 (and prospective Windows CE build fix)Simon Hausmann2013-08-222-1/+57
| | | | | | | | | | | | | | | | | * Only 2010 and newer ship stdint.h, so for 2008 we have to provide a little stdint.h compat header, for some of the third-party code we import. Our own Qt code this patch changes to use quint* types instead. * Include math.h and float.h for some math functions. * disable the JIT on Windows CE for now. * Change use of intptr_t to qintptr in Qt code. intptr_t is in inttypes.h, except that with VS 2008 it is indirectly available through stdio.h. Let's avoid the mess and just use the qt type, that's always available. Change-Id: I19055edd89e0a6b147d9edbb3b711798ed3c05a5 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change convertUInt32ToDouble to use an int scratch register.Erik Verbruggen2013-08-202-10/+12
| | | | | | | Only on X86, and still untested. Change-Id: I746daa47ed019ce0017a67a228a719983b1ebaa6 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Disable the udis86 disassembler by defaultLars Knoll2013-08-081-1/+1
| | | | | | | | | It's only required for debugging the JIT, and thus shouldn't be included in a regular build. Enable it with CONFIG+=disassembler Change-Id: I71264da0be00e8618f120ac9d3d06e6cb4b6dfae Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Added convertUInt32ToDouble for X86(_64)Erik Verbruggen2013-07-303-0/+28
| | | | | Change-Id: Ie6c918730d0ece0e9e63254ae97c257ee013f2f4 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Disable the JIT on Windows 64-bit again until the exception support is ↵Simon Hausmann2013-07-301-1/+1
| | | | | | | | | implemented Use the interpreter in the meantime, so that we get sensible test results in the CI system Change-Id: Ib8089836b705433cd15e037d4d2dd662648c941f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix JIT selection on Android with ARM buildsSimon Hausmann2013-07-051-0/+6
| | | | | | | | | | Debug builds on Android are done as ARM builds instead of thumb because of problems with debugging thumb builds with older toolchains. However for the JIT we're not interested in such a choice and prefer to have a consistent choice of JIT - thumb2 generated code in release _and_ debug builds. Change-Id: I36b1ec76311b409e36e3fb38c46c6c193adb1be8 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Follow-up to previous commit about forcing thumb builds:Simon Hausmann2013-07-052-2/+5
| | | | | | | | | | Disable the checks of the thumb bit in code pointers when building for Android, because we want to allow for intermixing of thumb (what the JIT generates) and arm code (what the compiler generates for run-time functions we call, in debug builds) Change-Id: I0bcce4015d18db4e38244a1d1ad89413b3f17152 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* JIT: support WIN64Erik Verbruggen2013-07-031-1/+1
| | | | | Change-Id: Id657831231ddec66f7d41f32aaac22a71c4c1673 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix another failing assertion with MSVC's STL in debug modeSimon Hausmann2013-06-271-1/+1
| | | | | | | Try to avoid derefencing an empty vector, even when the result is not used. Change-Id: I8a8d8363f42dc3cea8ee702dc8555494b67a165d Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix module name (QtQml) in the license header under src/3rdpartySergio Ahumada2013-06-2622-44/+44
| | | | | | | | Also updating the copyright year to 2013 Change-Id: I743d93d13d1841e13600f7353c4fe3e05bbd7c32 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix failing assertion with MSVC in debug builds in various testsSimon Hausmann2013-06-263-19/+8
| | | | | | | | | | | | | | We re-implemented Vector::begin() and end() by means of dereferencing the return value from std::begin() and then taking the address of it. That causes a failing assertion in MSVC's STL (rightly so!). We did this only to avoid modifying the original YarrJIT.cpp code. This patch instead simplifies our Vector.h stub again and just fixes the two small occurrences in YarrJIT.cpp where it expects vector->begin() to return a pointer instead of an iterator. Change-Id: I2ad137be91ea969ccb310333dffa8d98e5825f8f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Disable the JIT on Windows/AMD64 as well as on iOSSimon Hausmann2013-06-261-3/+3
| | | | | Change-Id: I7402981caa2f73fd0712975e657488a4065f403f Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix build on Android (part 2)Simon Hausmann2013-06-241-1/+1
| | | | | | | Don't include linux kernel headers from user space just for one constant :) Change-Id: Ia760b3f0cccbdad49f3f2ce31598a109b63ac788 Reviewed-by: Lars Knoll <lars.knoll@digia.com>