aboutsummaryrefslogtreecommitdiffstats
path: root/src/3rdparty
Commit message (Collapse)AuthorAgeFilesLines
* Remove the qmake project filesFabian Kosmale2021-01-153-221/+0
| | | | | | | | | Remove all qmake project files, except for examples which are used to test that qmake continues to work. Change-Id: Ic4abb72dc2dcd75df7a797c56056b6b3c5fe62ac Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* masm: Add error handling for failed mprotect()Ulf Hermann2021-01-1211-204/+23
| | | | | | | | | | | | If we cannot mprotect() we have to abort the JIT compilation. Delete RepatchBuffer.h as it is unfixable in that regard. Luckily we don't use it. Task-number: QTBUG-89659 Pick-to: 5.15 Change-Id: Ic5ddbdf51b471db4ddeaa75aab48b24c1f7ced56 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
* JIT: When making memory writable, include the exception handlerUlf Hermann2020-12-174-12/+18
| | | | | | | | | | | | makeWritable() rounds the memory down to the next page boundary. Usually we include the exception handler this way, unless the offset from the page boundary is less than the exception handler size. Make it explicit that we do want the exception handler to be writable, too. Fixes: QTBUG-89513 Pick-to: 5.15 6.0 Change-Id: I2fb8fb0e1dcc3450b036924463dc1b40d2020c46 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* YarrParser: compile with explicit QChar(int) constructorDavid Faure2020-11-151-7/+7
| | | | | Change-Id: I10d30d1ba83f8db9568cef18a32baac1627b2c17 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Replace old Q_DECL statements with modern C++Allan Sandfeld Jensen2020-10-311-8/+8
| | | | | | | Since we depend on C++17 now, all of these can go. Change-Id: I0484fd4bb99e4367ec211c29146c316453729959 Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
* Remove qmake wildcard in masm.priFriedemann Kleint2020-06-301-22/+55
| | | | | | | | | | It stopped working on Windows after the QRegularExpression refactoring of qmake. Change-Id: Ic91193ffe709eae36104a7ffd9c09d6b4461322f Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io> Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Add ; to Q_UNUSED and UNUSED_PARAMLars Schmertmann2020-06-262-6/+6
| | | | | | | | | This is required to remove the ; from the macro with Qt 6. Task-number: QTBUG-82978 Change-Id: Iead53d18fd790fb2d870d80ef2db79666f0d2392 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Fix typo introduced by 1c6a70e1880a8André Klitzing2020-06-161-1/+1
| | | | | | | Task-number: QTBUG-84497 Pick-to: 5.15 Change-Id: I7ab4766597eb6ff74922219f6b3f2aedc9f3d55f Reviewed-by: Kai Koehne <kai.koehne@qt.io>
* Remove winrtOliver Wolff2020-06-042-127/+1
| | | | | | | | | Task-number: QTBUG-84434 Change-Id: If8f57f00726868a3540c877d07fca761618e4f08 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@qt.io> Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* QtQml: Use unicode character literalsUlf Hermann2020-06-031-1/+1
| | | | | | | This avoids the warnings on conversion to QChar. Change-Id: Ib774f24592d6f09a531c60bb6fa6e5bdbec88120 Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
* Fix -Wdeprecated-copy warningsFabian Kosmale2020-05-283-9/+3
| | | | | | | | Mostly by avoiding custom functions when the compiler generated ones work just fine Change-Id: If8152fd24c9084bd85be3741fc218709e50fc375 Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
* Port python check to configure systemKai Koehne2020-05-071-2/+2
| | | | | | | | | | Also check for py, python2, python3 executables. Task-number: QTBUG-72926 Fixes: QTBUG-84038 Pick-to: 5.15 Change-Id: I844db4dd630d9b3025eca529ee57565b600ebbac Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* Fix Clang 10 warning about converting ULLONG_MAX to doubleThiago Macieira2020-05-051-1/+1
| | | | | | | | | | | | | The compiler must convert ULLONG_MAX to double before adding 1, so this expression was wrong. MathExtras.h:402:43: error: implicit conversion from 'unsigned long long' to 'double' changes value from 18446744073709551615 to 18446744073709551616 [-Werror,-Wimplicit-int-float-conversion] Task-number: QTBUG-83666 Pick-To: 5.15 Change-Id: I99ab0f318b1c43b89888fffd160b4a95a258423b Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Get rid of Q_OPENGL_ES* macrosEskil Abrahamsen Blomfeldt2020-04-171-3/+0
| | | | | | | | | | | | | | | | These macros are no longer defined, and we will use QT_CONFIG instead, since that is more robust (it checks against misspellings). This also removes some dead code from the WebKit code in Qt QML. The condition never resolved to true in our case since Qt QML does not depend on Qt GUI, so even before the macro would not be set. This is just a leftover anyway, as the graphical parts are not used in QML. Task-number: QTBUG-83467 Change-Id: I2c4b7f928538cc75ce408deb357f8fd92a84d8e4 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* 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>