diff --git a/libavcodec/arm/asm.S b/libavcodec/arm/asm.S index 06006730da..0fbd641dc3 100644 --- a/libavcodec/arm/asm.S +++ b/libavcodec/arm/asm.S @@ -36,7 +36,8 @@ ELF .eabi_attribute 25, \val .macro function name, export=0 .if \export - .global \name + .global EXTERN_ASM\name +EXTERN_ASM\name: .endif ELF .type \name, %function .func \name @@ -60,3 +61,7 @@ ELF .type \name, %function # define VFP @ # define NOVFP #endif + +#define GLUE(a, b) a ## b +#define JOIN(a, b) GLUE(a, b) +#define X(s) JOIN(EXTERN_ASM, s) diff --git a/libavcodec/arm/fft_neon.S b/libavcodec/arm/fft_neon.S index fcd835ab88..e237196774 100644 --- a/libavcodec/arm/fft_neon.S +++ b/libavcodec/arm/fft_neon.S @@ -141,7 +141,7 @@ function fft16_neon vswp d29, d30 @ q14{r12,i12,i14,r15} q15{r13,i13,i15,r14} vadd.f32 q0, q12, q13 @ {t1,t2,t5,t6} vadd.f32 q1, q14, q15 @ {t1a,t2a,t5a,t6a} - movrel r2, ff_cos_16 + movrel r2, X(ff_cos_16) vsub.f32 q13, q12, q13 @ {t3,t4,t7,t8} vrev64.32 d1, d1 vsub.f32 q15, q14, q15 @ {t3a,t4a,t7a,t8a} @@ -288,7 +288,7 @@ function fft\n\()_neon bl fft\n4\()_neon mov r0, r4 pop {r4, lr} - movrel r1, ff_cos_\n + movrel r1, X(ff_cos_\n) mov r2, #\n4/2 b fft_pass_neon .endfunc diff --git a/libavcodec/arm/mdct_neon.S b/libavcodec/arm/mdct_neon.S index 52438b8143..495c2b2d5c 100644 --- a/libavcodec/arm/mdct_neon.S +++ b/libavcodec/arm/mdct_neon.S @@ -24,6 +24,8 @@ .fpu neon .text +#define ff_fft_calc_neon X(ff_fft_calc_neon) + function ff_imdct_half_neon, export=1 push {r4-r8,lr}