aboutsummaryrefslogtreecommitdiffstats
path: root/src/3rdparty
Commit message (Collapse)AuthorAgeFilesLines
...
* | V4: Tweak "enable JIT" ifdefs.Erik Verbruggen2016-01-201-0/+4
| | | | | | | | | | | | | | | | | | | | | | - indentation, to make it readable - on arm64: only enable for Linux (but only after future testing!) - add CONFIG+=force-compile-jit handling so the JIT can be compiled/used even on platforms that don't officially support it (like iOS, where it works if you run from Xcode). This is done for debugging purposes. Change-Id: I8611ba409e10305f480463a16d88bc854b1c218a Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | Updated license headersJani Heikkinen2016-01-1923-322/+460
| | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: Ic36f1a0a1436fe6ac6eeca8c2375a79857e9cb12 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | V4: add Aarch64/ARM64 support.Erik Verbruggen2016-01-1917-14/+9305
| | | | | | | | | | | | | | | | | | | | This uses the JavaScriptCore assembler rev. 195098. It is tested on iOS (for which it is disabled, as it only allows marking pages as executable when running from Xcode). Testing on Linux will be done when hardware arrives. Change-Id: I650e15fec03c27d4b326a2d70863a89b85cfc5c3 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | WinRT: Enable JIT for x86/x64 target platformsMaurice Kalinowski2016-01-165-10/+111
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This only works for Windows 10 and later. Setting the "Code Generation" capability in the manifest, WinRT applications can use JIT for Windows 10 Desktop. Update the Allocator in regards to this and also update the VirtualProtectFromApp section. When the engine gets initialized, check for marking an area as executable. If it fails, fallback to interpreter mode. This does not affect ARM platforms, as we do not have calling conventions yet. It is implicitly disabled as V4_ENABLE_JIT is not defined. [ChangeLog][WinRT] Enable JIT for x86/x64 targets on Windows 10 and later. Change-Id: Ie05add5263f71387c5ce98456b9bec86c6c07ceb Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | V4 JIT: Switch all platforms to W^X for the ExecutableAllocator.Erik Verbruggen2016-01-152-24/+53
| | | | | | | | | | | | | | | | This also fixes makeWritable, which needs to work in order to add more c0d3 to used pages. Also finish the WinRT parts. Change-Id: Idaa4187b1ec256e65c881285a608f3a51fdbeebd Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* | tvOS supportMike Krus2016-01-011-0/+5
| | | | | | | | | | | | Change-Id: If48e8bcf55781d1148e15ce19e07cfbe35d829d2 Reviewed-by: Sean Harmer <sean.harmer@kdab.com> Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
* | Remove libdouble-conversionUlf Hermann2015-11-2320-6146/+0
|/ | | | | | | | We can use facilities in qtbase to convert doubles to strings now. This also makes the fix to QTBUG-47070 obsolete. Change-Id: I2f813164ff788b96281c3ffd37d8d2c65665de80 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* QML: Sanitize reading environment variables.Friedemann Kleint2015-10-221-1/+1
| | | | | | | | | | | Where possible, use qEnvironmentVariableIsSet()/ qEnvironmentVariableIsEmpty() instead of checking on the return value of qgetenv(). Where the value is required, add a check using one of qEnvironmentVariableIsSet()/Empty(). Change-Id: Ia8b7534e6f5165bd8a6b4e63ccc139c42dd03056 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Fix a crash when m_file is 0Lars Knoll2015-08-101-1/+2
| | | | | Change-Id: If26e00877521c78a9d48b9798fe64e1d587bc10a Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* V4: add mips32 disassembler.Julien Brianceau2015-06-196-1/+759
| | | | | | | | | Add a rudimentary disassembler for mips32 instruction set. Although few instructions might be missing, the whole set from MacroAssemblerMIPS should be covered. Change-Id: I9b1b9b40537b99098ca65036f671651d04fe1ab6 Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into devSimon Hausmann2015-06-042-1/+4
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/jsruntime/qv4engine_p.h src/quick/items/qquickitemsmodule.cpp src/quick/items/qquicktext.cpp src/quick/util/qquickpixmapcache.cpp tests/auto/quick/qquickwindow/tst_qquickwindow.cpp Change-Id: I90ecaad6a4bfaa4f36149a7463f4d7141f4a516a
| * WinRT: fix warningsMaurice Kalinowski2015-05-192-1/+4
| | | | | | | | | | | | Change-Id: If11db499d743cbe79959145ecfcbcfec896a6845 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* | V4: add JIT support for mips platforms (32-bit) and enable itJulien Brianceau2015-04-271-1/+31
|/ | | | | | | [ChangeLog][QtQml] Enabled Just-In-Time compilation for JavaScript on MIPS Change-Id: Idce070f29645760d6376767ef67e4592828c104d Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Liang Qi2015-04-162-3/+18
|\ | | | | | | | | | | | | | | Conflicts: tests/auto/qml/debugger/qv4profilerservice/qv4profilerservice.pro tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler.pro Change-Id: I76d87e3df97ebdba902ca3d7488c1582eca2a83c
| * [mips] Fix or32 implementation in macro assembler.Julien Brianceau2015-04-071-1/+3
| | | | | | | | | | | | | | Cherry-picked from qtwebkit (0546c8656a3728bf4375da39027e096beba4f111) Change-Id: I924661dc51bee334c6f26557e765a3a1e8ec0bce Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
| * [mips] Fix branchTruncateDoubleToUint32 implementation in macro assembler.Julien Brianceau2015-04-071-1/+1
| | | | | | | | | | | | | | Cherry-picked from qtwebkit (2d9ed318a21f6102dddc0b91de2698908a9b8efc) Change-Id: I88d961e89d046b20329bc1fcfc10bfceb21d737b Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
| * Avoid parallel reading/writing of RegExpJitTables.hKai Koehne2015-04-011-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | RegExpJitTables.h is created in the build directory at compilation time. This creates problems if debug and release targets are built in parallel: They might overwrite each other's results, letting the compiler see intermediate content. Avoid this by using separate directories for the debug and release build. Change-Id: I54fee7cb727a1c1777af8e0d5d19a71fdc3aac68 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | [mips] Handle properly unaligned halfword load.Julien Brianceau2015-04-081-1/+47
| | | | | | | | | | | | | | | | | | This patch improves YarrJIT efficiency on mips platforms. Cherry-picked from qtwebkit (ea22657d17a934b04c8621dc8891a1d4d80510e3) Change-Id: I83eca9716e4d6e9e1dd4d8ceb76c3da380502ce7 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | WinRT: Set alignment boundary to page sizeMaurice Kalinowski2015-03-051-1/+9
| | | | | | | | | | | | | | | | This is a hard requirement from the QQmlEngine internals since 5.5 and otherwise causes crashes inside the engine. Change-Id: Id25f465576a0095f5b34da469abe761d3f3bd866 Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
* | Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-242-10/+8
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf LICENSE.GPLv2 examples/qml/networkaccessmanagerfactory/view.qml src/qml/jsruntime/qv4runtime.cpp src/qml/jsruntime/qv4stringobject.cpp Change-Id: I5d12f436d60995e51d5c2f59d364e9cbc24f8e32
| * Update C++11 warning logic from QtWebKitAllan Sandfeld Jensen2015-02-101-9/+7
| | | | | | | | | | | | | | | | Fixes compatibility with gcc 5.0. Change-Id: I017c6d690c1f64359c3bac6c8b6b0f5e089861eb Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Use sysconf function for getting memory page sizePasi Petäjäjärvi2015-01-261-1/+1
| | | | | | | | | | | | | | Function getpagesize is deprecated and should not be used. Change-Id: I4d4827662b2e8cb1e668129491a11d58f6722a1d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Fixed license headersJani Heikkinen2015-02-1722-22/+22
| | | | | | | | | | Change-Id: I4d5640ff95e1361ec7e65fb3e87d7726d8185ff5 Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
* | Update copyright headersJani Heikkinen2015-02-1245-183/+183
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Change-Id: I61120571787870c0ed17066afb31779b1e6e30e9 Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2015-01-161-0/+8
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/qml/jsruntime/qv4context_p.h src/qml/jsruntime/qv4debugging.cpp src/qml/jsruntime/qv4engine.cpp src/qml/jsruntime/qv4functionobject_p.h src/qml/jsruntime/qv4qobjectwrapper.cpp src/quick/scenegraph/shaders/visualization.frag tests/auto/qml/qjsengine/tst_qjsengine.cpp Change-Id: I492e8546c278f80a300a2129e9a29d861e144a30
| * Fix build with MinGW due to -WerrorSérgio Martins2014-12-171-0/+8
| | | | | | | | | | | | | | | | | | | | | | On Windows the correct format is %I64d and %I64u: https://stackoverflow.com/questions/2844/how-do-you-printf-an-unsigned-long-long-int Similar ifdefs are found in testlib/qtestcase.cpp Change-Id: Ic65e60f7d391285e292ac8c65944d8af3be205f4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Use a list of lists for free chunks instead of merging in one listJocelyn Turcotte2015-01-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This remove the tedious merging of free heap slots into one big list after sweeping. It now lets each chunk keep its 0-terminated list of free items and by then linking chunks together in a list for those containing at least one free item. The chunk metadata is moved at the beginning of the allocated VM region to avoid moving it all around while sorting MemoryManager::Data::heapChunks. Change-Id: Ia93c2eb7feca0779a28aea5149dd066dacbfa494 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | V4 JIT: ARM: move registers around.Erik Verbruggen2015-01-123-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 6572d4e50d73ac60a8974d07de74c27a7f99ebef we moved the addressTempRegister to r10, and in d8b276a59402cbbe6d070ba38805350e7f3dd8a1 we made sure that the YarrJIT saves it too. JSC solved this by moving it to r6, which is already saved by the YarrJIT. To make a future update of the assembler easier, we also move it to r6. This requires that we move our scratch register too. But, because it is used a lot, we don't want it above r7 for Thumb2 reasons. Therefore, we move the engine to r10, and the scratch register to r5. Change-Id: I35be539940d9fe80971973cfa7f3a8dab2196a1e Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | QML 3rdparty: revert unnecessary change.Erik Verbruggen2015-01-123-5/+5
| | | | | | | | | | | | | | | | It is the change to DataLog.h, which in turn forces the other changes in order to match types. Change-Id: Ie17e7efbd6a4d380a3b7383b0fd0243c6f68d0d5 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Remove guard pages option from uncommitted page reservationsUlf Hermann2014-10-306-16/+9
| | | | | | | | | | | | | | | | | | | | It's only implemented for non-linux unix-like systems and it's quite challenging to get it right everywhere else. So, instead of giving the user the illusion that guard pages might be available we just drop them. Change-Id: I7ec74c84f6215f22bd10758728b18bbecc0adf59 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Implement guard pages for windows page allocatorUlf Hermann2014-10-301-1/+11
| | | | | | | | | | Change-Id: Ia54a259bbf05cca7dc1ed868a75931efa95851b3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | Allow page allocations to include guard pagesUlf Hermann2014-10-304-10/+21
|/ | | | | | | | The PageAllocator is in principle capable of using guard pages. We can expose that functionality to its clients. Change-Id: I919f6f76310feb160d2b26ac1fc64db4e91804bb Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Update license headers and add new licensesJani Heikkinen2014-08-2523-437/+253
| | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 & LICENSE.GPLv2 - Removed LICENSE.GPL Change-Id: I84a565e2e0caa3b76bf291a7d188a57a4b00e1b0 Reviewed-by: Jani Heikkinen <jani.heikkinen@digia.com>
* Silence unused parameter warning in release builds.Erik Verbruggen2014-08-141-0/+1
| | | | | Change-Id: I02e5dd0bf511056c876c4e418334cad96657703e Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* V4 JIT: tune generated instructions for inplace binopsErik Verbruggen2014-08-121-0/+18
| | | | | | | | | | Generate better code for in-place binary operations where the right-hand side is either a constant or a memory address. Now that the JIT can do this, also tell the register allocator not to un-spill that right-hand side. Change-Id: I0ab852f6b92f90dfed99c05fbaf91aad2549ecf4 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* V4 JIT: enable the JIT when compiling with clang on ARM.Erik Verbruggen2014-07-242-1/+3
| | | | | | | | The macros that were used to detect Thumb2 support on the cores were gcc specific. Change-Id: I76959899b41f440d4b7ad7a5436059a3dc102111 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* Merge remote-tracking branch 'origin/5.3' into devSimon Hausmann2014-06-131-0/+2
|\ | | | | | | | | | | | | Conflicts: src/quickwidgets/qquickwidget.cpp Change-Id: Id4b080aea713df68608847bb82570231e37ce536
| * V4 Yarr JIT: push/pop addressTempRegister.Erik Verbruggen2014-06-051-0/+2
| | | | | | | | | | | | | | | | | | | | | | Change 6572d4e50d73ac60a8974d07de74c27a7f99ebef moved the addressTempRegister from r3 to r10, so that calculated calls would not overwrite the fourth argument of a call. However, JSC's Yarr JIT might also use it for certain loads, so it also needs to save r10. Task-number: QTBUG-39289 Change-Id: I0a4e725b6b11ab5e772330662049668bed009c05 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | V4: teach the disassembler about VMUL, VCVT, and VCMP on ARM.Erik Verbruggen2014-06-022-0/+130
| | | | | | | | | | Change-Id: I2fee1d9d8c9b6437e6237388f2b0d93243fe601d Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* | V4: fix disassembler address printing for 64bit.Erik Verbruggen2014-05-221-1/+1
|/ | | | | | | | | Platforms and/or compilers have different opinions on the type of uint64_t, so with a bit of casting and using the biggest possible format, the warnings will hopefully disappear. Change-Id: I1e128eaf8bc53771a517490292f52084046574dd Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* 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>