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