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 60870d0..354485c 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 47b9a77..dbfaad0 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);
 }