diff options
author | Erik Verbruggen <erik.verbruggen@theqtcompany.com> | 2016-02-25 10:11:23 +0100 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com> | 2016-03-08 17:55:14 +0000 |
commit | 27a2a0255946ddcd83cf28fa778685092e56e98d (patch) | |
tree | 7f6d57bcc7e7962285ecd6fdc84c2aa68d4faca6 /src/corelib | |
parent | 15ddb7f841f2fccbe854ada9f61a8243e35a4e05 (diff) |
iOS: Disable usage of crc32 intrinsics.
To quote http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160222/151168.html :
> AArch64: fix Cyclone CPU features list.
> It turns out we don't have CRC after all. Who knew?
So clang did define __ARM_FEATURE_CRC32, while the CPU didn't support
the crc32 instructions, resulting in EXC_BAD_INSTRUCTION.
Change-Id: I4b0123ac5e7fd04696c05bfe7dacce205cffac8f
Task-number: QTBUG-51168
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Diffstat (limited to 'src/corelib')
-rw-r--r-- | src/corelib/tools/qsimd_p.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h index c771037427..02439a2a9c 100644 --- a/src/corelib/tools/qsimd_p.h +++ b/src/corelib/tools/qsimd_p.h @@ -267,6 +267,13 @@ # endif #endif +// Clang compiler fix, see http://lists.llvm.org/pipermail/cfe-commits/Week-of-Mon-20160222/151168.html +// This should be tweaked with an "upper version" of clang once we know which release fixes the +// issue. At that point we can rely on __ARM_FEATURE_CRC32 again. +#if defined(Q_CC_CLANG) && defined(Q_OS_DARWIN) && defined (__ARM_FEATURE_CRC32) +# undef __ARM_FEATURE_CRC32 +#endif + // NEON intrinsics // note: as of GCC 4.9, does not support function targets for ARM #if defined(__ARM_NEON) || defined(__ARM_NEON__) |