diff options
author | Ulf Hermann <ulf.hermann@qt.io> | 2022-11-03 17:09:29 +0100 |
---|---|---|
committer | Ulf Hermann <ulf.hermann@qt.io> | 2022-11-07 15:49:10 +0100 |
commit | 872e91612fd83de6dd1193014b5e2a0f5e8c30af (patch) | |
tree | 98eb22f6203a5b8f81e4149f919cac0f553c202c /src/qml/jit | |
parent | 0b7374fefa1abf08e956bc5d34008352144bd9ae (diff) |
Replace CallElement with separate instructions
We need to do the subscript lookup before generating the arguments since
the arguments may change the array.
Fixes: QTBUG-106708
Change-Id: Ia3a0dd34c6ed8d39e86ad20911a632d691826322
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qml/jit')
-rw-r--r-- | src/qml/jit/qv4baselinejit.cpp | 12 | ||||
-rw-r--r-- | src/qml/jit/qv4baselinejit_p.h | 1 |
2 files changed, 0 insertions, 13 deletions
diff --git a/src/qml/jit/qv4baselinejit.cpp b/src/qml/jit/qv4baselinejit.cpp index bcd9b6a9b5..14e183adb8 100644 --- a/src/qml/jit/qv4baselinejit.cpp +++ b/src/qml/jit/qv4baselinejit.cpp @@ -387,18 +387,6 @@ void BaselineJIT::generate_CallPropertyLookup(int lookupIndex, int base, int arg BASELINEJIT_GENERATE_RUNTIME_CALL(CallPropertyLookup, CallResultDestination::InAccumulator); } -void BaselineJIT::generate_CallElement(int base, int index, int argc, int argv) -{ - STORE_IP(); - as->prepareCallWithArgCount(5); - as->passInt32AsArg(argc, 4); - as->passJSSlotAsArg(argv, 3); - as->passJSSlotAsArg(index, 2); - as->passJSSlotAsArg(base, 1); - as->passEngineAsArg(0); - BASELINEJIT_GENERATE_RUNTIME_CALL(CallElement, CallResultDestination::InAccumulator); -} - void BaselineJIT::generate_CallName(int name, int argc, int argv) { STORE_IP(); diff --git a/src/qml/jit/qv4baselinejit_p.h b/src/qml/jit/qv4baselinejit_p.h index 537a493127..c502e4d405 100644 --- a/src/qml/jit/qv4baselinejit_p.h +++ b/src/qml/jit/qv4baselinejit_p.h @@ -82,7 +82,6 @@ public: void generate_CallWithReceiver(int name, int thisObject, int argc, int argv) override; void generate_CallProperty(int name, int base, int argc, int argv) override; void generate_CallPropertyLookup(int lookupIndex, int base, int argc, int argv) override; - void generate_CallElement(int base, int index, int argc, int argv) override; void generate_CallName(int name, int argc, int argv) override; void generate_CallPossiblyDirectEval(int argc, int argv) override; void generate_CallGlobalLookup(int index, int argc, int argv) override; |