From 7730affa0dd50960da90f30d41b694a9e9ddd52b Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Fri, 5 May 2017 15:21:40 +0200 Subject: Prospective build fix for architectures where we don't support the JIT Always export the isel factory method for qmlcachegen, so that we can link. Task-number: QTBUG-60597 Change-Id: Ia348ee5dfe0892878e8fce6c8afd30bb8eb54a51 Reviewed-by: Dmitry Shachnev Reviewed-by: Robin Burchell --- src/qml/jit/qv4isel_masm.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/qml/jit') diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index 4afcd1517f..ac72d2e8f5 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -1631,14 +1631,20 @@ QQmlRefPointer ISelFactory::createU return result; } +#endif // ENABLE(ASSEMBLER) + QT_BEGIN_NAMESPACE namespace QV4 { namespace JIT { +#if ENABLE(ASSEMBLER) template class Q_QML_EXPORT InstructionSelection<>; template class Q_QML_EXPORT ISelFactory<>; +#endif + #if defined(V4_BOOTSTRAP) Q_QML_EXPORT QV4::EvalISelFactory *createISelForArchitecture(const QString &architecture) { +#if ENABLE(ASSEMBLER) using ARMv7CrossAssembler = QV4::JIT::Assembler>; using ARM64CrossAssembler = QV4::JIT::Assembler>; @@ -1659,6 +1665,7 @@ Q_QML_EXPORT QV4::EvalISelFactory *createISelForArchitecture(const QString &arch #endif if (!hostArch.isEmpty() && architecture == hostArch) return new ISelFactory<>; +#endif // ENABLE(ASSEMBLER) return nullptr; } @@ -1667,4 +1674,3 @@ Q_QML_EXPORT QV4::EvalISelFactory *createISelForArchitecture(const QString &arch } } QT_END_NAMESPACE -#endif // ENABLE(ASSEMBLER) -- cgit v1.2.3 From 095e7d378ee17838d9ba5d7a503da0608bb2fd0c Mon Sep 17 00:00:00 2001 From: Lars Knoll Date: Tue, 9 May 2017 08:24:01 +0200 Subject: Optimize Runtime::method_get/setElement This is now actually just as fast as the lookup code, so disable the generation of lookups for indexed accesses for now. This saves some runtime memory, as we don't need the data structures for the lookup. We can reintroduce lookups, once they offer a real performance benefit. Change-Id: Idc3fa7b248e2e25b4b2cd60d5053e2815634c8b7 Reviewed-by: Simon Hausmann --- src/qml/jit/qv4isel_masm.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/qml/jit') diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index ac72d2e8f5..50d40f6f98 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -618,7 +618,7 @@ void InstructionSelection::setQObjectProperty(IR::Expr *source, IR template void InstructionSelection::getElement(IR::Expr *base, IR::Expr *index, IR::Expr *target) { - if (useFastLookups) { + if (0 && useFastLookups) { uint lookup = registerIndexedGetterLookup(); generateLookupCall(target, lookup, offsetof(QV4::Lookup, indexedGetter), PointerToValue(base), @@ -633,7 +633,7 @@ void InstructionSelection::getElement(IR::Expr *base, IR::Expr *in template void InstructionSelection::setElement(IR::Expr *source, IR::Expr *targetBase, IR::Expr *targetIndex) { - if (useFastLookups) { + if (0 && useFastLookups) { uint lookup = registerIndexedSetterLookup(); generateLookupCall(JITAssembler::Void, lookup, offsetof(QV4::Lookup, indexedSetter), PointerToValue(targetBase), PointerToValue(targetIndex), -- cgit v1.2.3