diff options
Diffstat (limited to 'src/qml/jit')
-rw-r--r-- | src/qml/jit/qv4baselinejit.cpp | 12 | ||||
-rw-r--r-- | src/qml/jit/qv4baselinejit_p.h | 6 |
2 files changed, 9 insertions, 9 deletions
diff --git a/src/qml/jit/qv4baselinejit.cpp b/src/qml/jit/qv4baselinejit.cpp index d2895e8bf2..bd2e331cbc 100644 --- a/src/qml/jit/qv4baselinejit.cpp +++ b/src/qml/jit/qv4baselinejit.cpp @@ -586,7 +586,7 @@ void BaselineJIT::generate_GetIterator(int iterator) BASELINEJIT_GENERATE_RUNTIME_CALL(GetIterator, CallResultDestination::InAccumulator); } -void BaselineJIT::generate_IteratorNext(int value, int done) +void BaselineJIT::generate_IteratorNext(int value, int offset) { as->saveAccumulatorInFrame(); as->prepareCallWithArgCount(3); @@ -594,10 +594,10 @@ void BaselineJIT::generate_IteratorNext(int value, int done) as->passAccumulatorAsArg(1); as->passEngineAsArg(0); BASELINEJIT_GENERATE_RUNTIME_CALL(IteratorNext, CallResultDestination::InAccumulator); - as->storeReg(done); + labels.insert(as->jumpTrue(absoluteOffset(offset))); } -void BaselineJIT::generate_IteratorNextForYieldStar(int iterator, int object) +void BaselineJIT::generate_IteratorNextForYieldStar(int iterator, int object, int offset) { as->saveAccumulatorInFrame(); as->prepareCallWithArgCount(4); @@ -606,13 +606,13 @@ void BaselineJIT::generate_IteratorNextForYieldStar(int iterator, int object) as->passAccumulatorAsArg(1); as->passEngineAsArg(0); BASELINEJIT_GENERATE_RUNTIME_CALL(IteratorNextForYieldStar, CallResultDestination::InAccumulator); + labels.insert(as->jumpTrue(absoluteOffset(offset))); } -void BaselineJIT::generate_IteratorClose(int done) +void BaselineJIT::generate_IteratorClose() { as->saveAccumulatorInFrame(); - as->prepareCallWithArgCount(3); - as->passJSSlotAsArg(done, 2); + as->prepareCallWithArgCount(2); as->passAccumulatorAsArg(1); as->passEngineAsArg(0); BASELINEJIT_GENERATE_RUNTIME_CALL(IteratorClose, CallResultDestination::InAccumulator); diff --git a/src/qml/jit/qv4baselinejit_p.h b/src/qml/jit/qv4baselinejit_p.h index c502e4d405..40138ea700 100644 --- a/src/qml/jit/qv4baselinejit_p.h +++ b/src/qml/jit/qv4baselinejit_p.h @@ -106,9 +106,9 @@ public: void generate_PopScriptContext() override; void generate_PopContext() override; void generate_GetIterator(int iterator) override; - void generate_IteratorNext(int value, int done) override; - void generate_IteratorNextForYieldStar(int iterator, int object) override; - void generate_IteratorClose(int done) override; + void generate_IteratorNext(int value, int offset) override; + void generate_IteratorNextForYieldStar(int iterator, int object, int offset) override; + void generate_IteratorClose() override; void generate_DestructureRestElement() override; void generate_DeleteProperty(int base, int index) override; void generate_DeleteName(int name) override; |