[1/2] arm: Add X() around all references to extern symbols

Message ID 1391767617-2150-1-git-send-email-martin@martin.st
State Committed
Commit 5bcbb516f2ff45290ef7995b081762e668693672
Headers show

Commit Message

Martin Storsjö Feb. 7, 2014, 10:06 a.m.
Don't rely on the fact that an unprefixed label currently exists.
---
 libavcodec/arm/fmtconvert_neon.S       |  2 +-
 libavcodec/arm/h264idct_neon.S         | 16 ++++++++--------
 libavcodec/arm/hpeldsp_armv6.S         |  4 ++--
 libavcodec/arm/mdct_neon.S             |  2 +-
 libavcodec/arm/mpegvideo_neon.S        |  2 +-
 libavcodec/arm/videodsp_armv5te.S      |  2 +-
 libavcodec/arm/vp8dsp_armv6.S          | 16 ++++++++--------
 libavresample/arm/audio_convert_neon.S |  4 ++--
 8 files changed, 24 insertions(+), 24 deletions(-)

Comments

Janne Grunau Feb. 7, 2014, 11:59 a.m. | #1
On 2014-02-07 12:06:56 +0200, Martin Storsjö wrote:
> Don't rely on the fact that an unprefixed label currently exists.
> ---
>  libavcodec/arm/fmtconvert_neon.S       |  2 +-
>  libavcodec/arm/h264idct_neon.S         | 16 ++++++++--------
>  libavcodec/arm/hpeldsp_armv6.S         |  4 ++--
>  libavcodec/arm/mdct_neon.S             |  2 +-
>  libavcodec/arm/mpegvideo_neon.S        |  2 +-
>  libavcodec/arm/videodsp_armv5te.S      |  2 +-
>  libavcodec/arm/vp8dsp_armv6.S          | 16 ++++++++--------
>  libavresample/arm/audio_convert_neon.S |  4 ++--
>  8 files changed, 24 insertions(+), 24 deletions(-)
> 
> diff --git a/libavcodec/arm/fmtconvert_neon.S b/libavcodec/arm/fmtconvert_neon.S
> index 41a095a..e11e82c 100644
> --- a/libavcodec/arm/fmtconvert_neon.S
> +++ b/libavcodec/arm/fmtconvert_neon.S
> @@ -70,7 +70,7 @@ function ff_float_to_int16_interleave_neon, export=1
>          cmp             r3, #2
>          itt             lt
>          ldrlt           r1, [r1]
> -        blt             ff_float_to_int16_neon
> +        blt             X(ff_float_to_int16_neon)
>          bne             4f
>  
>          ldr             r3, [r1]
> diff --git a/libavcodec/arm/h264idct_neon.S b/libavcodec/arm/h264idct_neon.S
> index 3e5321c..f588f3e 100644
> --- a/libavcodec/arm/h264idct_neon.S
> +++ b/libavcodec/arm/h264idct_neon.S
> @@ -113,8 +113,8 @@ function ff_h264_idct_add16_neon, export=1
>          movne           lr,  #0
>          cmp             lr,  #0
>          ite             ne
> -        adrne           lr,  ff_h264_idct_dc_add_neon + CONFIG_THUMB
> -        adreq           lr,  ff_h264_idct_add_neon    + CONFIG_THUMB
> +        adrne           lr,  X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
> +        adreq           lr,  X(ff_h264_idct_add_neon)    + CONFIG_THUMB

does this still does the right thing when X(ff_h264_idct_add_neon) is
declared as .thumb_func when targeting ios? It probably does since
ff_h264_idct_add_neon should already be declared as thumb after my
'.func' -> '.thumb_func' patch in gas-preprocessor.

