aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRahul Chaudhry <rahulchaudhry@chromium.org>2018-04-18 16:29:39 -0700
committerMichael Niedermayer <michael@niedermayer.cc>2018-06-18 01:16:03 +0200
commit47c3d2459e953856d7089bbf3d5baa269080bcc0 (patch)
treea4ce585ac94cd31c0d01f817328338ac23a21389
parent86a6e700e1162a52012d175e71498a82389dae5f (diff)
downloadffmpeg-47c3d2459e953856d7089bbf3d5baa269080bcc0.tar.gz
swresample/arm: remove unintentional relocation.
Branch to global symbol results in reference to PLT, and when compiling for THUMB-2 - in a R_ARM_THM_JUMP19 relocation. Some linkers don't support this relocation (ld.gold), while others can end up truncating the relocation to fit (ld.bfd). Convert this branch through PLT into a direct branch that the assembler can resolve locally. See https://github.com/android-ndk/ndk/issues/337 for background. The current workaround is to disable neon during gstreamer build, which is not optimal and can be reverted after this patch: https://github.com/freedesktop/gstreamer-cerbero/commit/41556c415739fbc3a72c7eaee7e70a565b719b2f Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> (cherry picked from commit b22db4f465c9adb2cf1489e04f7b65ef6bb55b8b) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
-rw-r--r--libswresample/arm/audio_convert_neon.S6
1 files changed, 4 insertions, 2 deletions
diff --git a/libswresample/arm/audio_convert_neon.S b/libswresample/arm/audio_convert_neon.S
index 1f88316dde..7729514701 100644
--- a/libswresample/arm/audio_convert_neon.S
+++ b/libswresample/arm/audio_convert_neon.S
@@ -22,6 +22,7 @@
#include "libavutil/arm/asm.S"
function swri_oldapi_conv_flt_to_s16_neon, export=1
+_swri_oldapi_conv_flt_to_s16_neon:
subs r2, r2, #8
vld1.32 {q0}, [r1,:128]!
vcvt.s32.f32 q8, q0, #31
@@ -66,6 +67,7 @@ function swri_oldapi_conv_flt_to_s16_neon, export=1
endfunc
function swri_oldapi_conv_fltp_to_s16_2ch_neon, export=1
+_swri_oldapi_conv_fltp_to_s16_2ch_neon:
ldm r1, {r1, r3}
subs r2, r2, #8
vld1.32 {q0}, [r1,:128]!
@@ -133,8 +135,8 @@ function swri_oldapi_conv_fltp_to_s16_nch_neon, export=1
cmp r3, #2
itt lt
ldrlt r1, [r1]
- blt X(swri_oldapi_conv_flt_to_s16_neon)
- beq X(swri_oldapi_conv_fltp_to_s16_2ch_neon)
+ blt _swri_oldapi_conv_flt_to_s16_neon
+ beq _swri_oldapi_conv_fltp_to_s16_2ch_neon
push {r4-r8, lr}
cmp r3, #4