aboutsummaryrefslogtreecommitdiffstats
path: root/qv4isel_masm.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2012-10-18 08:49:22 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2012-10-18 10:32:50 +0200
commitaf12a21b1b65d7678eb36c64dc4a2bc3ea331ef1 (patch)
tree0a457c038fb9f57b90f9e3a6660b8b7d62aea999 /qv4isel_masm.cpp
parente400895c0ec5354617751afdbfcf65ad242b3723 (diff)
Inline string creation in the generated JIT code
Change-Id: Ifaef87046c083b36222f6204291ee3a61ffcd20b Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Diffstat (limited to 'qv4isel_masm.cpp')
-rw-r--r--qv4isel_masm.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/qv4isel_masm.cpp b/qv4isel_masm.cpp
index 2a03dd350a..cf0e06c5d0 100644
--- a/qv4isel_masm.cpp
+++ b/qv4isel_masm.cpp
@@ -374,8 +374,9 @@ void InstructionSelection::visitMove(IR::Move *s)
copyValue(t, t2);
return;
} else if (IR::String *str = s->source->asString()) {
- // ### inline
- generateFunctionCall(t, __qmljs_init_string, _engine->newString(*str->value));
+ Address dest = loadTempAddress(Gpr0, t);
+ Value v = Value::fromString(_engine->newString(*str->value));
+ storeValue(v, dest);
return;
} else if (IR::Closure *clos = s->source->asClosure()) {
generateFunctionCall(t, __qmljs_init_closure, TrustedImmPtr(clos->value), ContextRegister);