>          blx             lr
>  2:      subs            ip,  ip,  #1
>          add             r1,  r1,  #32
> @@ -138,8 +138,8 @@ function ff_h264_idct_add16intra_neon, export=1
>          cmp             r8,  #0
>          ldrsh           r8,  [r1]
>          iteet           ne
> -        adrne           lr,  ff_h264_idct_add_neon    + CONFIG_THUMB
> -        adreq           lr,  ff_h264_idct_dc_add_neon + CONFIG_THUMB
> +        adrne           lr,  X(ff_h264_idct_add_neon)    + CONFIG_THUMB
> +        adreq           lr,  X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
>          cmpeq           r8,  #0
>          blxne           lr
>          subs            ip,  ip,  #1
> @@ -166,8 +166,8 @@ function ff_h264_idct_add8_neon, export=1
>          cmp             r8,  #0
>          ldrsh           r8,  [r1]
>          iteet           ne
> -        adrne           lr,  ff_h264_idct_add_neon    + CONFIG_THUMB
> -        adreq           lr,  ff_h264_idct_dc_add_neon + CONFIG_THUMB
> +        adrne           lr,  X(ff_h264_idct_add_neon)    + CONFIG_THUMB
> +        adreq           lr,  X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
>          cmpeq           r8,  #0
>          blxne           lr
>          add             r12, r12, #1
> @@ -388,8 +388,8 @@ function ff_h264_idct8_add4_neon, export=1
>          movne           lr,  #0
>          cmp             lr,  #0
>          ite             ne
> -        adrne           lr,  ff_h264_idct8_dc_add_neon + CONFIG_THUMB
> -        adreq           lr,  ff_h264_idct8_add_neon    + CONFIG_THUMB
> +        adrne           lr,  X(ff_h264_idct8_dc_add_neon) + CONFIG_THUMB
> +        adreq           lr,  X(ff_h264_idct8_add_neon)    + CONFIG_THUMB
>          blx             lr
>  2:      subs            r12, r12, #4
>          add             r1,  r1,  #128
> diff --git a/libavcodec/arm/hpeldsp_armv6.S b/libavcodec/arm/hpeldsp_armv6.S
> index a030d42..f85c8cb 100644
> --- a/libavcodec/arm/hpeldsp_armv6.S
> +++ b/libavcodec/arm/hpeldsp_armv6.S
> @@ -23,11 +23,11 @@
>  .macro  call_2x_pixels  type, subp
>  function ff_\type\()_pixels16\subp\()_armv6, export=1
>          push            {r0-r3, lr}
> -        bl              ff_\type\()_pixels8\subp\()_armv6
> +        bl              X(ff_\type\()_pixels8\subp\()_armv6)
>          pop             {r0-r3, lr}
>          add             r0,  r0,  #8
>          add             r1,  r1,  #8
> -        b               ff_\type\()_pixels8\subp\()_armv6
> +        b               X(ff_\type\()_pixels8\subp\()_armv6)
>  endfunc
>  .endm
>  
> diff --git a/libavcodec/arm/mdct_neon.S b/libavcodec/arm/mdct_neon.S
> index 9f7cb46..bfe259c 100644
> --- a/libavcodec/arm/mdct_neon.S
> +++ b/libavcodec/arm/mdct_neon.S
> @@ -129,7 +129,7 @@ function ff_imdct_calc_neon, export=1
>          lsl             r4,  r4,  r3
>          add             r1,  r1,  r4
>  
> -        bl              ff_imdct_half_neon
> +        bl              X(ff_imdct_half_neon)
>  
>          add             r0,  r5,  r4,  lsl #2
>          add             r1,  r5,  r4,  lsl #1
> diff --git a/libavcodec/arm/mpegvideo_neon.S b/libavcodec/arm/mpegvideo_neon.S
> index 0c6c428..3e1f7b5 100644
> --- a/libavcodec/arm/mpegvideo_neon.S
> +++ b/libavcodec/arm/mpegvideo_neon.S
> @@ -100,7 +100,7 @@ function ff_dct_unquantize_h263_intra_neon, export=1
>          smulbb          r4,  r4,  r6
>  2:      lsl             r0,  r3,  #1
>          add             r3,  r12, #1
> -        bl              ff_dct_unquantize_h263_neon
> +        bl              X(ff_dct_unquantize_h263_neon)
>          vmov.16         d0[0], r4
>          vst1.16         {d0[0]},  [r5]
>          pop             {r4-r6,pc}
> diff --git a/libavcodec/arm/videodsp_armv5te.S b/libavcodec/arm/videodsp_armv5te.S
> index 120069d..055736d 100644
> --- a/libavcodec/arm/videodsp_armv5te.S
> +++ b/libavcodec/arm/videodsp_armv5te.S
> @@ -26,6 +26,6 @@ function ff_prefetch_arm, export=1
>          subs            r2,  r2,  #1
>          pld             [r0]
>          add             r0,  r0,  r1
> -        bne             ff_prefetch_arm
> +        bne             X(ff_prefetch_arm)
>          bx              lr
>  endfunc
> diff --git a/libavcodec/arm/vp8dsp_armv6.S b/libavcodec/arm/vp8dsp_armv6.S
> index 5207758..19d454b 100644
> --- a/libavcodec/arm/vp8dsp_armv6.S
> +++ b/libavcodec/arm/vp8dsp_armv6.S
> @@ -359,14 +359,14 @@ endfunc
>  function ff_vp8_idct_dc_add4uv_armv6, export=1
>          push            {r4, lr}
>  
> -        bl              ff_vp8_idct_dc_add_armv6
> +        bl              X(ff_vp8_idct_dc_add_armv6)
>          add             r0,  r0,  #4
> -        bl              ff_vp8_idct_dc_add_armv6
> +        bl              X(ff_vp8_idct_dc_add_armv6)
>          add             r0,  r0,  r2,  lsl #2
>          sub             r0,  r0,  #4
> -        bl              ff_vp8_idct_dc_add_armv6
> +        bl              X(ff_vp8_idct_dc_add_armv6)
>          add             r0,  r0,  #4
> -        bl              ff_vp8_idct_dc_add_armv6
> +        bl              X(ff_vp8_idct_dc_add_armv6)
>  
>          pop             {r4, pc}
>  endfunc
> @@ -375,13 +375,13 @@ endfunc
>  function ff_vp8_idct_dc_add4y_armv6, export=1
>          push            {r4, lr}
>  
> -        bl              ff_vp8_idct_dc_add_armv6
> +        bl              X(ff_vp8_idct_dc_add_armv6)
>          add             r0,  r0,  #4
> -        bl              ff_vp8_idct_dc_add_armv6
> +        bl              X(ff_vp8_idct_dc_add_armv6)
>          add             r0,  r0,  #4
> -        bl              ff_vp8_idct_dc_add_armv6
> +        bl              X(ff_vp8_idct_dc_add_armv6)
>          add             r0,  r0,  #4
> -        bl              ff_vp8_idct_dc_add_armv6
> +        bl              X(ff_vp8_idct_dc_add_armv6)
>  
>          pop             {r4, pc}
>  endfunc
> diff --git a/libavresample/arm/audio_convert_neon.S b/libavresample/arm/audio_convert_neon.S
> index 092ce0c..98945c4 100644
> --- a/libavresample/arm/audio_convert_neon.S
> +++ b/libavresample/arm/audio_convert_neon.S
> @@ -133,8 +133,8 @@ function ff_conv_fltp_to_s16_neon, export=1
>          cmp             r3,  #2
>          itt             lt
>          ldrlt           r1,  [r1]
> -        blt             ff_conv_flt_to_s16_neon
> -        beq             ff_conv_fltp_to_s16_2ch_neon
> +        blt             X(ff_conv_flt_to_s16_neon)
> +        beq             X(ff_conv_fltp_to_s16_2ch_neon)
>  
>          push            {r4-r8, lr}
>          cmp             r3,  #4

