| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
64-bit ARM boards (f.ex. with Tegra X1) are becoming common and
therefore enabling the JIT would be highly beneficial.
Change-Id: I5ee46258151885194f93d2528edddd5f51dff964
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
Reviewed-by: Erik Verbruggen <erik.verbruggen@theqtcompany.com>
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
[ChangeLog][QtQml] Enabled Just-In-Time compilation for JavaScript on MIPS
Change-Id: Idce070f29645760d6376767ef67e4592828c104d
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Conflicts:
tests/auto/qml/debugger/qv4profilerservice/qv4profilerservice.pro
tests/auto/qml/debugger/qqmldebuggingenabler/qqmldebuggingenabler.pro
Change-Id: I76d87e3df97ebdba902ca3d7488c1582eca2a83c
|
| |
| |
| |
| |
| |
| |
| | |
Cherry-picked from qtwebkit (0546c8656a3728bf4375da39027e096beba4f111)
Change-Id: I924661dc51bee334c6f26557e765a3a1e8ec0bce
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| | |
Cherry-picked from qtwebkit (2d9ed318a21f6102dddc0b91de2698908a9b8efc)
Change-Id: I88d961e89d046b20329bc1fcfc10bfceb21d737b
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This patch improves YarrJIT efficiency on mips platforms.
Cherry-picked from qtwebkit (ea22657d17a934b04c8621dc8891a1d4d80510e3)
Change-Id: I83eca9716e4d6e9e1dd4d8ceb76c3da380502ce7
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In 6572d4e50d73ac60a8974d07de74c27a7f99ebef we moved the
addressTempRegister to r10, and in
d8b276a59402cbbe6d070ba38805350e7f3dd8a1 we made sure that the YarrJIT
saves it too. JSC solved this by moving it to r6, which is already
saved by the YarrJIT. To make a future update of the assembler easier,
we also move it to r6.
This requires that we move our scratch register too. But, because it is
used a lot, we don't want it above r7 for Thumb2 reasons. Therefore, we
move the engine to r10, and the scratch register to r5.
Change-Id: I35be539940d9fe80971973cfa7f3a8dab2196a1e
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
Generate better code for in-place binary operations where the right-hand
side is either a constant or a memory address. Now that the JIT can do
this, also tell the register allocator not to un-spill that right-hand
side.
Change-Id: I0ab852f6b92f90dfed99c05fbaf91aad2549ecf4
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>
|
|
|
|
|
|
|
|
|
|
|
| |
JSC was using r3 as the address scratch register, which collides with
the 4th parameter in a function call. This sometimes shows up when
generateFunctionCall needs to do a calulated jump.
Also fix the usage of r11, which seems to be the fp on some platforms.
Change-Id: Ib2ea64b9342e5aa631db6a7641747f899b2fbd89
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
| |
The addresses were truncated to 32bits, which is a problem on win64,
because JITted code ended up outside that range.
Change-Id: I0d8b92486714340dffe4b4c2de29cf11a929a149
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
| |
... that should soon get enabled.
Change-Id: I2f8393cab5e99a7f5d3c7df6af6385fefd2d4dd1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I5cb0c7798d0e530f3137710bf0e723bd7b64dc89
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
|
| |
We want to allow intermixing thumb and ARM for all builds, not only Android.
Modified the macro to do a thumb-compatible null pointer check.
This also works around a miscompilation on QNX where the compiler appeared to
make incorrect assumptions about the address of functions we are taking.
Change-Id: Ib8fc400178e0c2621bde2ca94b3f94041591e19a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It turns out that in QML it is not unusual that during early binding
evaluations due to the undefined order, the evaluation tries to look up
properties in objects that aren't initialized yet and thus exceptions are
thrown. Eeach thrown exception saves a stack trace, which is expensive to
generate when using the JIT, as it does full stack unwinding.
This patch implements a more light-weight approach by storing the instruction
pointer in the context before leaving JIT generated code.
Change-Id: I95e1cfd01179247dfc2c1df949828f474a23161b
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
| |
Add 64 bit code patch and avoid some duplicated
calculation in 32 bit mode
Change-Id: I0e111de8ac4e733aa8802c49b4b15d785688d7ea
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
| |
Change-Id: I11caf07a8776bb2c6527639f22d47103f4ca1cef
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I5044acd4263b71734e4eb5d7e74b1a4a8414741e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
It caused:
error: stray ‘\302’ in program
error: stray ‘\304’ in program
when cross-compiling for ARM with gcc 4.5
Change-Id: Ibd80a21b436b65b355181b1e304ade22f9ff7404
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
| |
Change-Id: If32ee3528fa0b6a2d04263d6c6abe1d34053d658
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
| |
Performance improves by about 15% on fact.3.js when Qt is build in
debug mode.
Change-Id: I4a1c868fe211c1e0f9e7d9a5652f7726b37405d1
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
| |
Only on X86, and still untested.
Change-Id: I746daa47ed019ce0017a67a228a719983b1ebaa6
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
| |
Change-Id: Ie6c918730d0ece0e9e63254ae97c257ee013f2f4
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
|
| |
Disable the checks of the thumb bit in code pointers when building for Android,
because we want to allow for intermixing of thumb (what the JIT generates) and
arm code (what the compiler generates for run-time functions we call, in debug
builds)
Change-Id: I0bcce4015d18db4e38244a1d1ad89413b3f17152
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
| |
Don't include linux kernel headers from user space just for one constant :)
Change-Id: Ia760b3f0cccbdad49f3f2ce31598a109b63ac788
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
| |
Pull in the BSD licensed SegmentedVector (that is based on Vector)
and use malloc/free instead of fastMalloc/fastFree in the constant pool.
Change-Id: I25aeb34a6f778f2c886a331851d8fc1dd0fc1d61
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add missing include for sys_cache_control, and make sure we don't
define PLATFORM(IOS) or PLATFORM(IOS_SIMULATOR), since we're
PLATFORM(QT).
Intentionally squashed both changes for easier rebasing against
upstream.
Change-Id: I2e010aec76d1f1863d177af8a70091cc88bbc999
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
|
|
|
|
|
|
|
|
|
| |
* Extend FunctionPtr by another overloaded constructor that allows passing 6 arguments
* Work around STL <> WTF incompatibilities with iterators
* Remove unused printInternal functions that rely on CString/WTFString
Change-Id: Ie0cc503288871cb594716e47e03dd509b1b5ac85
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This brings in various bug fixes in the ARM and MIPS assemblers as well as
a Yarr crash fix and performance fix.
This change doesn't compile as-is, but the next change will
apply the modifications necessary to compile. That'll make future updates
easier as it allows for cherry-picking because the modifications are usually
always the same.
Change-Id: Iac32f62c71e8ff908deb41f28f12fbc98c0823e1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
|
|
|
| |
Change-Id: I03837e9b392957bd64a6710c1b85b4429556ba06
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|
|
Change-Id: I507cd5707b7d7223a0d901cf939896fb2649b684
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
|