diff options
author | Lars Knoll <lars.knoll@digia.com> | 2012-10-18 08:49:22 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2012-10-18 10:32:50 +0200 |
commit | af12a21b1b65d7678eb36c64dc4a2bc3ea331ef1 (patch) | |
tree | 0a457c038fb9f57b90f9e3a6660b8b7d62aea999 /qv4isel_masm.cpp | |
parent | e400895c0ec5354617751afdbfcf65ad242b3723 (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.cpp | 5 |
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); |