diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-07-24 15:57:29 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2014-07-24 16:28:13 +0200 |
commit | beddea1d3d1a77ff8d187ff66e50280af00e52e1 (patch) | |
tree | c0a186722fb0977c8481bec94ee57f31ca239132 | |
parent | aad255f6d5e79f496e93c9e758504a1d2c8a2467 (diff) |
V4 JIT: enable the JIT when compiling with clang on ARM.
The macros that were used to detect Thumb2 support on the cores were gcc
specific.
Change-Id: I76959899b41f440d4b7ad7a5436059a3dc102111
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
-rw-r--r-- | src/3rdparty/masm/assembler/MacroAssemblerARMv7.h | 1 | ||||
-rw-r--r-- | src/3rdparty/masm/wtf/Platform.h | 3 | ||||
-rw-r--r-- | src/qml/jsruntime/qv4global_p.h | 2 |
3 files changed, 5 insertions, 1 deletions
diff --git a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h index f492cc8c94..2be073e314 100644 --- a/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h +++ b/src/3rdparty/masm/assembler/MacroAssemblerARMv7.h @@ -35,6 +35,7 @@ namespace JSC { class MacroAssemblerARMv7 : public AbstractMacroAssembler<ARMv7Assembler> { +protected: // the YarrJIT needs know about addressTempRegister in order to push it. // FIXME: switch dataTempRegister & addressTempRegister, or possibly use r7? // - dTR is likely used more than aTR, and we'll get better instruction // encoding if it's in the low 8 registers. diff --git a/src/3rdparty/masm/wtf/Platform.h b/src/3rdparty/masm/wtf/Platform.h index c845f5e23c..3e2a51379c 100644 --- a/src/3rdparty/masm/wtf/Platform.h +++ b/src/3rdparty/masm/wtf/Platform.h @@ -288,7 +288,8 @@ /* Only one of these will be defined. */ #if !defined(WTF_CPU_ARM_TRADITIONAL) && !defined(WTF_CPU_ARM_THUMB2) # if defined(thumb2) || defined(__thumb2__) \ - || ((defined(__thumb) || defined(__thumb__)) && WTF_THUMB_ARCH_VERSION == 4) + || ((defined(__thumb) || defined(__thumb__)) && WTF_THUMB_ARCH_VERSION == 4) \ + || (defined(__ARM_ARCH_ISA_THUMB) && __ARM_ARCH_ISA_THUMB == 2) # define WTF_CPU_ARM_TRADITIONAL 0 # define WTF_CPU_ARM_THUMB2 1 # elif WTF_ARM_ARCH_AT_LEAST(4) diff --git a/src/qml/jsruntime/qv4global_p.h b/src/qml/jsruntime/qv4global_p.h index 38d353c2e9..039f5c1e78 100644 --- a/src/qml/jsruntime/qv4global_p.h +++ b/src/qml/jsruntime/qv4global_p.h @@ -85,6 +85,8 @@ inline double trunc(double d) { return d > 0 ? floor(d) : ceil(d); } #if defined(thumb2) || defined(__thumb2__) || ((defined(__thumb) || defined(__thumb__)) && __TARGET_ARCH_THUMB-0 == 4) #define V4_ENABLE_JIT +#elif defined(__ARM_ARCH_ISA_THUMB) && __ARM_ARCH_ISA_THUMB == 2 // clang 3.5 and later will set this if the core supports the Thumb-2 ISA. +#define V4_ENABLE_JIT #endif #endif |