diff options
Diffstat (limited to 'src/qml/compiler/qv4isel_moth.cpp')
-rw-r--r-- | src/qml/compiler/qv4isel_moth.cpp | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/src/qml/compiler/qv4isel_moth.cpp b/src/qml/compiler/qv4isel_moth.cpp index a2e702dac4..ca0977e057 100644 --- a/src/qml/compiler/qv4isel_moth.cpp +++ b/src/qml/compiler/qv4isel_moth.cpp @@ -456,12 +456,26 @@ void InstructionSelection::loadThisObject(V4IR::Temp *temp) void InstructionSelection::loadIdObject(int id, V4IR::Temp *temp) { - Instruction::LoadIdObject load; + Instruction::LoadQmlIdObject load; load.result = getResultParam(temp); load.id = id; addInstruction(load); } +void InstructionSelection::loadQmlContextObject(V4IR::Temp *temp) +{ + Instruction::LoadQmlContextObject load; + load.result = getResultParam(temp); + addInstruction(load); +} + +void InstructionSelection::loadQmlScopeObject(V4IR::Temp *temp) +{ + Instruction::LoadQmlScopeObject load; + load.result = getResultParam(temp); + addInstruction(load); +} + void InstructionSelection::loadConst(V4IR::Const *sourceConst, V4IR::Temp *targetTemp) { assert(sourceConst); @@ -555,6 +569,15 @@ void InstructionSelection::setProperty(V4IR::Expr *source, V4IR::Expr *targetBas addInstruction(store); } +void InstructionSelection::getQObjectProperty(V4IR::Expr *base, int propertyIndex, V4IR::Temp *target) +{ + Instruction::LoadQObjectProperty load; + load.base = getParam(base); + load.propertyIndex = propertyIndex; + load.result = getResultParam(target); + addInstruction(load); +} + void InstructionSelection::getElement(V4IR::Expr *base, V4IR::Expr *index, V4IR::Temp *target) { Instruction::LoadElement load; |