| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
It has had that for longer than Clang has existed.
Change-Id: I84e45059a888497fb55ffffd14d3c03160312537
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Change-Id: I0d351f03416ff7ff596eccc88bb49abd48590b3f
Reviewed-by: Antti Kokko <antti.kokko@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quick/util/qquickutilmodule.cpp
tools/qmllint/main.cpp
Change-Id: Ic2283f88c293ca7fc776de3e83eb4c7812309d8a
|
| |
| |
| |
| |
| | |
Change-Id: I5a04cb678ad4a222d2a716dd1499f5103bb66c8e
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| | |
Task-number: QTBUG-57288
Change-Id: Id106f09dc824fbd95780dc5b479e16802d183e57
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|/
|
|
|
|
| |
Change-Id: I1b44263a700f6c48c3b7798b662b30b03f9a4dc4
Reviewed-by: Rolland Dudemaine <rolland@ghs.com>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| | |
Change-Id: I175b27337b534c0b8f46a4a792d2c43cde73ffc4
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/qml/jit/qv4targetplatform_p.h
src/quick/accessible/qaccessiblequickitem_p.h
Change-Id: Ic95075a5fad81ec997a61561bd65979dfa3b9d4d
|
| |
| |
| |
| |
| |
| |
| | |
The undefines won't be needed for QNX 7.0 with GNU libc++.
Change-Id: Ibcea09aad54a956fc056ceaac5db6a0d53cd176c
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quick/items/qquickimagebase.cpp
src/imports/layouts/plugin.cpp
Change-Id: I5f48474df4034a1347ec74795c85d369a55b6b21
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
| |
Change-Id: If48e8bcf55781d1148e15ce19e07cfbe35d829d2
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Jake Petroules <jake.petroules@theqtcompany.com>
|
|
|
|
|
| |
Change-Id: If26e00877521c78a9d48b9798fe64e1d587bc10a
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Change-Id: If11db499d743cbe79959145ecfcbcfec896a6845
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
.qmake.conf
LICENSE.GPLv2
examples/qml/networkaccessmanagerfactory/view.qml
src/qml/jsruntime/qv4runtime.cpp
src/qml/jsruntime/qv4stringobject.cpp
Change-Id: I5d12f436d60995e51d5c2f59d364e9cbc24f8e32
|
| |
| |
| |
| |
| |
| |
| | |
Function getpagesize is deprecated and should not be used.
Change-Id: I4d4827662b2e8cb1e668129491a11d58f6722a1d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
| |
| |
| |
| |
| | |
Change-Id: I4d5640ff95e1361ec7e65fb3e87d7726d8185ff5
Reviewed-by: Sergio Ahumada <sahumada@texla.cl>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| | |
Change-Id: Ia54a259bbf05cca7dc1ed868a75931efa95851b3
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|/
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: Ie06af2e33e5adf6d56391929bd763b01e57557b0
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
| |
Change-Id: I55a2a96a1a774c79cc2146c6b47d441fede1d102
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
Change-Id: I79b50e786f46c9a15963f09158c18871c95fe093
Reviewed-by: Peter Kümmel <syntheticpp@gmx.net>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|