aboutsummaryrefslogtreecommitdiffstats
path: root/src/3rdparty
Commit message (Collapse)AuthorAgeFilesLines
* Merge remote-tracking branch 'origin/5.14' into 5.15Liang Qi2019-12-171-1/+1
|\ | | | | | | | | | | | | | | | | Conflicts: .qmake.conf src/qml/jsruntime/qv4engine.cpp src/qml/parser/qqmljs.g Change-Id: I5f89199ef7a846032a3118cba1298de992c22f8f
| * Remove use of wrapper macros for feature detectionTor Arne Vestbø2019-12-161-1/+1
| | | | | | | | | | Change-Id: Ic9cd7e4ff2c5d253879b0aeaa15dbc25cad82891 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | make LinkBufferBase::finalizeCodeWithDisassembly() less genericRolf Eike Beer2019-12-121-16/+12
|/ | | | | | | | | It is actually called from only one place, so adapt it to what that caller really needs, removing more excessive newlines. Change-Id: Ieb1a24ddb911d86af1f862e35e4fdd7ad2d9ff13 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Remove src/3rdparty/llvmUlf Hermann2019-12-0318-3036/+0
| | | | | | | | We added it for the tracing JIT, then removed the tracing JIT again. Fixes: QTBUG-80490 Change-Id: I53fc198ecbee7a238624fd14eefae02ee57b3b0a Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* masm: drop some excessive newlines in debug messagesRolf Eike Beer2019-11-282-4/+3
| | | | | | | | | | | | | | | | | | | The current output would look like this (including the blank lines): [20191115 12:32:37.378 UTC 0xc47cb8 default: Generated BaselineJIT code for [20191115 12:32:37.379 UTC 0xc47cb8 default: function expression for source [20191115 12:32:37.379 UTC 0xc47cb8 default: : [20191115 12:32:37.379 UTC 0xc47cb8 default: Code at [0x671068d1, 0x671069bd): [20191115 12:32:37.379 UTC 0xc47cb8 qt.v4.asm: disassembly not available for range 0x671068d1...0x67106997 [20191115 12:32:37.379 UTC 0xc47cb8 qt.v4.asm: Drop 3 of the newlines to make it not beautiful, but at least not totally verbose. Change-Id: I850b7acede33ddbb5f6ab74fd760962ca18988c8 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Remove dladdr usage from masmTasuku Suzuki2019-07-082-18/+1
| | | | | | | string literal "QtQml" is entirely enough for the name here Change-Id: I62c43f3535998e358d7012b5a455f4e01bb3f1a0 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* rtems: Add support cacheFlushMikhail Svetkin2019-06-281-0/+6
| | | | | | Change-Id: I004a766778e6ee2e2aef577a175419fb1b2e09e0 Reviewed-by: Timo Aarnipuro <timo.aarnipuro@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* rtems: Add platform definitionMikhail Svetkin2019-06-281-0/+5
| | | | | Change-Id: Ifab0b23fbf35bd31061a28500fdfd69de1905b1c Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Eliminate qmldevtools_buildUlf Hermann2019-05-311-2/+0
| | | | | | | | Move the relevant files into more fitting locations and build the devtools from only parser, compiler and qmldirparser. Change-Id: Ibf37a1187f36d02983f9f43c6622acb243785b7b Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Remove the bootstrap code from assembler and JITUlf Hermann2019-05-0710-249/+19
| | | | | | | We don't build the assembler or the JIT in bootstrap mode. Change-Id: Idc3a56cc1e9cfba415bef9cba221c8a60ee75010 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-05-021-1/+2
|\ | | | | | | Change-Id: I5d2c3da38df35922b2147c3c0bc55c6c3bae2fe5
| * Merge remote-tracking branch 'origin/5.12' into 5.13Qt Forward Merge Bot2019-05-011-1/+2
| |\ | | | | | | | | | Change-Id: Ic008bf9223a9ac293c925044355ff218f7ed7f78
| | * Yarr: Reject quantifiers larger than 16MUlf Hermann2019-04-301-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | Nobody needs those and we run into integer overflows later on if we accept them. Fixes: QTBUG-74048 Change-Id: Ib8ccd05e4bd6f662c38fbe95bf1350f81982e1b8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Transform V4_ENABLE_JIT into a featureUlf Hermann2019-04-251-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This way you can enable or disable the JIT when configuring Qt. The conditions for the availability of the JIT have also been cleaned up. There is no reason anymore to artificially restrict availability on x86 and x86_64. The reason for the existence of those clauses are old problems on windows that have been fixed by now. However, on arm and arm64, we need a specialization of the cacheFlush() function for each OS to be supported. Therefore, restrict to the systems for which such a specialization exists. iOS and tvOS are technically supported and you can enable the JIT via the feature flag now. Due to Apple's policy we disable it by default, though. Change-Id: I5fe2a2bf6799b2d11b7ae7c7a85962bcbf44f919 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Enable back references in YarrUlf Hermann2019-04-182-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new version of Yarr has them and using them could give us some performance benefits. Add the required load16 primitive for the ARM64 aseembler from webkit. Change-Id: Ief498a353f9804c6b0f4ac091fb3707ffcb9f8cd Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-04-181-4/+4
|\| | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/qml/qqmlimport.cpp Change-Id: I6add6267297ea50a646d43d212027a168dca8916
| * | Merge remote-tracking branch 'origin/5.12' into 5.13v5.13.0-beta3Qt Forward Merge Bot2019-04-151-4/+4
| |\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/masm/assembler/LinkBuffer.h src/qmltest/doc/src/qtquicktest-index.qdoc tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp Change-Id: I7d83ad95cf489dda794dd7a0a33bad3ef3b05609
| | * Ensure the correct version of LinkBuffer's performFinalization is calledAlec Rivers2019-04-121-4/+4
| | | | | | | | | | | | | | | | | | Task-number: QTBUG-74876 Change-Id: I8e816d29b709750b121cc63edfc5f3493a3ed119 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Merge remote-tracking branch 'origin/5.13' into devQt Forward Merge Bot2019-04-101-0/+1
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/qml/qml/qqmlmetatype.cpp src/qml/types/qqmlmodelsmodule.cpp Change-Id: Idc63689ba98d83a455283674f4b5cf3014473605
| * | Fix build without c++14Allan Sandfeld Jensen2019-03-291-0/+1
| | | | | | | | | | | | | | | | | | | | | The backup implementation of make_unique is in Optional.h Change-Id: I7a7f31ff451ec5336468b8447088e3f4d5d0cecb Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | V4: Add headers from LLVM that define an intrusive list templateErik Verbruggen2019-03-2218-0/+3036
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These intrusive list is used in the follow-up patch, where it is used to hold a list of basic blocks in a function, and a list of instructions in the basic block. The advantage of this implementation is that it there is an easy and direct access to iterators when you have an element, it defines STL-like iterators, is double-linked, and you can easily insert before and after elements. We don't have something like this in Qt, and it's better to take an existing and well-tested implementation that making a home-grown one. Change-Id: Ie8c726eafe6d7558ae6a3550e8ecc2f15f362b17 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* | | JSC::Yarr::Parser: fix invalid noreturn warningYulong Bai2019-03-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Function 'isValidNamedForwardReference' declared 'noreturn' but still returned. Attribute macro 'NO_RETURN_DUE_TO_ASSERT' is deleted to pass compilation for GCC and Clang while [-Werror,-Winvalid-noreturn] enabled. Fixes: QTBUG-74250 Change-Id: I6f7f64ffacf8003f0c695e6a4b9cb422ba57153c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Upgrade Yarr to latest version from WebKitUlf Hermann2019-02-2615-221/+746
|/ / | | | | | | | | | | | | | | | | This is an upgrade to commit cbb0aa18662bc26da31de91e2104c030eaa6ead2 in webkit. It causes some more ecmascript tests to pass. Fixes: QTBUG-73915 Change-Id: I8bb5ff9b37907d17b1020576ba64f0b3aed2f1b3 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devLiang Qi2019-01-292-5/+5
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/3rdparty/masm/yarr/YarrJIT.cpp src/qml/compiler/qv4instr_moth.cpp src/quick/handlers/qquicksinglepointhandler_p.h src/quick/handlers/qquicktaphandler.cpp src/quick/items/context2d/qquickcontext2d.cpp Done-With: Ulf Hermann <ulf.hermann@qt.io> Change-Id: I109453131f9f0a05316ae37c7d6ed1edc8c0f9d4
| * Fix cacheFlush ManageCaches flags for INTEGRITYJanne Koskinen2019-01-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | Use ACCESS_DST_SYNC to flush I-cache instead of ACCESS_DST_COHERENT D-cache flush. Fixes invalid instruction crash caused by out of sync instruction cache. Task-number: QTBUG-72267 Change-Id: Icb95050c9fee42ae7fa659b8ed4d3a4fbb98df6e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Timo Aarnipuro <timo.aarnipuro@qt.io>
| * When matching RegExps catch JIT failuresUlf Hermann2019-01-091-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | The Yarr JIT can generate code that fails to evaluate the RegExp at runtime. In that case we need to fall back to the interpreter. Also, don't needlessly cast the unsigned return value of RegExp::match to signed int before range-checking it. And fix some typos in the comments for the disassembler dumps. Fixes: QTBUG-72879 Change-Id: Ic8f80c076d6461d714816a9f66e1cac1d9b0c7a8 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-12-231-1/+1
|\| | | | | | | Change-Id: I9c3d282c11a556e616c5e1ba1b51e88b741327f6
| * Fix ICC change-of-sign warningsThiago Macieira2018-12-121-1/+1
| | | | | | | | | | | | | | error #68: integer conversion resulted in a change of sign Change-Id: I4ac1156702324f0fb814fffd156f81056d117bcb Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge remote-tracking branch 'origin/5.12' into devQt Forward Merge Bot2018-12-121-1/+2
|\| | | | | | | | | | | | | Conflicts: tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp Change-Id: Ic1dace832ad4b29023d24808b8617b5dcc915eb5
| * Fix an ambiguity with gcc 4.9Ville Voutilainen2018-12-071-1/+2
| | | | | | | | | | | | | | | | | | | | The detection of make_unique seems brittle. Luckily, gcc 4.9 sets a feature-testing macro for it, so adding that to the conditional of masm's own make_unique avoids the problem. Change-Id: I43a988eba7bc0f0795a3d47c70b7a8d121a0ed2d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | V4: Generate function tables on 64bit windowsUlf Hermann2018-12-034-16/+63
|/ | | | | | | | | | | | | | In order for global exception handlers to be called reliably, the runtime needs to unwind through JIT-generated code. This can be facilitated by installing a "function table" for each JITed function that specifies "use the frame pointer". Also make sure to generate a function table for JIT'ed regular expressions. Those were forgotten also in the linux case. Fixes: QTBUG-50061 Change-Id: Ib0b8ae9356ed80afe1cab017e36efa4ccbe73f90 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.12.0' into 5.12Qt Forward Merge Bot2018-11-162-1/+12
|\ | | | | | | Change-Id: I7623438dde316ae1e97802f91991f2e7ccc205a5
| * Add a configure test for std::make_uniqueLars Knoll2018-11-101-1/+2
| | | | | | | | | | | | | | | | | | | | | | Seems like this is the only reliable way to determine whether we have std::make_unique() or need to provide our own version. Change-Id: I5b162e0a2d2448d7bc519958c6e85a075812135a Fixes: QTBUG-71448 Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| * INTEGRITY: Fix build failureJanne Koskinen2018-11-071-0/+10
| | | | | | | | | | | | Change-Id: Ibdf441d8c73b507a404391f82695d7a99eb3c6ca Reviewed-by: Tuukka Turunen <tuukka.turunen@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | masm: Don't call fclose(nullptr) and initialize staticsUlf Hermann2018-11-142-2/+3
| | | | | | | | | | | | | | Otherwise our disassembler crashes on QV4_SHOW_ASM. Change-Id: I63b20c0932452fe852773f91ebecaa7f31dd040d Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Yarr: Fix developer build with MinGW 64Friedemann Kleint2018-11-131-0/+8
|/ | | | | | | | | | | | | | | Use the MinGW/Windows runtime specific printf formats for size_t, formats, fixing: 3rdparty\masm\yarr\YarrInterpreter.cpp: In lambda function: 3rdparty\masm\yarr\YarrInterpreter.cpp:2128:24: error: unknown conversion type character 'z' in format [-Werror=format=] out.printf("%4zu", index); ^~~~~~ 3rdparty\masm\yarr\YarrInterpreter.cpp:2128:24: error: too many arguments for format [-Werror=format-extra-args] cc1plus.exe: all warnings being treated as errors Change-Id: I9d39c51b907fc7834aaf353dd0ce8095852f9b3e Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Fix compilation in C++11 modeLars Knoll2018-10-152-0/+12
| | | | | | | | std::make_unique() doesn't exist in C++11, so add a polyfill. Task-number: QTBUG-71010 Change-Id: I6f1f32447be6fb7411c66fa2c986df5bf4346ee2 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Merge remote-tracking branch 'origin/5.11' into 5.12Liang Qi2018-10-081-0/+2
|\ | | | | | | | | | | | | | | Conflicts: src/3rdparty/masm/yarr/YarrJIT.h src/quick/items/qquickwindow.cpp Change-Id: I551404e1558d56c0b0626346ad1c86406bff0ec7
| * YarrJIT: disable MatchResult decoding constructor on 64bitErik Verbruggen2018-10-022-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | The YarrJIT generated code returns result differently on 32bit and 64bit platforms: on 64bit the struct is returned (where Win64 is explicitly handled separately), but on 32bit a uint64_t is returned. This constructor takes care of decoding that uint64_t value, so it is only needed on 32bit platforms. The code is actually invalid on 64bit. Task-number: QTBUG-69996 Change-Id: Ie8cc737da55633aafa4bd6b3ebb8625b4ab354c1 Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.11' into 5.12Liang Qi2018-10-013-7/+11
|\| | | | | | | | | | | | | Conflicts: src/quick/items/qquickevents_p_p.h Change-Id: I8c699aeb46903e2ea80a97a346cb5af460859a98
| * Fix Integrity OS allocator memory attributesJanne Koskinen2018-09-283-7/+11
| | | | | | | | | | | | | | | | | | Correctly set the attributes when allocation is extending to more than one page. Code spanning multiple pages can now be executed. Task-number: QTBUG-70350 Change-Id: I02af1add274f80befda5662d9670bfd2052c3c52 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Fix compile error with gcc7 in developer mode by defining FALLTHROUGHDavid Faure2018-09-071-1/+2
| | | | | | | | | | | | | | | | qtdeclarative/src/3rdparty/masm/yarr/YarrParser.h:355:24: error: this statement may fall through [-Werror=implicit-fallthrough=] FALLTHROUGH; Change-Id: I08321d30d54e192bcd3957a3fc7bf634220e9914 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | V4: Add JIT kind to disassemblyErik Verbruggen2018-08-303-16/+16
| | | | | | | | | | Change-Id: I6dd1cd6f795a93a186e84f5ab1c606f7e23fb85d Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Merge dev into 5.12Oswald Buddenhagen2018-08-211-2/+2
|\ \ | | | | | | | | | Change-Id: Ib4dd56aa31ea0f2026b61dbae061d0b333426d0f
| * | Fix udis86 compilationErik Verbruggen2018-08-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | It's compiled as a C file, so reinterpret_cast and nullptr cannot be used. Change-Id: I864a400f3752a4de51775a443a3049365bf2c5c1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | | Update Apple copyright year in the MASM attributionsSimon Hausmann2018-08-201-1/+1
|/ / | | | | | | | | | | | | Amends commit 18d2f78437d28987297148b63b99ceed6313a78a Change-Id: I5e81d6f0de945a06580fb7d8faedd4ee9df184a5 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* | Enable the Yarr JIT for regexps with nested parenthesisLars Knoll2018-08-111-1/+1
| | | | | | | | | | Change-Id: I4e7a44ae2b5759febec6f83ab9fa85612515ab04 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Get rid of the Macro assembler for ARMv6 and earlierLars Knoll2018-08-117-3083/+0
| | | | | | | | | | | | | | | | We've not been using it for quite some time, and the interpreter is the better fallback option there. Change-Id: If4d698115eec6038b369586ebdd8c1e4b88ea0ba Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Get rid of the SH4 macro assemblerLars Knoll2018-08-116-4520/+0
| | | | | | | | | | | | | | | | It's not being used afaict, and is completely untested. If someone wants to use QML on SH4, the interpreter will have to do. Change-Id: I609c0646b19120abca5ad1ee893de9ec944d8dbf Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Update Yarr to the latest version from WebKitLars Knoll2018-08-1056-1682/+6144
| | | | | | | | | | | | | | | | | | | | | | Updated Yarr to a to commit 4d2a53d60487cb1f8b2a9a1e9f684af336fd7d2c in WebKit. Adjusted the yarr code base to work with our older version of wtf and masm. Change-Id: I04b4593ece051e1d7aa087b87aa08c92595d1098 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>