From 835f8a90387c8d62e7ab262d23e3ab103aa6d133 Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Mon, 30 Jan 2017 15:40:42 +0100 Subject: Allow selecting armv7 as target architecture in qmlcachegen Change-Id: I36e8f95e83ea3de6553145efc762e3bc46f60071 Reviewed-by: Lars Knoll --- src/qml/jit/qv4isel_masm.cpp | 29 ++++++++++++++++++++++++++--- src/qml/jsruntime/jsruntime.pri | 4 ++-- 2 files changed, 28 insertions(+), 5 deletions(-) (limited to 'src/qml') diff --git a/src/qml/jit/qv4isel_masm.cpp b/src/qml/jit/qv4isel_masm.cpp index 58fafc4cd5..b1134d2bec 100644 --- a/src/qml/jit/qv4isel_masm.cpp +++ b/src/qml/jit/qv4isel_masm.cpp @@ -1667,9 +1667,32 @@ namespace QV4 { namespace JIT { template class Q_QML_EXPORT InstructionSelection<>; template class Q_QML_EXPORT ISelFactory<>; #if defined(V4_BOOTSTRAP) && CPU(X86_64) -using ARMv7CrossAssembler = QV4::JIT::Assembler>; -template class Q_QML_EXPORT InstructionSelection; -template class Q_QML_EXPORT ISelFactory; + +Q_QML_EXPORT QV4::EvalISelFactory *createISelForArchitecture(const QString &architecture) +{ + using ARMv7CrossAssembler = QV4::JIT::Assembler>; + + if (architecture == QLatin1String("armv7")) + return new ISelFactory; + + QString hostArch; +#if CPU(ARM_THUMB2) + hostArch = QStringLiteral("armv7"); +#elif CPU(ARM64) + hostArch = QStringLiteral("armv8"); +#elif CPU(MIPS) + hostArch = QStringLiteral("mips"); +#elif CPU(X86) + hostArch = QStringLiteral("x86"); +#elif CPU(X86_64) + hostArch = QStringLiteral("x86_64"); +#endif + if (!hostArch.isEmpty() && architecture == hostArch) + return new ISelFactory<>; + + return nullptr; +} + #endif } } QT_END_NAMESPACE diff --git a/src/qml/jsruntime/jsruntime.pri b/src/qml/jsruntime/jsruntime.pri index 919524d1ed..955cf585e4 100644 --- a/src/qml/jsruntime/jsruntime.pri +++ b/src/qml/jsruntime/jsruntime.pri @@ -35,7 +35,6 @@ SOURCES += \ $$PWD/qv4regexp.cpp \ $$PWD/qv4serialize.cpp \ $$PWD/qv4script.cpp \ - $$PWD/qv4executableallocator.cpp \ $$PWD/qv4sequenceobject.cpp \ $$PWD/qv4include.cpp \ $$PWD/qv4qobjectwrapper.cpp \ @@ -113,7 +112,8 @@ HEADERS += \ SOURCES += \ $$PWD/qv4runtime.cpp \ $$PWD/qv4string.cpp \ - $$PWD/qv4value.cpp + $$PWD/qv4value.cpp \ + $$PWD/qv4executableallocator.cpp valgrind { DEFINES += V4_USE_VALGRIND -- cgit v1.2.3