otherwise ok

Janne
Martin Storsjö Feb. 7, 2014, 12:03 p.m. | #2
On Fri, 7 Feb 2014, Janne Grunau wrote:

> On 2014-02-07 12:06:56 +0200, Martin Storsjö wrote:
>> Don't rely on the fact that an unprefixed label currently exists.
>> ---
>>  libavcodec/arm/fmtconvert_neon.S       |  2 +-
>>  libavcodec/arm/h264idct_neon.S         | 16 ++++++++--------
>>  libavcodec/arm/hpeldsp_armv6.S         |  4 ++--
>>  libavcodec/arm/mdct_neon.S             |  2 +-
>>  libavcodec/arm/mpegvideo_neon.S        |  2 +-
>>  libavcodec/arm/videodsp_armv5te.S      |  2 +-
>>  libavcodec/arm/vp8dsp_armv6.S          | 16 ++++++++--------
>>  libavresample/arm/audio_convert_neon.S |  4 ++--
>>  8 files changed, 24 insertions(+), 24 deletions(-)
>>
>> diff --git a/libavcodec/arm/fmtconvert_neon.S b/libavcodec/arm/fmtconvert_neon.S
>> index 41a095a..e11e82c 100644
>> --- a/libavcodec/arm/fmtconvert_neon.S
>> +++ b/libavcodec/arm/fmtconvert_neon.S
>> @@ -70,7 +70,7 @@ function ff_float_to_int16_interleave_neon, export=1
>>          cmp             r3, #2
>>          itt             lt
>>          ldrlt           r1, [r1]
>> -        blt             ff_float_to_int16_neon
>> +        blt             X(ff_float_to_int16_neon)
>>          bne             4f
>>
>>          ldr             r3, [r1]
>> diff --git a/libavcodec/arm/h264idct_neon.S b/libavcodec/arm/h264idct_neon.S
>> index 3e5321c..f588f3e 100644
>> --- a/libavcodec/arm/h264idct_neon.S
>> +++ b/libavcodec/arm/h264idct_neon.S
>> @@ -113,8 +113,8 @@ function ff_h264_idct_add16_neon, export=1
>>          movne           lr,  #0
>>          cmp             lr,  #0
>>          ite             ne
>> -        adrne           lr,  ff_h264_idct_dc_add_neon + CONFIG_THUMB
>> -        adreq           lr,  ff_h264_idct_add_neon    + CONFIG_THUMB
>> +        adrne           lr,  X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
>> +        adreq           lr,  X(ff_h264_idct_add_neon)    + CONFIG_THUMB
>
> does this still does the right thing when X(ff_h264_idct_add_neon) is
> declared as .thumb_func when targeting ios? It probably does since
> ff_h264_idct_add_neon should already be declared as thumb after my
> '.func' -> '.thumb_func' patch in gas-preprocessor.

