aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler
diff options
context:
space:
mode:
authorErik Verbruggen <erik.verbruggen@me.com>2013-09-25 15:16:39 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-10-04 13:13:42 +0200
commit772c03def11e3e60a53f272746277b70c53635c0 (patch)
treef794a5734470106f0f5fc18924af942752a30c6f /src/qml/compiler
parent0889e861b689bbd628b803a0a0824421c2399a1c (diff)
V4 JIT: enable register allocator for linux/x86.
Change-Id: I9424838139a419beb2e207f168fc25c0c47c64e3 Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'src/qml/compiler')
-rw-r--r--src/qml/compiler/qv4isel_masm.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4isel_masm.cpp b/src/qml/compiler/qv4isel_masm.cpp
index dd754288db..1146c08d6c 100644
--- a/src/qml/compiler/qv4isel_masm.cpp
+++ b/src/qml/compiler/qv4isel_masm.cpp
@@ -632,9 +632,14 @@ void InstructionSelection::run(int functionIndex)
V4IR::Optimizer opt(_function);
opt.run();
-#if CPU(X86_64) && (OS(MAC_OS_X) || OS(LINUX))
+#if (CPU(X86_64) && (OS(MAC_OS_X) || OS(LINUX))) || (CPU(X86) && OS(LINUX))
static const bool withRegisterAllocator = qgetenv("QV4_NO_REGALLOC").isEmpty();
if (opt.isInSSA() && withRegisterAllocator) {
+#if CPU(X86) && OS(LINUX) // x86 with linux
+ static const QVector<int> intRegisters = QVector<int>()
+ << JSC::X86Registers::edx
+ << JSC::X86Registers::ebx;
+#else // x86_64 with linux or with macos
static const QVector<int> intRegisters = QVector<int>()
<< JSC::X86Registers::edi
<< JSC::X86Registers::esi
@@ -643,6 +648,7 @@ void InstructionSelection::run(int functionIndex)
<< JSC::X86Registers::r8
<< JSC::X86Registers::r13
<< JSC::X86Registers::r15;
+#endif
static const QVector<int> fpRegisters = QVector<int>()
<< JSC::X86Registers::xmm1
<< JSC::X86Registers::xmm2