aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4codegen.cpp
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2017-08-13 22:54:11 +0200
committerErik Verbruggen <erik.verbruggen@qt.io>2017-08-18 10:07:08 +0000
commit6b7194492624dc1b492593b011b56a165f13dacd (patch)
tree735078ddf9328a8d844a88ca98bc5538af5b20f8 /src/qml/compiler/qv4codegen.cpp
parentb5d89b3e539399e692fc056e3e03e09038adb6d8 (diff)
Add a LoadZero instruction
as 0 is used quite often. Change-Id: I2c952ef077590f6e6cfe9aad50807f5e0f8686e4 Reviewed-by: Erik Verbruggen <erik.verbruggen@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4codegen.cpp')
-rw-r--r--src/qml/compiler/qv4codegen.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp
index 9e075fbe6f..9e05c77966 100644
--- a/src/qml/compiler/qv4codegen.cpp
+++ b/src/qml/compiler/qv4codegen.cpp
@@ -3040,6 +3040,11 @@ void Codegen::Reference::loadInAccumulator() const
double d = p.asDouble();
int i = static_cast<int>(d);
if (d == i && (d != 0 || !std::signbit(d))) {
+ if (!i) {
+ Instruction::LoadZero load;
+ codegen->bytecodeGenerator->addInstruction(load);
+ return;
+ }
Instruction::LoadInt load;
load.value = Primitive::fromReturnedValue(constant).toInt32();
codegen->bytecodeGenerator->addInstruction(load);