| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
| |
Apple errorneously detects pagesize as belonging to their private API.
Avoid this by putting the functions into an inline namespace to change
their mangling.
Fixes: QTBUG-69577
Change-Id: I061febdc6f961fa8a6e1d43de4154a8e26b04f27
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit 719fa10c8219537187f2e3c63eacdf44bd76d410)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
Mostly by avoiding custom functions when the compiler generated ones
work just fine
Change-Id: If8152fd24c9084bd85be3741fc218709e50fc375
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
string literal "QtQml" is entirely enough for the name here
Change-Id: I62c43f3535998e358d7012b5a455f4e01bb3f1a0
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
|
|
|
|
|
| |
Change-Id: Ifab0b23fbf35bd31061a28500fdfd69de1905b1c
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
Otherwise our disassembler crashes on QV4_SHOW_ASM.
Change-Id: I63b20c0932452fe852773f91ebecaa7f31dd040d
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
src/quick/items/qquickevents_p_p.h
Change-Id: I8c699aeb46903e2ea80a97a346cb5af460859a98
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| | |
Change-Id: I4e7a44ae2b5759febec6f83ab9fa85612515ab04
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Thiago requested a clarifying comment and he's right about that.
Amends 4d9e329df599da96927d559931eabd0062bcf147
Change-Id: Ia9a34eb556da485d51a3d48412a98070fb397ab3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We would pick an incompatible code path when compiling with clang,
using an memfd when creating the memory that we later tried to
make executable. This differed from how the memory was made in
the canAllocateExecutableMemory() function, thus the problem was
not detected ahead of time and we crashed in ExecutableAllocator.h
when reaching a Q_UNREACHABLE.
Amends 847dfa77e9b5d93f7dbb6b78665f1f86d4431a02.
The fix is to simply disable this code on Android.
Task-number: QTBUG-67464
Change-Id: Ibab753995d89d35d31340702ab4a3c4756adc332
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I280d42b8926c0cada1f35d322b80aaf2b0ef0a73
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| | |
Change-Id: I6b2568337c09ff98850b4ecccccc9a8fc25064cd
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We can't tag mmap anonymous segments, like Mach/Darwin can, but we can
use a memfd (which can take a name) and then its name will show in
/proc/PID/maps. For example, pmap shows for tst_qjsengine at an
arbitrary point I stopped execution at:
Address Kbytes RSS PSS Dirty Swap Mode Mapping
00007f9cc2db7000 2040 4 4 4 0 rw-p- /memfd:JSVMStack:/home/tjmaciei/obj/qt/qt5/qtbase/lib/libQt5Qml.t.so.5 (deleted)
00007f9cc2fb7000 4344 4 4 4 0 rw-p- /memfd:JSVMStack:/home/tjmaciei/obj/qt/qt5/qtbase/lib/libQt5Qml.t.so.5 (deleted)
00007f9cc33f6000 40 0 0 0 0 ---p- /memfd:JSGCHeap:/home/tjmaciei/obj/qt/qt5/qtbase/lib/libQt5Qml.t.so.5 (deleted)
00007f9cc3400000 128 64 64 64 0 rw-p- /memfd:JSGCHeap:/home/tjmaciei/obj/qt/qt5/qtbase/lib/libQt5Qml.t.so.5 (deleted)
00007f9cc3420000 3928 0 0 0 0 ---p- /memfd:JSGCHeap:/home/tjmaciei/obj/qt/qt5/qtbase/lib/libQt5Qml.t.so.5 (deleted)
00007f9cd099e000 4 4 4 4 0 rw-p- /memfd:unknown-usage:/home/tjmaciei/obj/qt/qt5/qtbase/lib/libQt5Qml.t.so.5 (deleted)
00007f9cd099f000 4 4 4 4 0 r-xp- /memfd:JITCode:/home/tjmaciei/obj/qt/qt5/qtbase/lib/libQt5Qml.t.so.5 (deleted)
I suppose that before upstreaming this patch, we'd change the "QtQml"
name prefix or remove it.
Change-Id: I84e45059a888497fb55ffffd14d3ba60f9707051
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>
|