diff options
author | Lars Knoll <lars.knoll@qt.io> | 2017-08-26 23:13:53 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@qt.io> | 2017-08-28 13:19:49 +0000 |
commit | 8bad53758386735050bcf71348ed949988850ec6 (patch) | |
tree | 850b53e6dd8ce633dd3f914f23d9d683038cfeee /src/qml/compiler/qv4codegen.cpp | |
parent | a50911bc0bfca1185e99ce6638fbf03cf592789d (diff) |
Add a load/storeLocal instruction
Change-Id: I084979a6fef7cce9a825cae9ce57234583ceb3ce
Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/compiler/qv4codegen.cpp')
-rw-r--r-- | src/qml/compiler/qv4codegen.cpp | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/qml/compiler/qv4codegen.cpp b/src/qml/compiler/qv4codegen.cpp index 2254cc8808..ba2f856b4b 100644 --- a/src/qml/compiler/qv4codegen.cpp +++ b/src/qml/compiler/qv4codegen.cpp @@ -3009,10 +3009,16 @@ void Codegen::Reference::storeAccumulator() const return; } case ScopedLocal: { - Instruction::StoreScopedLocal store; - store.index = index; - store.scope = scope; - codegen->bytecodeGenerator->addInstruction(store); + if (scope == 0) { + Instruction::StoreLocal store; + store.index = index; + codegen->bytecodeGenerator->addInstruction(store); + } else { + Instruction::StoreScopedLocal store; + store.index = index; + store.scope = scope; + codegen->bytecodeGenerator->addInstruction(store); + } return; } case Name: { @@ -3116,10 +3122,16 @@ void Codegen::Reference::loadInAccumulator() const codegen->bytecodeGenerator->addInstruction(load); } return; case ScopedLocal: { - Instruction::LoadScopedLocal load; - load.index = index; - load.scope = scope; - codegen->bytecodeGenerator->addInstruction(load); + if (!scope) { + Instruction::LoadLocal load; + load.index = index; + codegen->bytecodeGenerator->addInstruction(load); + } else { + Instruction::LoadScopedLocal load; + load.index = index; + load.scope = scope; + codegen->bytecodeGenerator->addInstruction(load); + } return; } case Name: |