V4 JIT: fix up register usage for linux/macos on x86_64.
authorErik Verbruggen <erik.verbruggen@digia.com>
Wed, 5 Mar 2014 16:47:59 +0000 (17:47 +0100)
committerThe Qt Project <gerrit-noreply@qt-project.org>
Fri, 7 Mar 2014 10:00:56 +0000 (11:00 +0100)
Change-Id: Ia6f3a78410fd41c58904a60f4c7a0630cf5230d0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
src/qml/jit/qv4assembler.cpp
src/qml/jit/qv4isel_masm.cpp

index 2495771..334d7e7 100644 (file)
@@ -97,14 +97,15 @@ QV4::ExecutableAllocator::ChunkOfPages *CompilationUnit::chunkForFunction(int fu
 /* Platform/Calling convention/Architecture specific section */
 
 #if CPU(X86_64)
+#  if OS(LINUX) || OS(MAC_OS_X)
 static const Assembler::RegisterID calleeSavedRegisters[] = {
-    // Not used: JSC::X86Registers::rbx,
-    // Not used: JSC::X86Registers::r10,
+    JSC::X86Registers::ebx,
     JSC::X86Registers::r12, // LocalsRegister
-    // Not used: JSC::X86Registers::r13,
-    JSC::X86Registers::r14 // ContextRegister
-    // Not used: JSC::X86Registers::r15,
+    JSC::X86Registers::r13,
+    JSC::X86Registers::r14, // ContextRegister
+    JSC::X86Registers::r15
 };
+#  endif
 #endif
 
 #if CPU(X86)
index 08bc0d7..fd2db58 100644 (file)
@@ -218,6 +218,7 @@ static QVector<int> getIntRegisters()
             << JSC::X86Registers::ebx;
 #  else // x86_64 with linux or with macos
     static const QVector<int> intRegisters = QVector<int>()
+            << JSC::X86Registers::ebx
             << JSC::X86Registers::edi
             << JSC::X86Registers::esi
             << JSC::X86Registers::edx