Yes, prior to this patch both ff_h264_idct_dc_add_neon and 
_ff_h264_idct_dc_add_neon are marked with .thumb_func, so this shouldn't 
change anything with regard to that. Excellent point though.

// Martin
Janne Grunau Feb. 7, 2014, 12:52 p.m. | #3
On 2014-02-07 14:03:59 +0200, Martin Storsjö wrote:
> On Fri, 7 Feb 2014, Janne Grunau wrote:
> 
> >On 2014-02-07 12:06:56 +0200, Martin Storsjö wrote:
> >>Don't rely on the fact that an unprefixed label currently exists.
> >>---
> >> libavcodec/arm/fmtconvert_neon.S       |  2 +-
> >> libavcodec/arm/h264idct_neon.S         | 16 ++++++++--------
> >> libavcodec/arm/hpeldsp_armv6.S         |  4 ++--
> >> libavcodec/arm/mdct_neon.S             |  2 +-
> >> libavcodec/arm/mpegvideo_neon.S        |  2 +-
> >> libavcodec/arm/videodsp_armv5te.S      |  2 +-
> >> libavcodec/arm/vp8dsp_armv6.S          | 16 ++++++++--------
> >> libavresample/arm/audio_convert_neon.S |  4 ++--
> >> 8 files changed, 24 insertions(+), 24 deletions(-)
> >>
> >>diff --git a/libavcodec/arm/fmtconvert_neon.S b/libavcodec/arm/fmtconvert_neon.S
> >>index 41a095a..e11e82c 100644
> >>--- a/libavcodec/arm/fmtconvert_neon.S
> >>+++ b/libavcodec/arm/fmtconvert_neon.S
> >>@@ -70,7 +70,7 @@ function ff_float_to_int16_interleave_neon, export=1
> >>         cmp             r3, #2
> >>         itt             lt
> >>         ldrlt           r1, [r1]
> >>-        blt             ff_float_to_int16_neon
> >>+        blt             X(ff_float_to_int16_neon)
> >>         bne             4f
> >>
> >>         ldr             r3, [r1]
> >>diff --git a/libavcodec/arm/h264idct_neon.S b/libavcodec/arm/h264idct_neon.S
> >>index 3e5321c..f588f3e 100644
> >>--- a/libavcodec/arm/h264idct_neon.S
> >>+++ b/libavcodec/arm/h264idct_neon.S
> >>@@ -113,8 +113,8 @@ function ff_h264_idct_add16_neon, export=1
> >>         movne           lr,  #0
> >>         cmp             lr,  #0
> >>         ite             ne
> >>-        adrne           lr,  ff_h264_idct_dc_add_neon + CONFIG_THUMB
> >>-        adreq           lr,  ff_h264_idct_add_neon    + CONFIG_THUMB
> >>+        adrne           lr,  X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
> >>+        adreq           lr,  X(ff_h264_idct_add_neon)    + CONFIG_THUMB
> >
> >does this still does the right thing when X(ff_h264_idct_add_neon) is
> >declared as .thumb_func when targeting ios? It probably does since
> >ff_h264_idct_add_neon should already be declared as thumb after my
> >'.func' -> '.thumb_func' patch in gas-preprocessor.
> 
> Yes, prior to this patch both ff_h264_idct_dc_add_neon and
> _ff_h264_idct_dc_add_neon are marked with .thumb_func, so this
> shouldn't change anything with regard to that. Excellent point
> though.

