On 25/05/2011, at 20.38, Ronald S. Bultje wrote:

> Preparatory step to implement support for sizes > VOFW.
> ---
> libswscale/swscale.c              |   68 ++++---
> libswscale/swscale_internal.h     |   27 ++-
> libswscale/swscale_template.c     |  130 +++++++------
> libswscale/utils.c                |   19 ++-
> libswscale/x86/swscale_template.c |  380 +++++++++++++++++++++----------------
> 5 files changed, 359 insertions(+), 265 deletions(-)

The b4a224c5e4109cb2cca8bac38628673d685fe763 commit breaks libswscale on my 
setup. A 64-bit Intel(R) Xeon(R) CPU X3370.

Program terminated with signal 11, Segmentation fault.
#0  0x0000000000abed72 in yuv2yuvX_MMX2 (c=0x37c37c0, lumFilter=0x0, 
lumSrc=0x37c6df0, lumFilterSize=<value optimized out>, chrFilter=<value 
optimized out>, 
    chrUSrc=<value optimized out>, chrVSrc=0x37cc928, chrFilterSize=5, 
alpSrc=0x0, dest=0x38076c0 "", uDest=0x381d4c0 "", vDest=0x3822fc0 "", 
aDest=0x0, dstW=400, 
    chrDstW=200) at x86/swscale_template.c:84
84              YSCALEYUV2YV12X(CHR_MMX_FILTER_OFFSET, uDest, chrDstW, 0)
(gdb) bt
#0  0x0000000000abed72 in yuv2yuvX_MMX2 (c=0x37c37c0, lumFilter=0x0, 
lumSrc=0x37c6df0, lumFilterSize=<value optimized out>, chrFilter=<value 
optimized out>, 
    chrUSrc=<value optimized out>, chrVSrc=0x37cc928, chrFilterSize=5, 
alpSrc=0x0, dest=0x38076c0 "", uDest=0x381d4c0 "", vDest=0x3822fc0 "", 
aDest=0x0, dstW=400, 
    chrDstW=200) at x86/swscale_template.c:84
#1  0x0000000000ac859c in swScale_c (c=0x37c37c0, src=<value optimized out>, 
srcStride=<value optimized out>, srcSliceY=<value optimized out>, 
    srcSliceH=<value optimized out>, dst=<value optimized out>, 
dstStride=0x7f0fef712c60) at swscale_template.c:694

(gdb) disas
Dump of assembler code for function yuv2yuvX_MMX2:
   0x0000000000abed00 <+0>:     mov    0x28(%rsp),%r9
   0x0000000000abed05 <+5>:     mov    0x38(%rsp),%r8
   0x0000000000abed0a <+10>:    lea    0x2588(%rdi),%rax
   0x0000000000abed11 <+17>:    mov    0x40(%rsp),%rcx
   0x0000000000abed16 <+22>:    mov    0x48(%rsp),%r10
   0x0000000000abed1b <+27>:    test   %r9,%r9
   0x0000000000abed1e <+30>:    je     0xabee12 <yuv2yuvX_MMX2+274>
   0x0000000000abed24 <+36>:    xor    %r11d,%r11d
   0x0000000000abed27 <+39>:    movq   0x2068(%rax),%mm3
   0x0000000000abed2e <+46>:    movq   %mm3,%mm4
   0x0000000000abed31 <+49>:    lea    0x1058(%rax),%rdx
   0x0000000000abed38 <+56>:    mov    (%rdx),%rsi
   0x0000000000abed3b <+59>:    nopl   0x0(%rax,%rax,1)
   0x0000000000abed40 <+64>:    movq   0x8(%rdx),%mm0
   0x0000000000abed44 <+68>:    movq   (%rsi,%r11,2),%mm2
   0x0000000000abed49 <+73>:    movq   0x8(%rsi,%r11,2),%mm5
   0x0000000000abed4f <+79>:    add    $0x10,%rdx
   0x0000000000abed53 <+83>:    mov    (%rdx),%rsi
   0x0000000000abed56 <+86>:    test   %rsi,%rsi
   0x0000000000abed59 <+89>:    pmulhw %mm0,%mm2
   0x0000000000abed5c <+92>:    pmulhw %mm0,%mm5
   0x0000000000abed5f <+95>:    paddw  %mm2,%mm3
   0x0000000000abed62 <+98>:    paddw  %mm5,%mm4
   0x0000000000abed65 <+101>:   jne    0xabed40 <yuv2yuvX_MMX2+64>
   0x0000000000abed67 <+103>:   psraw  $0x3,%mm3
   0x0000000000abed6b <+107>:   psraw  $0x3,%mm4
   0x0000000000abed6f <+111>:   packuswb %mm4,%mm3
=> 0x0000000000abed72 <+114>:   movntq %mm3,(%r9,%rax,1)
   0x0000000000abed77 <+119>:   add    $0x8,%r11
   0x0000000000abed7b <+123>:   cmp    %r10,%r11
   0x0000000000abed7e <+126>:   movq   0x2068(%rax),%mm3

/Gil
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to