• James Almer's avatar
    x86/dsputil: fix VECTOR_CLIP_INT32 macro · 518cbf9b
    James Almer authored
    The inline loop was incrementing and using the value of %%i
    the wrong way.
    
    Disassembly of ff_vector_clip_int32_sse2 before and after
    this patch:
    
        movdqa (%rdx),%xmm0      |  movdqa (%rdx),%xmm0
        movdqa 0x10(%rdx),%xmm1  |  movdqa 0x10(%rdx),%xmm1
        movdqa 0x20(%rdx),%xmm2  |  movdqa 0x20(%rdx),%xmm2
        movdqa 0x30(%rdx),%xmm3  |  movdqa 0x30(%rdx),%xmm3
    [...]                        |
        movdqa %xmm0,(%rcx)      |  movdqa %xmm0,(%rcx)
        movdqa %xmm1,0x10(%rcx)  |  movdqa %xmm1,0x10(%rcx)
        movdqa %xmm2,0x20(%rcx)  |  movdqa %xmm2,0x20(%rcx)
        movdqa %xmm3,0x30(%rcx)  |  movdqa %xmm3,0x30(%rcx)
        movdqa (%rdx),%xmm0      |  movdqa 0x40(%rdx),%xmm0
        movdqa 0x20(%rdx),%xmm1  |  movdqa 0x50(%rdx),%xmm1
        movdqa 0x40(%rdx),%xmm2  |  movdqa 0x60(%rdx),%xmm2
        movdqa 0x60(%rdx),%xmm3  |  movdqa 0x70(%rdx),%xmm3
    [...]                        |
        movdqa %xmm0,(%rcx)      |  movdqa %xmm0,0x40(%rcx)
        movdqa %xmm1,0x20(%rcx)  |  movdqa %xmm1,0x50(%rcx)
        movdqa %xmm2,0x40(%rcx)  |  movdqa %xmm2,0x60(%rcx)
        movdqa %xmm3,0x60(%rcx)  |  movdqa %xmm3,0x70(%rcx)
        add    $0x80,%rdx        |  add    $0x80,%rdx
        add    $0x80,%rcx        |  add    $0x80,%rcx
    
    Other versions were unaffected.
    Signed-off-by: 's avatarJames Almer <jamrial@gmail.com>
    Signed-off-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
    518cbf9b
Name
Last commit
Last update
compat Loading commit data...
doc Loading commit data...
libavcodec Loading commit data...
libavdevice Loading commit data...
libavfilter Loading commit data...
libavformat Loading commit data...
libavresample Loading commit data...
libavutil Loading commit data...
libpostproc Loading commit data...
libswresample Loading commit data...
libswscale Loading commit data...
presets Loading commit data...
tests Loading commit data...
tools Loading commit data...
.gitignore Loading commit data...
COPYING.GPLv2 Loading commit data...
COPYING.GPLv3 Loading commit data...
COPYING.LGPLv2.1 Loading commit data...
COPYING.LGPLv3 Loading commit data...
CREDITS Loading commit data...
Changelog Loading commit data...
INSTALL Loading commit data...
LICENSE Loading commit data...
MAINTAINERS Loading commit data...
Makefile Loading commit data...
README Loading commit data...
RELEASE Loading commit data...
arch.mak Loading commit data...
cmdutils.c Loading commit data...
cmdutils.h Loading commit data...
cmdutils_common_opts.h Loading commit data...
cmdutils_opencl.c Loading commit data...
common.mak Loading commit data...
configure Loading commit data...
ffmpeg.c Loading commit data...
ffmpeg.h Loading commit data...
ffmpeg_dxva2.c Loading commit data...
ffmpeg_filter.c Loading commit data...
ffmpeg_opt.c Loading commit data...
ffmpeg_vda.c Loading commit data...
ffmpeg_vdpau.c Loading commit data...
ffplay.c Loading commit data...
ffprobe.c Loading commit data...
ffserver.c Loading commit data...
library.mak Loading commit data...
version.sh Loading commit data...