aboutsummaryrefslogtreecommitdiffstats
path: root/qv4codegen.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@digia.com>2012-11-14 09:07:01 +0100
committerErik Verbruggen <erik.verbruggen@digia.com>2012-11-14 12:20:19 +0100
commitb233a73fea9bc34c97ef0fcd6d8088288394f643 (patch)
treedde6bf49798aabda5c55f4023ecfca4df0df2e3b /qv4codegen.cpp
parenta09d75dd1fd4d598e641ff29ee73c312a0aaba73 (diff)
Optimise move instructions involving constants
Change-Id: Ic12a54ab1c5789cc5684d38961c58f6b34f9597a Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'qv4codegen.cpp')
-rw-r--r--qv4codegen.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/qv4codegen.cpp b/qv4codegen.cpp
index eed854ce5f..7cbaa8a260 100644
--- a/qv4codegen.cpp
+++ b/qv4codegen.cpp
@@ -520,7 +520,7 @@ void Codegen::move(IR::Expr *target, IR::Expr *source, IR::AluOp op)
{
assert(target->isLValue());
- if (! source->asTemp() && (op != IR::OpInvalid || ! target->asTemp())) {
+ if (!source->asTemp() && !source->asConst() && (op != IR::OpInvalid || ! target->asTemp())) {
unsigned t = _block->newTemp();
_block->MOVE(_block->TEMP(t), source);
source = _block->TEMP(t);