diff options
| author | Lars Knoll <lars.knoll@qt.io> | 2017-08-13 22:54:11 +0200 |
|---|---|---|
| committer | Erik Verbruggen <erik.verbruggen@qt.io> | 2017-08-18 10:07:08 +0000 |
| commit | 6b7194492624dc1b492593b011b56a165f13dacd (patch) | |
| tree | 735078ddf9328a8d844a88ca98bc5538af5b20f8 /src/qml/compiler/qv4codegen.cpp | |
| parent | b5d89b3e539399e692fc056e3e03e09038adb6d8 (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.cpp | 5 |
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); |
