aboutsummaryrefslogtreecommitdiffstats
path: root/src/3rdparty/masm/wtf
Commit message (Collapse)AuthorAgeFilesLines
* Enable JIT on INTEGRITY ARM64Kimmo Ollila2018-04-263-0/+21
| | | | | | | | This patch enables JIT on INTEGRITY s820Am and other ARM64 builds Change-Id: I2fa130f41a6c5bc6aa86bcfd5a01c2d431300561 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Nikola Velinov <nvelinov@ghs.com>
* Fix compiler warnings on gcc 7.2Lars Knoll2018-03-082-9/+9
| | | | | | | | | | | | | gcc 7.2 gives tons of warnings of the form: ./3rdparty/masm/wtf/Assertions.h:186:1: warning: this use of "defined" may not be portable [-Wexpansion-to-defined] In practice the marco expansion to (defined FOO && FOO) can safely be reduced to simply FOO, as #if FOO will expand to #if 0 if FOO is not defined. Change-Id: Idc1b09990725b99bbfa2c3bc949565254ea4174f Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Enable JIT on QNX7 for ARM64Samuli Piippo2018-01-111-5/+0
| | | | | | | | | | | Remove abs(long) definition, since the #ifdef check no longer works with QNX7 and QNX < 6.6 is no longer supported. [ChangeLog][Qml] Enabled ARM64 JIT for QNX7 Change-Id: Ife02f3edb508eddaf15da65954496265366e232d Reviewed-by: Simon Hausmann <simon.hausmann@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Use __builtin_trap in GCC tooThiago Macieira2017-07-221-1/+1
| | | | | | | It has had that for longer than Clang has existed. Change-Id: I84e45059a888497fb55ffffd14d3c03160312537 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Fix compilation with the Intel compilerThiago Macieira2017-04-031-1/+1
| | | | | | | | | | | | The template function isn't necessary anymore. It actually breaks the build... ARM64Assembler.h(3275): error: no instance of function template "assertUnused" matches the argument list argument types are: (bool) Assertions.h(238): note: this candidate was rejected because arguments do not match Change-Id: I27b55fdf514247549455fffd14b1c6dfe92f2b88 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* winrt: Switch to always use VirtualAllocFromAppMaurice Kalinowski2017-02-281-52/+22
| | | | | | | | | | | | | | | | | | In latest versions of Windows, one can use VirtualAllocFromApp also without CodeGeneration flag being set. In conjunction with the new garbage collector that let to the situtation that the gc tried to reserve using VirtualAlloc, then the V4Engine constructor checked for JIT availability and disable JIT. This lead to VirtualAllocFromApp alloced memory could not be used anymore and caused to a crash latest when trying to commit or release. With WinRT 8.1 being removed, we do not need the mem_align version anymore and can stick with VirtualAllocFromApp/Free, with the JIT check only testing VirtualProtectFromApp. Task-number: QTBUG-59198 Change-Id: I57f2259c6a6298b8761d00d3abf2589c30de1f63 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* winrt: Fix application startupMaurice Kalinowski2017-02-281-6/+13
| | | | | | | | | | | | | | | commit() was never implemented for the WinRT version of the OS Allocator. This commits fixes this under following setup - you have to use x86 or x64 - you have to use the experimental JIT For any of the other situations followup patches will follow. Task-number: QTBUG-59198 Change-Id: Ie87012ab2879139e27d63ac4bb96fe46905f7dfd Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* Remove branch compaction #ifdefSimon Hausmann2017-01-311-4/+0
| | | | | | | | | | | | | Since the #ifdef for ARMv7 and ARM64 makes it impossible to cross compile, we need to replace it with a template specialization of LinkBuffer. The "old" LinkBuffer becomes LinkBufferBase, then there's a generic LinkBuffer that's a sub-class of LinkBufferBase. Then there's a BranchCompactingLinkBuffer template that implements the compaction and two ARMv7 and ARM64 specializations of LinkBuffer<T> end up being sub-classes of BranchCompactingLinkBuffer instead of LinkBufferBase. Change-Id: Ib62fe24aa6c3570dfa311edc39fde6fb5975f3cc Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Add masm allocator for INTEGRITYKimmo Ollila2017-01-261-0/+232
| | | | | | Change-Id: I0d351f03416ff7ff596eccc88bb49abd48590b3f Reviewed-by: Antti Kokko <antti.kokko@qt.io> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge remote-tracking branch 'origin/5.8' into devLiang Qi2017-01-261-1/+1
|\ | | | | | | | | | | | | | | Conflicts: src/quick/util/qquickutilmodule.cpp tools/qmllint/main.cpp Change-Id: Ic2283f88c293ca7fc776de3e83eb4c7812309d8a
| * No need to define c99 math functions in c++11 modeJulien Gueytat2017-01-221-1/+1
| | | | | | | | | | Change-Id: I5a04cb678ad4a222d2a716dd1499f5103bb66c8e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Remove support for WinRT 8.1 and Windows Phone 8.1Maurice Kalinowski2017-01-191-11/+0
| | | | | | | | | | | | Task-number: QTBUG-57288 Change-Id: Id106f09dc824fbd95780dc5b479e16802d183e57 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Add initial support for INTEGRITYKimmo Ollila2017-01-132-3/+18
|/ | | | | | Change-Id: I1b44263a700f6c48c3b7798b662b30b03f9a4dc4 Reviewed-by: Rolland Dudemaine <rolland@ghs.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Allow for the QML engine to run on "hardened" Linux systemsSimon Hausmann2016-11-221-0/+10
| | | | | | | | | | Similar to WinRT let's test whether we can allocate executable memory before enabling the JIT. The caller code will fall back to the interpreter. Task-number: QTBUG-56758 Change-Id: I63d6830c6acc8cb316333162be212e1764483baa Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.8Simon Hausmann2016-10-131-1/+1
|\ | | | | | | Change-Id: I175b27337b534c0b8f46a4a792d2c43cde73ffc4
| * Fix linking against static build in Visual Studio 2015Pavol Markovic2016-10-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fix builds on commit f656fc588bab4104d531cb46836168da6736a518 from 22 April 2016 which conditionally includes missing math functions for Visual Studio older than 2013. log2 and log2f functions have not been included in the fix because there was no name conflict in Qt lib itself, but the problem becomes prominent when trying to link an application simultaneously to libucrt.lib and qt built with -static -static-runtime options. This fix corrects following linking issues: Qt5Qml-static.lib(qv4value.obj) : error LNK2005: _log2 already defined in libucrt.lib(log2d.obj) Qt5Qml-static.lib(qv4dateobject.obj) : error LNK2005: _log2 already defined in libucrt.lib(log2d.obj) Qt5Qml-static.lib(qv4runtime.obj) : error LNK2005: _log2 already defined in libucrt.lib(log2d.obj) Qt5Qml-static.lib(qv4globalobject.obj) : error LNK2005: _log2 already defined in libucrt.lib(log2d.obj) Qt5Qml-static.lib(qv4jsonobject.obj) : error LNK2005: _log2 already defined in libucrt.lib(log2d.obj) This fix has been previously committed to dev branch for review but was recommended to use branch 5.6, same as referenced commit. Change-Id: Iad88d1665c243c4beb91fe71bf5de390cc8ee73e Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Fix qmldevtools for QML compilerSimon Hausmann2016-08-101-1/+1
| | | | | | | | | | | | | | | | Re-add some run-time functions in the qmldevtools and replace the use of the WTF assert that pulls in some wtf functions with a Q_ASSERT. Change-Id: Id7b4bdb02c54e8b498db3fab78870463fa4fac9a Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-201-1/+1
|\| | | | | | | | | | | | | | | Conflicts: src/qml/jit/qv4targetplatform_p.h src/quick/accessible/qaccessiblequickitem_p.h Change-Id: Ic95075a5fad81ec997a61561bd65979dfa3b9d4d
| * Make some QNX only code Dinkum specificJames McDonnell2016-06-141-1/+1
| | | | | | | | | | | | | | The undefines won't be needed for QNX 7.0 with GNU libc++. Change-Id: Ibcea09aad54a956fc056ceaac5db6a0d53cd176c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-06-101-1/+1
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Part of 0e053528 was reverted in the merge, about lastTimestamp. It will be applied later in separate commit. qmltest::shadersource-dynamic-sourceobject::test_endresult() was blacklisted on linux. Conflicts: .qmake.conf tests/auto/qml/debugger/qqmlprofilerservice/tst_qqmlprofilerservice.cpp tests/auto/qmltest/BLACKLIST tests/auto/qmltest/qmltest.pro Task-number: QTBUG-53590 Task-number: QTBUG-53971 Change-Id: I48af90b49a3c7b29de16f4178a04807f8bc05130
| * Compile Fix for OpenBSD in C++11 modeRalf Nolden2016-06-021-1/+1
| | | | | | | | | | | | | | | | Add a __cplusplus condition to an already existing OpenBSD defined part to activate the code only on older gcc compilers. Change-Id: Ied8719dc35bf203ecbadd1099d711c027722121c Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-04-272-0/+10
|\| | | | | | | | | | | | | | | Conflicts: src/quick/items/qquickimagebase.cpp src/imports/layouts/plugin.cpp Change-Id: I5f48474df4034a1347ec74795c85d369a55b6b21
| * Fix compilation with Visual Studio 2015 Update 2 (static build)Kai Koehne2016-04-222-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix linker errors: Qt5Qml.lib(qv4value.obj) : error LNK2005: _nextafter already defined in libucrt.lib(nextafter.obj) Qt5Qml.lib(qv4dateobject.obj) : error LNK2005: _nextafter already defined in libucrt.lib(nextafter.obj) Qt5Qml.lib(qv4runtime.obj) : error LNK2005: _nextafter already defined in libucrt.lib(nextafter.obj) Qt5Qml.lib(qv4globalobject.obj) : error LNK2005: _nextafter already defined in libucrt.lib(nextafter.obj) Qt5Qml.lib(qv4jsonobject.obj) : error LNK2005: _nextafter already defined in libucrt.lib(nextafter.obj) All the defined functions where added in Visual Studio 2013: https://blogs.msdn.microsoft.com/vcblog/2013/07/19/c99-library-support-in-visual-studio-2013/ Change-Id: Ied924b6c93c6b2f81f2793237c9370a70bd6a60c Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
* | V4: add Aarch64/ARM64 support.Erik Verbruggen2016-01-191-4/+10
| | | | | | | | | | | | | | | | | | | | 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-164-10/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* | 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>
* 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-191-1/+1
| | | | | | | | | 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>
* WinRT: fix warningsMaurice Kalinowski2015-05-191-1/+1
| | | | | | Change-Id: If11db499d743cbe79959145ecfcbcfec896a6845 Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@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-241-1/+1
|\ | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf LICENSE.GPLv2 examples/qml/networkaccessmanagerfactory/view.qml src/qml/jsruntime/qv4runtime.cpp src/qml/jsruntime/qv4stringobject.cpp Change-Id: I5d12f436d60995e51d5c2f59d364e9cbc24f8e32
| * 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-174-4/+4
| | | | | | | | | | Change-Id: I4d5640ff95e1361ec7e65fb3e87d7726d8185ff5 Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
* | Update copyright headersJani Heikkinen2015-02-124-4/+4
| | | | | | | | | | | | | | | | | | 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>
* | QML 3rdparty: revert unnecessary change.Erik Verbruggen2015-01-121-1/+1
| | | | | | | | | | | | | | | | 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>
* V4 JIT: enable the JIT when compiling with clang on ARM.Erik Verbruggen2014-07-241-1/+2
| | | | | | | | 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>
* 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 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-051-0/+1
| | | | | | | | 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-031-1/+1
| | | | | Change-Id: I55a2a96a1a774c79cc2146c6b47d441fede1d102 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
* 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>
* 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>
* Fix build on WinRTAndrew Knight2013-11-063-0/+75
| | | | | | | | 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 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>