From 705a2780743a01cb9a1032fca8c1f942b50e5a0a Mon Sep 17 00:00:00 2001 From: Simon Hausmann Date: Thu, 9 Feb 2017 10:25:08 +0100 Subject: Prospective fix for native ARMv7 and ARM64 builds Don't try to instantiate the presumed "cross-assembler" twice, and also exclude the Yarr JIT from the devtools build. It requires a loadPtr enabled assembler (disabled in V4_BOOTSTRAP builds) and we don't need the regexp engine. Change-Id: I3f36b32decdbf51133b8fef641f5630c5f5102b1 Reviewed-by: Samuli Piippo Reviewed-by: Lars Knoll --- src/3rdparty/masm/masm.pri | 3 +++ src/qml/jit/qv4assembler.cpp | 4 ++++ src/qml/jit/qv4binop.cpp | 4 ++++ src/qml/jit/qv4unop.cpp | 4 ++++ 4 files changed, 15 insertions(+) (limited to 'src') diff --git a/src/3rdparty/masm/masm.pri b/src/3rdparty/masm/masm.pri index 248be6e18c..6c301fea38 100644 --- a/src/3rdparty/masm/masm.pri +++ b/src/3rdparty/masm/masm.pri @@ -77,6 +77,7 @@ SOURCES += $$PWD/disassembler/ARM64Disassembler.cpp SOURCES += $$PWD/disassembler/ARM64/A64DOpcode.cpp HEADERS += $$PWD/disassembler/ARM64/A64DOpcode.h +!qmldevtools_build { SOURCES += $$PWD/yarr/YarrCanonicalizeUCS2.cpp \ $$PWD/yarr/YarrInterpreter.cpp \ $$PWD/yarr/YarrJIT.cpp \ @@ -90,6 +91,8 @@ HEADERS += $$PWD/yarr/Yarr.h \ $$PWD/yarr/YarrParser.h \ $$PWD/yarr/YarrPattern.h \ $$PWD/yarr/YarrSyntaxChecker.h +} + # # Generate RegExpJitTables.h # diff --git a/src/qml/jit/qv4assembler.cpp b/src/qml/jit/qv4assembler.cpp index 017bf0907f..a2cb56abbe 100644 --- a/src/qml/jit/qv4assembler.cpp +++ b/src/qml/jit/qv4assembler.cpp @@ -701,8 +701,12 @@ JSC::MacroAssemblerCodeRef Assembler::link(int *codeSize) template class QV4::JIT::Assembler; #if defined(V4_BOOTSTRAP) +#if !CPU(ARM_THUMB2) template class QV4::JIT::Assembler>; +#endif +#if !CPU(ARM64) template class QV4::JIT::Assembler>; #endif +#endif #endif diff --git a/src/qml/jit/qv4binop.cpp b/src/qml/jit/qv4binop.cpp index 201724df9f..6d20a4e042 100644 --- a/src/qml/jit/qv4binop.cpp +++ b/src/qml/jit/qv4binop.cpp @@ -649,9 +649,13 @@ typename JITAssembler::Jump Binop::genInlineBinop(IR::Expr *leftSo template struct QV4::JIT::Binop>; #if defined(V4_BOOTSTRAP) +#if !CPU(ARM_THUMB2) template struct QV4::JIT::Binop>>; +#endif +#if !CPU(ARM64) template struct QV4::JIT::Binop>>; #endif +#endif } // end of namespace JIT } // end of namespace QV4 diff --git a/src/qml/jit/qv4unop.cpp b/src/qml/jit/qv4unop.cpp index d60780c2bb..76c6457d67 100644 --- a/src/qml/jit/qv4unop.cpp +++ b/src/qml/jit/qv4unop.cpp @@ -146,8 +146,12 @@ void Unop::generateCompl(IR::Expr *source, IR::Expr *target) template struct QV4::JIT::Unop>; #if defined(V4_BOOTSTRAP) +#if !CPU(ARM_THUMB2) template struct QV4::JIT::Unop>>; +#endif +#if !CPU(ARM64) template struct QV4::JIT::Unop>>; #endif +#endif #endif -- cgit v1.2.3