diff options
author | James Zern <jzern@google.com> | 2015-02-19 12:16:58 -0800 |
---|---|---|
committer | James Zern <jzern@google.com> | 2015-03-03 17:53:47 -0800 |
commit | 77544d5f5b4736f6708492b507bf982cbf2ada79 (patch) | |
tree | 018f0366744006a7b44dca567b0d3c38b2576c6d | |
parent | 6dea15784d74ef5d2aa0180b363af77418473ad0 (diff) | |
download | libwebp-77544d5f5b4736f6708492b507bf982cbf2ada79.tar.gz |
fix iOS arm64 build with Xcode 6.3
the standard vtbl functions are available there [1][2].
based on a patch from: aaroncrespo
fixes issue #243.
[1]
http://adcdownload.apple.com//Developer_Tools/Xcode_6.3_beta/Xcode_6.3_beta_Release_Notes.pdf
[2] Apple LLVM Compiler Version 6.1
- Xcode 6.3 updates the Apple LLVM compiler to version 6.1.0.
[...]
Support for the arm64 architecture has been significantly revised to
align with ARM's implementation, where the most visible impact is that a
few of the vector intrinsics have changed to match ARM's specifications.
(cherry picked from commit 602a00f93f9fc2fe6b49848bab92ea34674333e9)
Change-Id: I79a0016f44b9dbe36d0373f7f00a50ab3c2ca447
-rw-r--r-- | src/dsp/enc_neon.c | 5 | ||||
-rw-r--r-- | src/dsp/lossless_neon.c | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/src/dsp/enc_neon.c b/src/dsp/enc_neon.c index bcab8ffa..5814fac9 100644 --- a/src/dsp/enc_neon.c +++ b/src/dsp/enc_neon.c @@ -1012,9 +1012,10 @@ static int QuantizeBlock(int16_t in[16], int16_t out[16], const int16x8_t out0 = Quantize(in, mtx, 0); const int16x8_t out1 = Quantize(in, mtx, 8); uint8x8x4_t shuffles; - // vtbl4_u8 is marked unavailable for iOS arm64, use wider versions there. + // vtbl?_u8 are marked unavailable for iOS arm64 with Xcode < 6.3, use + // non-standard versions there. #if defined(__APPLE__) && defined(__aarch64__) && \ - defined(__apple_build_version__) + defined(__apple_build_version__) && (__apple_build_version__< 6020037) uint8x16x2_t all_out; INIT_VECTOR2(all_out, vreinterpretq_u8_s16(out0), vreinterpretq_u8_s16(out1)); INIT_VECTOR4(shuffles, diff --git a/src/dsp/lossless_neon.c b/src/dsp/lossless_neon.c index 9f8fa9da..8c82b197 100644 --- a/src/dsp/lossless_neon.c +++ b/src/dsp/lossless_neon.c @@ -259,9 +259,10 @@ static uint32_t Predictor13(uint32_t left, const uint32_t* const top) { //------------------------------------------------------------------------------ // Subtract-Green Transform -// vtbl?_u8 are marked unavailable for iOS arm64, use wider versions there. +// vtbl?_u8 are marked unavailable for iOS arm64 with Xcode < 6.3, use +// non-standard versions there. #if defined(__APPLE__) && defined(__aarch64__) && \ - defined(__apple_build_version__) + defined(__apple_build_version__) && (__apple_build_version__< 6020037) #define USE_VTBLQ #endif |