diff options
Diffstat (limited to 'src/qml/compiler/qv4instr_moth_p.h')
-rw-r--r-- | src/qml/compiler/qv4instr_moth_p.h | 111 |
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; |