diff options
Diffstat (limited to 'src/qml/jit/qv4baselinejit_p.h')
-rw-r--r-- | src/qml/jit/qv4baselinejit_p.h | 65 |
1 files changed, 29 insertions, 36 deletions
diff --git a/src/qml/jit/qv4baselinejit_p.h b/src/qml/jit/qv4baselinejit_p.h index 98d23f4517..998f9f110b 100644 --- a/src/qml/jit/qv4baselinejit_p.h +++ b/src/qml/jit/qv4baselinejit_p.h @@ -88,21 +88,21 @@ public: void generate_StoreReg(int reg) override; void generate_MoveReg(int srcReg, int destReg) override; void generate_LoadImport(int index) override; - void generate_LoadLocal(int index) override; + void generate_LoadLocal(int index, int traceSlot) override; void generate_StoreLocal(int index) override; - void generate_LoadScopedLocal(int scope, int index) override; + void generate_LoadScopedLocal(int scope, int index, int traceSlot) override; void generate_StoreScopedLocal(int scope, int index) override; void generate_LoadRuntimeString(int stringId) override; void generate_MoveRegExp(int regExpId, int destReg) override; void generate_LoadClosure(int value) override; - void generate_LoadName(int name) override; - void generate_LoadGlobalLookup(int index) override; + void generate_LoadName(int name, int traceSlot) override; + void generate_LoadGlobalLookup(int index, int traceSlot) override; void generate_StoreNameSloppy(int name) override; void generate_StoreNameStrict(int name) override; - void generate_LoadElement(int base) override; - void generate_StoreElement(int base, int index) override; - void generate_LoadProperty(int name) override; - void generate_GetLookup(int index) override; + void generate_LoadElement(int base, int traceSlot) override; + void generate_StoreElement(int base, int index, int traceSlot) override; + void generate_LoadProperty(int name, int traceSlot) override; + void generate_GetLookup(int index, int traceSlot) override; void generate_StoreProperty(int name, int base) override; void generate_SetLookup(int index, int base) override; void generate_LoadSuperProperty(int property) override; @@ -120,17 +120,17 @@ public: void generate_YieldStar() override; void generate_Resume(int) override; - void generate_CallValue(int name, int argc, int argv) override; - 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; - void generate_CallScopeObjectProperty(int propIdx, int base, int argc, int argv) override; - void generate_CallContextObjectProperty(int propIdx, int base, int argc, int argv) override; - void generate_CallWithSpread(int func, int thisObject, int argc, int argv) override; + void generate_CallValue(int name, int argc, int argv, int traceSlot) override; + void generate_CallWithReceiver(int name, int thisObject, int argc, int argv, int traceSlot) override; + void generate_CallProperty(int name, int base, int argc, int argv, int traceSlot) override; + void generate_CallPropertyLookup(int lookupIndex, int base, int argc, int argv, int traceSlot) override; + void generate_CallElement(int base, int index, int argc, int argv, int traceSlot) override; + void generate_CallName(int name, int argc, int argv, int traceSlot) override; + void generate_CallPossiblyDirectEval(int argc, int argv, int traceSlot) override; + void generate_CallGlobalLookup(int index, int argc, int argv, int traceSlot) override; + void generate_CallScopeObjectProperty(int propIdx, int base, int argc, int argv, int traceSlot) override; + void generate_CallContextObjectProperty(int propIdx, int base, int argc, int argv, int traceSlot) override; + void generate_CallWithSpread(int func, int thisObject, int argc, int argv, int traceSlot) override; void generate_TailCall(int func, int thisObject, int argc, int argv) override; void generate_Construct(int func, int argc, int argv) override; void generate_ConstructWithSpread(int func, int argc, int argv) override; @@ -169,8 +169,8 @@ public: void generate_LoadSuperConstructor() override; void generate_ToObject() override; void generate_Jump(int offset) override; - void generate_JumpTrue(int offset) override; - void generate_JumpFalse(int offset) override; + void generate_JumpTrue(int traceSlot, int offset) override; + void generate_JumpFalse(int traceSlot, int offset) override; void generate_JumpNoException(int offset) override; void generate_JumpNotUndefined(int offset) override; void generate_CmpEqNull() override; @@ -189,11 +189,11 @@ public: void generate_CmpInstanceOf(int lhs) override; void generate_UNot() override; void generate_UPlus() override; - void generate_UMinus() override; + void generate_UMinus(int traceSlot) override; void generate_UCompl() override; - void generate_Increment() override; - void generate_Decrement() override; - void generate_Add(int lhs) override; + void generate_Increment(int traceSlot) override; + void generate_Decrement(int traceSlot) override; + void generate_Add(int lhs, int traceSlot) override; void generate_BitAnd(int lhs) override; void generate_BitOr(int lhs) override; void generate_BitXor(int lhs) override; @@ -207,10 +207,10 @@ public: void generate_ShrConst(int rhs) override; void generate_ShlConst(int rhs) override; void generate_Exp(int lhs) override; - void generate_Mul(int lhs) override; + void generate_Mul(int lhs, int traceSlot) override; void generate_Div(int lhs) override; - void generate_Mod(int lhs) override; - void generate_Sub(int lhs) override; + void generate_Mod(int lhs, int traceSlot) override; + void generate_Sub(int lhs, int traceSlot) override; void generate_LoadQmlContext(int result) override; void generate_LoadQmlImportedScripts(int result) override; void generate_InitializeBlockDeadTemporalZone(int firstReg, int count) override; @@ -220,17 +220,10 @@ public: void startInstruction(Moth::Instr::Type instr) override; void endInstruction(Moth::Instr::Type instr) override; -protected: - bool hasLabel() const - { return std::find(labels.cbegin(), labels.cend(), currentInstructionOffset()) != labels.cend(); } - - int absoluteOffsetForJump(int relativeOffset) const - { return nextInstructionOffset() + relativeOffset; } - private: QV4::Function *function; QScopedPointer<BaselineAssembler> as; - std::vector<int> labels; + QSet<int> labels; }; #endif // V4_ENABLE_JIT |