Fix constructor calls
authorRoberto Raggi <roberto.raggi@nokia.com>
Mon, 21 May 2012 08:26:13 +0000 (10:26 +0200)
committerRoberto Raggi <roberto.raggi@nokia.com>
Mon, 21 May 2012 08:26:13 +0000 (10:26 +0200)
main.cpp
qv4isel.cpp

index 60870d021dba35526073817a8a523abbb5612ed5..354485c2df8db0749fc85c2728a6e393ad5ee473 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -114,12 +114,12 @@ int main(int argc, char *argv[])
     QStringList args = app.arguments();
     args.removeFirst();
 
-    QQmlJS::VM::ExecutionEngine vm;
     foreach (const QString &fn, args) {
         QFile file(fn);
         if (file.open(QFile::ReadOnly)) {
             const QString code = QString::fromUtf8(file.readAll());
             file.close();
+            QQmlJS::VM::ExecutionEngine vm;
             evaluate(&vm, fn, code);
         }
     }
index 47b9a77cb71006fedcd73b13cc686a7cb8a9ee07..dbfaad0ae4b793788fde075a3a098e2e998b7cf8 100644 (file)
@@ -371,10 +371,9 @@ void InstructionSelection::constructValue(IR::New *call, IR::Temp *result)
     else
         amd64_alu_reg_reg(_codePtr, X86_XOR, AMD64_RSI, AMD64_RSI);
 
-    amd64_alu_reg_reg(_codePtr, X86_XOR, AMD64_RDX, AMD64_RDX);
-    loadTempAddress(AMD64_RCX, baseTemp);
-    amd64_lea_membase(_codePtr, AMD64_R8, AMD64_RSP, 0);
-    amd64_mov_reg_imm(_codePtr, AMD64_R9, argc);
+    loadTempAddress(AMD64_RDX, baseTemp);
+    amd64_lea_membase(_codePtr, AMD64_RCX, AMD64_RSP, 0);
+    amd64_mov_reg_imm(_codePtr, AMD64_R8, argc);
     amd64_call_code(_codePtr, __qmljs_construct_value);
 }