Tested, the '+ CONFIG_THUMB' is still required since for some reason
the thumb bit is not set in this context although the symbol is
declared as .thumb_func. patch ok

Janne

Patch

diff --git a/libavcodec/arm/fmtconvert_neon.S b/libavcodec/arm/fmtconvert_neon.S
index 41a095a..e11e82c 100644
--- a/libavcodec/arm/fmtconvert_neon.S
+++ b/libavcodec/arm/fmtconvert_neon.S
@@ -70,7 +70,7 @@  function ff_float_to_int16_interleave_neon, export=1
         cmp             r3, #2
         itt             lt
         ldrlt           r1, [r1]
-        blt             ff_float_to_int16_neon
+        blt             X(ff_float_to_int16_neon)
         bne             4f
 
         ldr             r3, [r1]
diff --git a/libavcodec/arm/h264idct_neon.S b/libavcodec/arm/h264idct_neon.S
index 3e5321c..f588f3e 100644
--- a/libavcodec/arm/h264idct_neon.S
+++ b/libavcodec/arm/h264idct_neon.S
@@ -113,8 +113,8 @@  function ff_h264_idct_add16_neon, export=1
         movne           lr,  #0
         cmp             lr,  #0
         ite             ne
-        adrne           lr,  ff_h264_idct_dc_add_neon + CONFIG_THUMB
-        adreq           lr,  ff_h264_idct_add_neon    + CONFIG_THUMB
+        adrne           lr,  X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
+        adreq           lr,  X(ff_h264_idct_add_neon)    + CONFIG_THUMB
         blx             lr
 2:      subs            ip,  ip,  #1
         add             r1,  r1,  #32
