summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Zern <jzern@google.com>2015-02-19 12:16:58 -0800
committerJames Zern <jzern@google.com>2015-03-03 17:53:47 -0800
commit77544d5f5b4736f6708492b507bf982cbf2ada79 (patch)
tree018f0366744006a7b44dca567b0d3c38b2576c6d
parent6dea15784d74ef5d2aa0180b363af77418473ad0 (diff)
downloadlibwebp-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.c5
-rw-r--r--src/dsp/lossless_neon.c5
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