[FFmpeg-devel] [PATCH 10/15] vp9/x86: make filter_88_v work on 32-bit.

Clément Bœsch u at pkh.me
Sat Dec 27 19:23:47 CET 2014


On Sat, Dec 27, 2014 at 11:02:45AM -0500, Ronald S. Bultje wrote:
> ---
>  libavcodec/x86/vp9dsp_init.c |   2 +-
>  libavcodec/x86/vp9lpf.asm    | 153 ++++++++++++++++++++++++++++++-------------
>  2 files changed, 107 insertions(+), 48 deletions(-)
> 
> diff --git a/libavcodec/x86/vp9dsp_init.c b/libavcodec/x86/vp9dsp_init.c
> index d89843e..6c58c6c 100644
> --- a/libavcodec/x86/vp9dsp_init.c
> +++ b/libavcodec/x86/vp9dsp_init.c
> @@ -361,8 +361,8 @@ av_cold void ff_vp9dsp_init_x86(VP9DSPContext *dsp)
>          dsp->loop_filter_mix2[1][0][0] = ff_vp9_loop_filter_h_84_16_##opt; \
>          dsp->loop_filter_mix2[1][0][1] = ff_vp9_loop_filter_v_84_16_##opt; \
>          dsp->loop_filter_mix2[1][1][0] = ff_vp9_loop_filter_h_88_16_##opt; \
> -        dsp->loop_filter_mix2[1][1][1] = ff_vp9_loop_filter_v_88_16_##opt; \
>      } \
> +    dsp->loop_filter_mix2[1][1][1] = ff_vp9_loop_filter_v_88_16_##opt; \
>  } while (0)
>  
>  #define init_ipred(sz, opt, t, e) \
> diff --git a/libavcodec/x86/vp9lpf.asm b/libavcodec/x86/vp9lpf.asm
> index d00ba7f..2759031 100644
> --- a/libavcodec/x86/vp9lpf.asm
> +++ b/libavcodec/x86/vp9lpf.asm
> @@ -50,6 +50,22 @@ mask_mix48: times 8 db 0x00
>  
>  SECTION .text
>  
> +%macro SCRATCH 3
> +%if ARCH_X86_64
> +    SWAP                %1, %2
> +%else
> +    mova              [%3], m%1
> +%endif
> +%endmacro
> +
> +%macro UNSCRATCH 3
> +%if ARCH_X86_64
> +    SWAP                %1, %2
> +%else
> +    mova               m%1, [%3]
> +%endif
> +%endmacro
> +
>  ; %1 = abs(%2-%3)
>  %macro ABSSUB 4 ; dst, src1 (RO), src2 (RO), tmp
>  %if ARCH_X86_64
> @@ -84,12 +100,25 @@ SECTION .text
>      por                 %1, %4              ; new&mask | old&~mask
>  %endmacro
>  
> -%macro FILTER_SUBx2_ADDx2 9-10 "" ; %1=dst %2=h/l %3=cache %4=stack_off %5=sub1 %6=sub2 %7=add1 %8=add2 %9=rshift, [unpack]
> +%macro UNPACK 4
> +%if ARCH_X86_64
> +    punpck%1bw          %2, %3, %4
> +%else
> +    mova                %2, %3
> +    punpck%1bw          %2, %4
> +%endif
> +%endmacro
> +
> +%macro FILTER_SUBx2_ADDx2 11 ; %1=dst %2=h/l %3=cache %4=stack_off %5=sub1 %6=sub2 %7=add1 %8=add2 %9=rshift, [unpack]

Please update the macro comment

Rest should be OK

[...]

-- 
Clément B.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 473 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20141227/1204f9c4/attachment.asc>


More information about the ffmpeg-devel mailing list