aboutsummaryrefslogtreecommitdiffstats
path: root/src/3rdparty
Commit message (Collapse)AuthorAgeFilesLines
...
* Merge remote-tracking branch 'origin/release' into stableFrederik Gladhorn2014-05-011-2/+22
|\ | | | | | | Change-Id: I996a85744753598bb48c7e0d7954049202f4f037
| * Extend the QML bootstrap library by the IR buildersSimon Hausmann2014-04-231-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | This is among other things needed to fix the qml import scanner to detect dependencies from .js files correctly. The patch also fixes the use of Q_QML_EXPORT towards Q_QML_PRIVATE_EXPORT where appropriate and corrects the wrong include path for the double conversion code to actually be relative to the file it is included from. This worked by accident because of other include paths present in the build. Change-Id: I338583dad2f76300819af8ab0dae8e5724c84430 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge remote-tracking branch 'origin/release' into stableJani Heikkinen2014-04-231-1/+1
|\| | | | | | | Change-Id: I1214586499ab2876c8bc55a99367a0c938c8b919
| * V4: fix register usage on ARM.Erik Verbruggen2014-04-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | JSC was using r3 as the address scratch register, which collides with the 4th parameter in a function call. This sometimes shows up when generateFunctionCall needs to do a calulated jump. Also fix the usage of r11, which seems to be the fp on some platforms. Change-Id: Ib2ea64b9342e5aa631db6a7641747f899b2fbd89 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | V4 JIT: fix constant shifts.Erik Verbruggen2014-04-152-3/+7
|/ | | | | | | | | | | | | | | | Do not generate constant shifts of 0. We do not use the flags, so it's a move. On ARM it's actually important not to do this, because lsr/asr with imm=0 is a special case (shift of 32 bits). When in the area, also skip generating an and of the second operand with 0x1f. For Intel this is done on the CPU, and for ARM the JSC assembler will generate it for us. This patch also updates the ARM disassembler to print the right immediate values for the shifts. Change-Id: I7c92c8d899352712c84e5534c48392d75466be0e Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Zero memory in WinRT allocatorAndrew Knight2014-04-081-0/+1
| | | | | | | | | The memory is assumed to be zero-initialized, and this wasn't happening on WinRT. Task-number: QTBUG-38132 Change-Id: I8686a40dacdc20bd702cc43a067209bfa997e7b2 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix compile errorLars Knoll2014-03-101-1/+1
| | | | | Change-Id: Iba3860ef8ea940b8f232e21e273b0ac83d895882 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* V4: fix address printing for real.Erik Verbruggen2014-03-081-7/+15
| | | | | | | | | | The previous patch contained the wrong formatting string for 64bit platforms. Good compilers will warn on this (and fail compiling with -Werror). Fixed the issue in such a way that we now have static checking for both 32bit/64bit platforms by the compiler. Change-Id: Idf4a80d8795605c61ef812426c9984df1ceac4d4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* V4: fix address printing on 64bit platformsErik Verbruggen2014-03-072-2/+14
| | | | | | | | The addresses were truncated to 32bits, which is a problem on win64, because JITted code ended up outside that range. Change-Id: I0d8b92486714340dffe4b4c2de29cf11a929a149 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix MSVC2012 compiler warnings in disabled code.Erik Verbruggen2014-03-072-3/+9
| | | | | | | ... that should soon get enabled. Change-Id: I2f8393cab5e99a7f5d3c7df6af6385fefd2d4dd1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Fix more MSVC2012 compiler warnings.Erik Verbruggen2014-03-072-16/+32
| | | | | | | All are conversions from size_t to int or to unsigned. Change-Id: Ic94c938dcad6d50a32dd6ec62da2341869cf994d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Fix a couple of typos in the documentationLaszlo Papp2014-03-061-3/+3
| | | | | Change-Id: Ie06af2e33e5adf6d56391929bd763b01e57557b0 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* Fix MSVC2012 compiler warnings.Erik Verbruggen2014-03-052-1/+2
| | | | | | | | Tested on both win32 and win64. Change-Id: I47755e2da51829e61e1452eaaf84a057224b478b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* V4 JIT: enable disassembler on windows.Erik Verbruggen2014-03-037-6/+28
| | | | | Change-Id: I55a2a96a1a774c79cc2146c6b47d441fede1d102 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* V4 ARM JIT: make CONFIG+=disassembler work on ARM.Erik Verbruggen2014-02-171-1/+1
| | | | | Change-Id: I164813c8939849e63103c447a7f64699003d00da Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* 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>