diff options
author | Janne Grunau <[email protected]> | 2014-03-10 23:58:35 +0100 |
---|---|---|
committer | Janne Grunau <[email protected]> | 2014-03-16 18:13:39 +0100 |
commit | 230c4c6ad9f74697e77351d32e679bf0c24478ea (patch) | |
tree | d5f1a3564398140cf26048b509cfeb0c5ea52c37 | |
parent | b5210f4eae30df587815b5f005f219aa723591d3 (diff) |
armv6: vp8: use explicit labels in motion compensation asm
The integrated arm assembler in clang-503.0.38 (Xcode-5.1) seems
to get confused by the offset of 4 and decides to use a non-wide
thumb encoding. That fails since the labels are out of range of
the limited offset a 16-bit thumb encoding offers.
-rw-r--r-- | libavcodec/arm/vp8dsp_armv6.S | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/libavcodec/arm/vp8dsp_armv6.S b/libavcodec/arm/vp8dsp_armv6.S index 19d454bfb4..03100cdf2f 100644 --- a/libavcodec/arm/vp8dsp_armv6.S +++ b/libavcodec/arm/vp8dsp_armv6.S @@ -1204,7 +1204,7 @@ function ff_put_vp8_\name\size\()_\hv\()_armv6, export=1 mov r4, #\size stm r12, {r4, r5} orr r12, r6, r7 - b vp8_put_\name\()_\hv\()_armv6 + 4 + b bl_put_\name\()_\hv\()_armv6 endfunc .endm @@ -1300,6 +1300,7 @@ vp8_mc_hv bilin, 4, h, v, 2 function vp8_put_epel_h6_armv6 push {r1, r4-r11, lr} +bl_put_epel_h6_armv6: sub r2, r2, #2 movrel lr, sixtap_filters_13245600 - 16 add lr, lr, r12, lsl #3 @@ -1358,6 +1359,7 @@ endfunc function vp8_put_epel_v6_armv6 push {r1, r4-r11, lr} +bl_put_epel_v6_armv6: movrel lr, sixtap_filters_13245600 - 16 add lr, lr, r12, lsl #3 str r3, [sp, #48] @@ -1437,6 +1439,7 @@ endfunc function vp8_put_epel_h4_armv6 push {r1, r4-r11, lr} +bl_put_epel_h4_armv6: subs r2, r2, #1 movrel lr, fourtap_filters_1324 - 4 add lr, lr, r12, lsl #2 @@ -1483,6 +1486,7 @@ endfunc function vp8_put_epel_v4_armv6 push {r1, r4-r11, lr} +bl_put_epel_v4_armv6: movrel lr, fourtap_filters_1324 - 4 add lr, lr, r12, lsl #2 ldm lr, {r5, r6} @@ -1544,6 +1548,7 @@ endfunc function vp8_put_bilin_h_armv6 push {r1, r4-r11, lr} +bl_put_bilin_h_armv6: rsb r5, r12, r12, lsl #16 ldr r12, [sp, #44] sub r3, r3, r4 @@ -1589,6 +1594,7 @@ endfunc function vp8_put_bilin_v_armv6 push {r1, r4-r11, lr} +bl_put_bilin_v_armv6: rsb r5, r12, r12, lsl #16 ldr r12, [sp, #44] add r5, r5, #8 |