Line | Source | Count |
1 | | - |
2 | | - |
3 | | - |
4 | | - |
5 | | - |
6 | | - |
7 | | - |
8 | | - |
9 | | - |
10 | | - |
11 | | - |
12 | | - |
13 | | - |
14 | | - |
15 | | - |
16 | | - |
17 | | - |
18 | | - |
19 | | - |
20 | | - |
21 | | - |
22 | | - |
23 | | - |
24 | | - |
25 | | - |
26 | | - |
27 | | - |
28 | | - |
29 | | - |
30 | | - |
31 | | - |
32 | | - |
33 | | - |
34 | | - |
35 | | - |
36 | | - |
37 | | - |
38 | | - |
39 | | - |
40 | #ifndef QV4JIT_P_H | - |
41 | #define QV4JIT_P_H | - |
42 | | - |
43 | | - |
44 | | - |
45 | | - |
46 | | - |
47 | | - |
48 | | - |
49 | | - |
50 | | - |
51 | | - |
52 | | - |
53 | | - |
54 | #include <private/qv4global_p.h> | - |
55 | #include <private/qv4function_p.h> | - |
56 | #include <private/qv4instr_moth_p.h> | - |
57 | #include <private/qv4bytecodehandler_p.h> | - |
58 | | - |
59 | | - |
60 | | - |
61 | QT_BEGIN_NAMESPACE | - |
62 | | - |
63 | namespace QV4 { | - |
64 | namespace JIT { | - |
65 | | - |
66 | class Assembler; | - |
67 | | - |
68 | #ifdef V4_ENABLE_JIT | - |
69 | class BaselineJIT final: public Moth::ByteCodeHandler | - |
70 | { | - |
71 | public: | - |
72 | BaselineJIT(QV4::Function *); | - |
73 | virtual ~BaselineJIT() Q_DECL_OVERRIDE; | - |
74 | | - |
75 | void generate(); | - |
76 | | - |
77 | void generate_Ret() override; | - |
78 | void generate_Debug() override; | - |
79 | void generate_LoadConst(int index) override; | - |
80 | void generate_LoadZero() override; | - |
81 | void generate_LoadTrue() override; | - |
82 | void generate_LoadFalse() override; | - |
83 | void generate_LoadNull() override; | - |
84 | void generate_LoadUndefined() override; | - |
85 | void generate_LoadInt(int value) override; | - |
86 | void generate_MoveConst(int constIndex, int destTemp) override; | - |
87 | void generate_LoadReg(int reg) override; | - |
88 | void generate_StoreReg(int reg) override; | - |
89 | void generate_MoveReg(int srcReg, int destReg) override; | - |
90 | void generate_LoadLocal(int index) override; | - |
91 | void generate_StoreLocal(int index) override; | - |
92 | void generate_LoadScopedLocal(int scope, int index) override; | - |
93 | void generate_StoreScopedLocal(int scope, int index) override; | - |
94 | void generate_LoadRuntimeString(int stringId) override; | - |
95 | void generate_MoveRegExp(int regExpId, int destReg) override; | - |
96 | void generate_LoadClosure(int value) override; | - |
97 | void generate_LoadName(int name) override; | - |
98 | void generate_LoadGlobalLookup(int index) override; | - |
99 | void generate_StoreNameSloppy(int name) override; | - |
100 | void generate_StoreNameStrict(int name) override; | - |
101 | void generate_LoadElement(int base) override; | - |
102 | void generate_StoreElement(int base, int index) override; | - |
103 | void generate_LoadProperty(int name) override; | - |
104 | void generate_GetLookup(int index) override; | - |
105 | void generate_StoreProperty(int name, int base) override; | - |
106 | void generate_SetLookup(int index, int base) override; | - |
107 | void generate_LoadSuperProperty(int property) override; | - |
108 | void generate_StoreSuperProperty(int property) override; | - |
109 | void generate_StoreScopeObjectProperty(int base, | - |
110 | int propertyIndex) override; | - |
111 | void generate_StoreContextObjectProperty(int base, | - |
112 | int propertyIndex) override; | - |
113 | void generate_LoadScopeObjectProperty(int propertyIndex, int base, | - |
114 | int captureRequired) override; | - |
115 | void generate_LoadContextObjectProperty(int propertyIndex, int base, | - |
116 | int captureRequired) override; | - |
117 | void generate_LoadIdObject(int index, int base) override; | - |
118 | void generate_Yield() override; | - |
119 | void generate_Resume(int) override; | - |
120 | | - |
121 | void generate_CallValue(int name, int argc, int argv) override; | - |
122 | void generate_CallProperty(int name, int base, int argc, int argv) override; | - |
123 | void generate_CallPropertyLookup(int lookupIndex, int base, int argc, int argv) override; | - |
124 | void generate_CallElement(int base, int index, int argc, int argv) override; | - |
125 | void generate_CallName(int name, int argc, int argv) override; | - |
126 | void generate_CallPossiblyDirectEval(int argc, int argv) override; | - |
127 | void generate_CallGlobalLookup(int index, int argc, int argv) override; | - |
128 | void generate_CallScopeObjectProperty(int propIdx, int base, int argc, int argv) override; | - |
129 | void generate_CallContextObjectProperty(int propIdx, int base, int argc, int argv) override; | - |
130 | void generate_CallWithSpread(int func, int thisObject, int argc, int argv) override; | - |
131 | void generate_Construct(int func, int argc, int argv) override; | - |
132 | void generate_ConstructWithSpread(int func, int argc, int argv) override; | - |
133 | void generate_SetUnwindHandler(int offset) override; | - |
134 | void generate_UnwindDispatch() override; | - |
135 | void generate_UnwindToLabel(int level, int offset) override; | - |
136 | void generate_ThrowException() override; | - |
137 | void generate_GetException() override; | - |
138 | void generate_SetException() override; | - |
139 | void generate_CreateCallContext() override; | - |
140 | void generate_PushCatchContext(int index, int name) override; | - |
141 | void generate_PushWithContext() override; | - |
142 | void generate_PushBlockContext(int index) override; | - |
143 | void generate_CloneBlockContext() override; | - |
144 | void generate_PushScriptContext(int index) override; | - |
145 | void generate_PopScriptContext() override; | - |
146 | void generate_PopContext() override; | - |
147 | void generate_GetIterator(int iterator) override; | - |
148 | void generate_IteratorNext(int value) override; | - |
149 | void generate_IteratorClose(int done) override; | - |
150 | void generate_DestructureRestElement() override; | - |
151 | void generate_DeleteProperty(int base, int index) override; | - |
152 | void generate_DeleteName(int name) override; | - |
153 | void generate_TypeofName(int name) override; | - |
154 | void generate_TypeofValue() override; | - |
155 | void generate_DeclareVar(int varName, int isDeletable) override; | - |
156 | void generate_DefineArray(int argc, int args) override; | - |
157 | void generate_DefineObjectLiteral(int internalClassId, int argc, int args) override; | - |
158 | void generate_CreateClass(int classIndex, int heritage, int computedNames) override; | - |
159 | void generate_CreateMappedArgumentsObject() override; | - |
160 | void generate_CreateUnmappedArgumentsObject() override; | - |
161 | void generate_CreateRestParameter(int argIndex) override; | - |
162 | void generate_ConvertThisToObject() override; | - |
163 | void generate_LoadSuperConstructor() override; | - |
164 | void generate_ToObject() override; | - |
165 | void generate_Jump(int offset) override; | - |
166 | void generate_JumpTrue(int offset) override; | - |
167 | void generate_JumpFalse(int offset) override; | - |
168 | void generate_JumpNoException(int offset) override; | - |
169 | void generate_JumpNotUndefined(int offset) override; | - |
170 | void generate_CmpEqNull() override; | - |
171 | void generate_CmpNeNull() override; | - |
172 | void generate_CmpEqInt(int lhs) override; | - |
173 | void generate_CmpNeInt(int lhs) override; | - |
174 | void generate_CmpEq(int lhs) override; | - |
175 | void generate_CmpNe(int lhs) override; | - |
176 | void generate_CmpGt(int lhs) override; | - |
177 | void generate_CmpGe(int lhs) override; | - |
178 | void generate_CmpLt(int lhs) override; | - |
179 | void generate_CmpLe(int lhs) override; | - |
180 | void generate_CmpStrictEqual(int lhs) override; | - |
181 | void generate_CmpStrictNotEqual(int lhs) override; | - |
182 | void generate_CmpIn(int lhs) override; | - |
183 | void generate_CmpInstanceOf(int lhs) override; | - |
184 | void generate_UNot() override; | - |
185 | void generate_UPlus() override; | - |
186 | void generate_UMinus() override; | - |
187 | void generate_UCompl() override; | - |
188 | void generate_Increment() override; | - |
189 | void generate_Decrement() override; | - |
190 | void generate_Add(int lhs) override; | - |
191 | void generate_BitAnd(int lhs) override; | - |
192 | void generate_BitOr(int lhs) override; | - |
193 | void generate_BitXor(int lhs) override; | - |
194 | void generate_UShr(int lhs) override; | - |
195 | void generate_Shr(int lhs) override; | - |
196 | void generate_Shl(int lhs) override; | - |
197 | void generate_BitAndConst(int rhs) override; | - |
198 | void generate_BitOrConst(int rhs) override; | - |
199 | void generate_BitXorConst(int rhs) override; | - |
200 | void generate_UShrConst(int rhs) override; | - |
201 | void generate_ShrConst(int rhs) override; | - |
202 | void generate_ShlConst(int rhs) override; | - |
203 | void generate_Exp(int lhs) override; | - |
204 | void generate_Mul(int lhs) override; | - |
205 | void generate_Div(int lhs) override; | - |
206 | void generate_Mod(int lhs) override; | - |
207 | void generate_Sub(int lhs) override; | - |
208 | void generate_LoadQmlContext(int result) override; | - |
209 | void generate_LoadQmlImportedScripts(int result) override; | - |
210 | | - |
211 | void startInstruction(Moth::Instr::Type instr) override; | - |
212 | void endInstruction(Moth::Instr::Type instr) override; | - |
213 | | - |
214 | protected: | - |
215 | bool hasLabel() const | - |
216 | { return std::find(labels.cbegin(), labels.cend(), instructionOffset()) != labels.cend(); }executed 143188 times by 64 tests: return std::find(labels.cbegin(), labels.cend(), instructionOffset()) != labels.cend(); Executed by:- tst_examples
- tst_flickableinterop
- tst_multipointtoucharea_interop
- tst_qjsengine
- tst_qjsvalue
- tst_qqmlbinding
- tst_qqmlcomponent
- tst_qqmlcontext
- tst_qqmlecmascript
- tst_qqmlenginedebugservice
- tst_qqmlinstantiator
- tst_qqmlitemmodels
- tst_qqmllistmodel
- tst_qqmllistmodelworkerscript
- tst_qqmllocale
- tst_qqmlnotifier
- tst_qqmlprofilerservice
- tst_qqmlproperty
- tst_qqmlqt
- tst_qqmlvaluetypeproviders
- tst_qqmlvaluetypes
- tst_qqmlxmlhttprequest
- tst_qquickaccessible
- tst_qquickanimatedimage
- tst_qquickanimationcontroller
- ...
| 143188 |
217 | | - |
218 | private: | - |
219 | QV4::Function *function; | - |
220 | QScopedPointer<Assembler> as; | - |
221 | std::vector<int> labels; | - |
222 | }; | - |
223 | #endif // V4_ENABLE_JIT | - |
224 | | - |
225 | } | - |
226 | } | - |
227 | | - |
228 | QT_END_NAMESPACE | - |
229 | | - |
230 | #endif // QV4JIT_P_H | - |
| | |