[FFmpeg-devel] [PATCH] Fix emulated_edge_mc SSE code to not contain SSE2 instructions on x86-32.

Michael Niedermayer michaelni at gmx.at
Thu Oct 10 13:35:26 CEST 2013


On Wed, Oct 09, 2013 at 09:24:20PM -0400, Ronald S. Bultje wrote:
> ---
>  libavcodec/x86/videodsp.asm    | 64 +++++++++++++++++++++++++-----------------
>  libavcodec/x86/videodsp_init.c | 11 ++++++--
>  2 files changed, 47 insertions(+), 28 deletions(-)
> 
> diff --git a/libavcodec/x86/videodsp.asm b/libavcodec/x86/videodsp.asm
> index cc2105d..aa865f5 100644
> --- a/libavcodec/x86/videodsp.asm
> +++ b/libavcodec/x86/videodsp.asm
> @@ -100,7 +100,7 @@ cglobal emu_edge_hvar, 5, 6, 1, dst, dst_stride, start_x, n_words, h, w
>      ; FIXME also write a ssse3 version using pshufb
>      movzx            wd, byte [dstq+start_xq]   ;   w = read(1)
>      imul             wd, 0x01010101             ;   w *= 0x01010101
> -    movd             m0, wd
> +    movd             m0, wd                     ;   FIXME this is sse2, not sse
[...]
> diff --git a/libavcodec/x86/videodsp_init.c b/libavcodec/x86/videodsp_init.c
> index a709d03..b5bab72 100644
> --- a/libavcodec/x86/videodsp_init.c
> +++ b/libavcodec/x86/videodsp_init.c
> @@ -219,9 +219,14 @@ static av_noinline void emulated_edge_mc_sse(uint8_t *buf, ptrdiff_t buf_stride,
>                                               int block_w, int block_h,
>                                               int src_x, int src_y, int w, int h)
>  {
> -    emulated_edge_mc(buf, buf_stride, src, src_stride, block_w, block_h,
> -                     src_x, src_y, w, h, vfixtbl_sse, &ff_emu_edge_vvar_sse,
> -                     hfixtbl_sse, &ff_emu_edge_hvar_sse);
> +    emulated_edge_mc(buf, buf_stride, src, src_stride, block_w, block_h, src_x,
> +                     src_y, w, h, vfixtbl_sse, &ff_emu_edge_vvar_sse, hfixtbl_sse,
> +#if ARCH_X86_64
> +                     &ff_emu_edge_hvar_sse
> +#else
> +                     &ff_emu_edge_hvar_mmx
> +#endif

this is a bit ugly but more important is to fix that bug so
applied

thanks

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I know you won't believe me, but the highest form of Human Excellence is
to question oneself and others. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20131010/21c453b3/attachment.asc>


More information about the ffmpeg-devel mailing list