@@ -138,8 +138,8 @@  function ff_h264_idct_add16intra_neon, export=1
         cmp             r8,  #0
         ldrsh           r8,  [r1]
         iteet           ne
-        adrne           lr,  ff_h264_idct_add_neon    + CONFIG_THUMB
-        adreq           lr,  ff_h264_idct_dc_add_neon + CONFIG_THUMB
+        adrne           lr,  X(ff_h264_idct_add_neon)    + CONFIG_THUMB
+        adreq           lr,  X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
         cmpeq           r8,  #0
         blxne           lr
         subs            ip,  ip,  #1
@@ -166,8 +166,8 @@  function ff_h264_idct_add8_neon, export=1
         cmp             r8,  #0
         ldrsh           r8,  [r1]
         iteet           ne
-        adrne           lr,  ff_h264_idct_add_neon    + CONFIG_THUMB
-        adreq           lr,  ff_h264_idct_dc_add_neon + CONFIG_THUMB
+        adrne           lr,  X(ff_h264_idct_add_neon)    + CONFIG_THUMB
+        adreq           lr,  X(ff_h264_idct_dc_add_neon) + CONFIG_THUMB
         cmpeq           r8,  #0
         blxne           lr
         add             r12, r12, #1
@@ -388,8 +388,8 @@  function ff_h264_idct8_add4_neon, export=1
         movne           lr,  #0
         cmp             lr,  #0
         ite             ne
-        adrne           lr,  ff_h264_idct8_dc_add_neon + CONFIG_THUMB
-        adreq           lr,  ff_h264_idct8_add_neon    + CONFIG_THUMB
+        adrne           lr,  X(ff_h264_idct8_dc_add_neon) + CONFIG_THUMB
+        adreq           lr,  X(ff_h264_idct8_add_neon)    + CONFIG_THUMB
         blx             lr
 2:      subs            r12, r12, #4
         add             r1,  r1,  #128
diff --git a/libavcodec/arm/hpeldsp_armv6.S b/libavcodec/arm/hpeldsp_armv6.S
index a030d42..f85c8cb 100644
--- a/libavcodec/arm/hpeldsp_armv6.S
+++ b/libavcodec/arm/hpeldsp_armv6.S
@@ -23,11 +23,11 @@ 
 .macro  call_2x_pixels  type, subp
 function ff_\type\()_pixels16\subp\()_armv6, export=1
         push            {r0-r3, lr}
-        bl              ff_\type\()_pixels8\subp\()_armv6
+        bl              X(ff_\type\()_pixels8\subp\()_armv6)
         pop             {r0-r3, lr}
         add             r0,  r0,  #8
         add             r1,  r1,  #8
-        b               ff_\type\()_pixels8\subp\()_armv6
+        b               X(ff_\type\()_pixels8\subp\()_armv6)
 endfunc
 .endm
 
diff --git a/libavcodec/arm/mdct_neon.S b/libavcodec/arm/mdct_neon.S
index 9f7cb46..bfe259c 100644
--- a/libavcodec/arm/mdct_neon.S
+++ b/libavcodec/arm/mdct_neon.S
@@ -129,7 +129,7 @@  function ff_imdct_calc_neon, export=1
         lsl             r4,  r4,  r3
         add             r1,  r1,  r4
 
-        bl              ff_imdct_half_neon
+        bl              X(ff_imdct_half_neon)
 
         add             r0,  r5,  r4,  lsl #2
         add             r1,  r5,  r4,  lsl #1
