| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
We don't build the assembler or the JIT in bootstrap mode.
Change-Id: Idc3a56cc1e9cfba415bef9cba221c8a60ee75010
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\
| |
| |
| | |
Change-Id: I5d2c3da38df35922b2147c3c0bc55c6c3bae2fe5
|
| |\
| | |
| | |
| | | |
Change-Id: Ic008bf9223a9ac293c925044355ff218f7ed7f78
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/qml/qqmlimport.cpp
Change-Id: I6add6267297ea50a646d43d212027a168dca8916
|
| |\|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/3rdparty/masm/assembler/LinkBuffer.h
src/qmltest/doc/src/qtquicktest-index.qdoc
tests/auto/qml/qqmllanguage/tst_qqmllanguage.cpp
Change-Id: I7d83ad95cf489dda794dd7a0a33bad3ef3b05609
|
| | |
| | |
| | |
| | |
| | |
| | | |
Task-number: QTBUG-74876
Change-Id: I8e816d29b709750b121cc63edfc5f3493a3ed119
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\| |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Conflicts:
src/qml/qml/qqmlmetatype.cpp
src/qml/types/qqmlmodelsmodule.cpp
Change-Id: Idc63689ba98d83a455283674f4b5cf3014473605
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The backup implementation of make_unique is in Optional.h
Change-Id: I7a7f31ff451ec5336468b8447088e3f4d5d0cecb
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| | |
Change-Id: I9c3d282c11a556e616c5e1ba1b51e88b741327f6
|
| |
| |
| |
| |
| |
| |
| | |
error #68: integer conversion resulted in a change of sign
Change-Id: I4ac1156702324f0fb814fffd156f81056d117bcb
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\|
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/qml/debugger/qqmldebugjs/tst_qqmldebugjs.cpp
Change-Id: Ic1dace832ad4b29023d24808b8617b5dcc915eb5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|\
| |
| |
| | |
Change-Id: I7623438dde316ae1e97802f91991f2e7ccc205a5
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| | |
Change-Id: Ibdf441d8c73b507a404391f82695d7a99eb3c6ca
Reviewed-by: Tuukka Turunen <tuukka.turunen@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| |
| |
| | |
Otherwise our disassembler crashes on QV4_SHOW_ASM.
Change-Id: I63b20c0932452fe852773f91ebecaa7f31dd040d
Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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/3rdparty/masm/yarr/YarrJIT.h
src/quick/items/qquickwindow.cpp
Change-Id: I551404e1558d56c0b0626346ad1c86406bff0ec7
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| | |
Change-Id: I6dd1cd6f795a93a186e84f5ab1c606f7e23fb85d
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
|\ \
| | |
| | |
| | | |
Change-Id: Ib4dd56aa31ea0f2026b61dbae061d0b333426d0f
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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>
|
|/ /
| |
| |
| |
| |
| |
| | |
Amends commit 18d2f78437d28987297148b63b99ceed6313a78a
Change-Id: I5e81d6f0de945a06580fb7d8faedd4ee9df184a5
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
|
| |
| |
| |
| |
| | |
Change-Id: I4e7a44ae2b5759febec6f83ab9fa85612515ab04
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\|
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
examples/quick/tableview/pixelator/main.cpp
examples/quick/demos/
Change-Id: Id7eaae6584017a4ab4ec9dd97b56d5c1a417f0e3
|
| |
| |
| |
| |
| | |
Change-Id: I7ab9545d8c7fd747e3a6ddae8ecee53897d9cb66
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
| |
| |
| |
| |
| |
| |
| |
| | |
This is to accommodate operating systems such as VxWorks that require
writable pages in order to perform the flushing
Change-Id: Iefcd26a4d7fa74fa046776c6ee2883399a4d31dc
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: Ie86307fe55fce957adf48e9861022fddfa3d7374
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
|
|\|
| |
| |
| | |
Change-Id: I280d42b8926c0cada1f35d322b80aaf2b0ef0a73
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
-typedef "Jump" may not be used in an elaborated type specifier
-explicit specialization of function must precede its first use
-"Value" is ambiguous
Change-Id: Ic15c196f1b33211cd3f2f25a54ba478747336fe4
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Reviewed-by: Janne Koskinen <janne.p.koskinen@qt.io>
Reviewed-by: Nikola Velinov <nvelinov@ghs.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|