diff options
Diffstat (limited to 'src/qml/jsruntime/qv4vme_moth.cpp')
-rw-r--r-- | src/qml/jsruntime/qv4vme_moth.cpp | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/qml/jsruntime/qv4vme_moth.cpp b/src/qml/jsruntime/qv4vme_moth.cpp index 1f1e202a2d..5b026b2f0d 100644 --- a/src/qml/jsruntime/qv4vme_moth.cpp +++ b/src/qml/jsruntime/qv4vme_moth.cpp @@ -857,13 +857,23 @@ QV4::ReturnedValue VME::run(ExecutionEngine *engine, const uchar *code) VALUE(instr.result) = QV4::Encode((int)~VALUE(instr.source).integerValue()); MOTH_END_INSTR(UComplInt) - MOTH_BEGIN_INSTR(Increment) - STOREVALUE(instr.result, Runtime::method_increment(VALUE(instr.source))); - MOTH_END_INSTR(Increment) - - MOTH_BEGIN_INSTR(Decrement) - STOREVALUE(instr.result, Runtime::method_decrement(VALUE(instr.source))); - MOTH_END_INSTR(Decrement) + MOTH_BEGIN_INSTR(PreIncrement) + STOREVALUE(instr.result, Runtime::method_preIncrement(VALUE(instr.source))); + MOTH_END_INSTR(PreIncrement) + + MOTH_BEGIN_INSTR(PreDecrement) + STOREVALUE(instr.result, Runtime::method_preDecrement(VALUE(instr.source))); + MOTH_END_INSTR(PreDecrement) + + MOTH_BEGIN_INSTR(PostIncrement) + //### we probably need a write-barrier for instr.source, because it will be written to + STOREVALUE(instr.result, Runtime::method_postIncrement(VALUEPTR(instr.source))); + MOTH_END_INSTR(PreIncrement) + + MOTH_BEGIN_INSTR(PostDecrement) + //### we probably need a write-barrier for instr.source, because it will be written to + STOREVALUE(instr.result, Runtime::method_postDecrement(VALUEPTR(instr.source))); + MOTH_END_INSTR(PreDecrement) MOTH_BEGIN_INSTR(Binop) QV4::Runtime::BinaryOperation op = *reinterpret_cast<QV4::Runtime::BinaryOperation *>(reinterpret_cast<char *>(&engine->runtime.runtimeMethods[instr.alu])); |