X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Farm%2Fmpegvideo_armv5te_s.S;h=4426e15e919b35c5ab4fa7c68d895821527a4831;hb=f37815b1d5ee85d266ad27214a71831707111aa8;hp=e3461601d53ab25e834c770e3a9f7b0cc3bf3eb5;hpb=e897a633cded0a8f283114e22766790f48ae8fa7;p=ffmpeg diff --git a/libavcodec/arm/mpegvideo_armv5te_s.S b/libavcodec/arm/mpegvideo_armv5te_s.S index e3461601d53..4426e15e919 100644 --- a/libavcodec/arm/mpegvideo_armv5te_s.S +++ b/libavcodec/arm/mpegvideo_armv5te_s.S @@ -20,7 +20,7 @@ */ #include "config.h" -#include "asm.S" +#include "libavutil/arm/asm.S" /* * Special optimized version of dct_unquantize_h263_helper_c, it @@ -38,15 +38,21 @@ .macro dequant_t dst, src, mul, add, tmp rsbs \tmp, ip, \src, asr #16 + it gt addgt \tmp, \add, #0 + it lt rsblt \tmp, \add, #0 + it ne smlatbne \dst, \src, \mul, \tmp .endm .macro dequant_b dst, src, mul, add, tmp rsbs \tmp, ip, \src, lsl #16 + it gt addgt \tmp, \add, #0 + it lt rsblt \tmp, \add, #0 + it ne smlabbne \dst, \src, \mul, \tmp .endm @@ -55,9 +61,9 @@ function ff_dct_unquantize_h263_armv5te, export=1 mov ip, #0 subs r3, r3, #2 ble 2f - ldrd r4, [r0, #0] + ldrd r4, r5, [r0, #0] 1: - ldrd r6, [r0, #8] + ldrd r6, r7, [r0, #8] dequant_t r9, r4, r1, r2, r9 dequant_t lr, r5, r1, r2, lr @@ -80,21 +86,27 @@ function ff_dct_unquantize_h263_armv5te, export=1 strh lr, [r0], #2 subs r3, r3, #8 - ldrdgt r4, [r0, #0] /* load data early to avoid load/use pipeline stall */ + it gt + ldrdgt r4, r5, [r0, #0] /* load data early to avoid load/use pipeline stall */ bgt 1b adds r3, r3, #2 + it le pople {r4-r9,pc} 2: ldrsh r9, [r0, #0] ldrsh lr, [r0, #2] mov r8, r2 cmp r9, #0 + it lt rsblt r8, r2, #0 + it ne smlabbne r9, r9, r1, r8 mov r8, r2 cmp lr, #0 + it lt rsblt r8, r2, #0 + it ne smlabbne lr, lr, r1, r8 strh r9, [r0], #2 strh lr, [r0], #2