aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4instr_moth_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/compiler/qv4instr_moth_p.h')
-rw-r--r--src/qml/compiler/qv4instr_moth_p.h111
1 files changed, 18 insertions, 93 deletions
diff --git a/src/qml/compiler/qv4instr_moth_p.h b/src/qml/compiler/qv4instr_moth_p.h
index 93043135a4..beb43376ee 100644
--- a/src/qml/compiler/qv4instr_moth_p.h
+++ b/src/qml/compiler/qv4instr_moth_p.h
@@ -58,10 +58,17 @@
QT_BEGIN_NAMESPACE
+#ifdef QT_NO_QML_DEBUGGER
+#define MOTH_DEBUG_INSTR(F)
+#else
+#define MOTH_DEBUG_INSTR(F) \
+ F(Line, line) \
+ F(Debug, debug)
+#endif
+
#define FOR_EACH_MOTH_INSTR(F) \
F(Ret, ret) \
- F(Line, line) \
- F(Debug, debug) \
+ MOTH_DEBUG_INSTR(F) \
F(LoadRuntimeString, loadRuntimeString) \
F(LoadRegExp, loadRegExp) \
F(LoadClosure, loadClosure) \
@@ -81,19 +88,9 @@ QT_BEGIN_NAMESPACE
F(SetLookup, setLookup) \
F(StoreQObjectProperty, storeQObjectProperty) \
F(LoadQObjectProperty, loadQObjectProperty) \
- F(LoadQRealQObjectPropertyDirectly, loadQRealQObjectPropertyDirectly) \
- F(LoadQObjectQObjectPropertyDirectly, loadQObjectQObjectPropertyDirectly) \
- F(LoadIntQObjectPropertyDirectly, loadIntQObjectPropertyDirectly) \
- F(LoadBoolQObjectPropertyDirectly, loadBoolQObjectPropertyDirectly) \
- F(LoadQStringQObjectPropertyDirectly, loadQStringQObjectPropertyDirectly) \
F(StoreScopeObjectProperty, storeScopeObjectProperty) \
F(StoreContextObjectProperty, storeContextObjectProperty) \
F(LoadScopeObjectProperty, loadScopeObjectProperty) \
- F(LoadScopeObjectQRealPropertyDirectly, loadScopeObjectQRealPropertyDirectly) \
- F(LoadScopeObjectQObjectPropertyDirectly, loadScopeObjectQObjectPropertyDirectly) \
- F(LoadScopeObjectIntPropertyDirectly, loadScopeObjectIntPropertyDirectly) \
- F(LoadScopeObjectBoolPropertyDirectly, loadScopeObjectBoolPropertyDirectly) \
- F(LoadScopeObjectQStringPropertyDirectly, loadScopeObjectQStringPropertyDirectly) \
F(LoadContextObjectProperty, loadContextObjectProperty) \
F(LoadIdObject, loadIdObject) \
F(LoadAttachedQObjectProperty, loadAttachedQObjectProperty) \
@@ -172,7 +169,7 @@ QT_BEGIN_NAMESPACE
#define MOTH_INSTR_ALIGN_MASK (Q_ALIGNOF(QV4::Moth::Instr) - 1)
#ifdef MOTH_THREADED_INTERPRETER
-# define MOTH_INSTR_HEADER void *code;
+# define MOTH_INSTR_HEADER union { quint32 instructionType; void *code; };
#else
# define MOTH_INSTR_HEADER quint32 instructionType;
#endif
@@ -184,6 +181,8 @@ QT_BEGIN_NAMESPACE
namespace QV4 {
namespace Moth {
+ // When making changes to the instructions, make sure to bump QV4_DATA_STRUCTURE_VERSION in qv4compileddata_p.h
+
struct Param {
// Params are looked up as follows:
// Constant: 0
@@ -262,6 +261,8 @@ union Instr
MOTH_INSTR_HEADER
Param result;
};
+
+#ifndef QT_NO_QML_DEBUGGING
struct instr_line {
MOTH_INSTR_HEADER
qint32 lineNumber;
@@ -270,6 +271,8 @@ union Instr
MOTH_INSTR_HEADER
qint32 lineNumber;
};
+#endif // QT_NO_QML_DEBUGGING
+
struct instr_loadRuntimeString {
MOTH_INSTR_HEADER
int stringId;
@@ -332,42 +335,14 @@ union Instr
int propertyIndex;
Param base;
Param result;
- };
- struct instr_loadScopeObjectQRealPropertyDirectly {
- MOTH_INSTR_HEADER
- Param base;
- Param result;
- QQmlAccessors *accessors;
- };
- struct instr_loadScopeObjectQObjectPropertyDirectly {
- MOTH_INSTR_HEADER
- Param base;
- Param result;
- QQmlAccessors *accessors;
- };
- struct instr_loadScopeObjectIntPropertyDirectly {
- MOTH_INSTR_HEADER
- Param base;
- Param result;
- QQmlAccessors *accessors;
- };
- struct instr_loadScopeObjectBoolPropertyDirectly {
- MOTH_INSTR_HEADER
- Param base;
- Param result;
- QQmlAccessors *accessors;
- };
- struct instr_loadScopeObjectQStringPropertyDirectly {
- MOTH_INSTR_HEADER
- Param base;
- Param result;
- QQmlAccessors *accessors;
+ bool captureRequired;
};
struct instr_loadContextObjectProperty {
MOTH_INSTR_HEADER
int propertyIndex;
Param base;
Param result;
+ bool captureRequired;
};
struct instr_loadIdObject {
MOTH_INSTR_HEADER
@@ -382,46 +357,6 @@ union Instr
Param result;
bool captureRequired;
};
- struct instr_loadQRealQObjectPropertyDirectly {
- MOTH_INSTR_HEADER
- Param base;
- Param result;
- QQmlAccessors *accessors;
- int coreIndex;
- int notifyIndex;
- };
- struct instr_loadQObjectQObjectPropertyDirectly {
- MOTH_INSTR_HEADER
- Param base;
- Param result;
- QQmlAccessors *accessors;
- int coreIndex;
- int notifyIndex;
- };
- struct instr_loadIntQObjectPropertyDirectly {
- MOTH_INSTR_HEADER
- Param base;
- Param result;
- QQmlAccessors *accessors;
- int coreIndex;
- int notifyIndex;
- };
- struct instr_loadBoolQObjectPropertyDirectly {
- MOTH_INSTR_HEADER
- Param base;
- Param result;
- QQmlAccessors *accessors;
- int coreIndex;
- int notifyIndex;
- };
- struct instr_loadQStringQObjectPropertyDirectly {
- MOTH_INSTR_HEADER
- Param base;
- Param result;
- QQmlAccessors *accessors;
- int coreIndex;
- int notifyIndex;
- };
struct instr_loadAttachedQObjectProperty {
MOTH_INSTR_HEADER
int propertyIndex;
@@ -880,19 +815,9 @@ union Instr
instr_loadProperty loadProperty;
instr_getLookup getLookup;
instr_loadScopeObjectProperty loadScopeObjectProperty;
- instr_loadScopeObjectQRealPropertyDirectly loadScopeObjectQRealPropertyDirectly;
- instr_loadScopeObjectQObjectPropertyDirectly loadScopeObjectQObjectPropertyDirectly;
- instr_loadScopeObjectIntPropertyDirectly loadScopeObjectIntPropertyDirectly;
- instr_loadScopeObjectBoolPropertyDirectly loadScopeObjectBoolPropertyDirectly;
- instr_loadScopeObjectQStringPropertyDirectly loadScopeObjectQStringPropertyDirectly;
instr_loadContextObjectProperty loadContextObjectProperty;
instr_loadIdObject loadIdObject;
instr_loadQObjectProperty loadQObjectProperty;
- instr_loadQRealQObjectPropertyDirectly loadQRealQObjectPropertyDirectly;
- instr_loadQObjectQObjectPropertyDirectly loadQObjectQObjectPropertyDirectly;
- instr_loadIntQObjectPropertyDirectly loadIntQObjectPropertyDirectly;
- instr_loadBoolQObjectPropertyDirectly loadBoolQObjectPropertyDirectly;
- instr_loadQStringQObjectPropertyDirectly loadQStringQObjectPropertyDirectly;
instr_loadAttachedQObjectProperty loadAttachedQObjectProperty;
instr_storeProperty storeProperty;
instr_setLookup setLookup;