diff --git a/libavcodec/arm/mpegvideo_neon.S b/libavcodec/arm/mpegvideo_neon.S
index 0c6c428..3e1f7b5 100644
--- a/libavcodec/arm/mpegvideo_neon.S
+++ b/libavcodec/arm/mpegvideo_neon.S
@@ -100,7 +100,7 @@  function ff_dct_unquantize_h263_intra_neon, export=1
         smulbb          r4,  r4,  r6
 2:      lsl             r0,  r3,  #1
         add             r3,  r12, #1
-        bl              ff_dct_unquantize_h263_neon
+        bl              X(ff_dct_unquantize_h263_neon)
         vmov.16         d0[0], r4
         vst1.16         {d0[0]},  [r5]
         pop             {r4-r6,pc}
diff --git a/libavcodec/arm/videodsp_armv5te.S b/libavcodec/arm/videodsp_armv5te.S
index 120069d..055736d 100644
--- a/libavcodec/arm/videodsp_armv5te.S
+++ b/libavcodec/arm/videodsp_armv5te.S
@@ -26,6 +26,6 @@  function ff_prefetch_arm, export=1
         subs            r2,  r2,  #1
         pld             [r0]
         add             r0,  r0,  r1
-        bne             ff_prefetch_arm
+        bne             X(ff_prefetch_arm)
         bx              lr
 endfunc
diff --git a/libavcodec/arm/vp8dsp_armv6.S b/libavcodec/arm/vp8dsp_armv6.S
index 5207758..19d454b 100644
--- a/libavcodec/arm/vp8dsp_armv6.S
+++ b/libavcodec/arm/vp8dsp_armv6.S
@@ -359,14 +359,14 @@  endfunc
 function ff_vp8_idct_dc_add4uv_armv6, export=1
         push            {r4, lr}
 
-        bl              ff_vp8_idct_dc_add_armv6
+        bl              X(ff_vp8_idct_dc_add_armv6)
         add             r0,  r0,  #4
-        bl              ff_vp8_idct_dc_add_armv6
+        bl              X(ff_vp8_idct_dc_add_armv6)
         add             r0,  r0,  r2,  lsl #2
         sub             r0,  r0,  #4
-        bl              ff_vp8_idct_dc_add_armv6
+        bl              X(ff_vp8_idct_dc_add_armv6)
         add             r0,  r0,  #4
-        bl              ff_vp8_idct_dc_add_armv6
+        bl              X(ff_vp8_idct_dc_add_armv6)
 
         pop             {r4, pc}
 endfunc
@@ -375,13 +375,13 @@  endfunc
 function ff_vp8_idct_dc_add4y_armv6, export=1
         push            {r4, lr}
 
-        bl              ff_vp8_idct_dc_add_armv6
+        bl              X(ff_vp8_idct_dc_add_armv6)
         add             r0,  r0,  #4
-        bl              ff_vp8_idct_dc_add_armv6
+        bl              X(ff_vp8_idct_dc_add_armv6)
         add             r0,  r0,  #4
-        bl              ff_vp8_idct_dc_add_armv6
+        bl              X(ff_vp8_idct_dc_add_armv6)
         add             r0,  r0,  #4
-        bl              ff_vp8_idct_dc_add_armv6
+        bl              X(ff_vp8_idct_dc_add_armv6)
 
         pop             {r4, pc}
 endfunc
diff --git a/libavresample/arm/audio_convert_neon.S b/libavresample/arm/audio_convert_neon.S
index 092ce0c..98945c4 100644
--- a/libavresample/arm/audio_convert_neon.S
+++ b/libavresample/arm/audio_convert_neon.S
@@ -133,8 +133,8 @@  function ff_conv_fltp_to_s16_neon, export=1
         cmp             r3,  #2
         itt             lt
         ldrlt           r1,  [r1]
-        blt             ff_conv_flt_to_s16_neon
-        beq             ff_conv_fltp_to_s16_2ch_neon
+        blt             X(ff_conv_flt_to_s16_neon)
+        beq             X(ff_conv_fltp_to_s16_2ch_neon)
 
         push            {r4-r8, lr}
         cmp             r3,  #4