[Ffmpeg-devel] [PATCH] snow mmx + sse2 part 5

Wolfram Gloger wmglo
Sun Apr 16 18:45:43 CEST 2006


Hi,

> Here's the 5th and final part of my snow mmx + sse2 optimizations. This
> part implements ff_snow_inner_add_yblock().

These routines appear to be miscompiled with gcc-2.95.x.  On two
different systems with gcc-2.95.4, I get as part of "make check":

../ffmpeg_g -y -flags +bitexact -dct fastint -idct simple -y -i ./data/a-snow.av
i -f rawvideo -s 352x288 ./data/out.yuv
/home/wg/ffmpeg/ffmpeg-wg/tests/regression.sh: line 4:  3631 Segmentation fault 
     (core dumped) $ffmpeg -y -flags +bitexact -dct fastint -idct simple -benchm
ark $* >$datadir/bench.tmp 2>/tmp/ffmpeg$$
make[1]: *** [codectest] Error 139

(gdb) bt
#0  0x083141dc in ff_snow_inner_add_yblock_mmx (
    obmc=0x83762e0 "\b\034, at Pdt\210\210tdP@,\034\b\f 8Ldx\220...",
    src_x=4, src_y=0, b_w=8, b_h=4, w=64, h=32,
    dst_stride=64, src_stride=80, obmc_stride=16, block=0xbfffec4c,
    b_w=8, b_h=4, src_x=4, 
    src_y=0, src_stride=80, sb=0x4064d5a4, add=1, 
    dst8=0x845549c "cbb_fsrp", '\200' <repeats 68 times>, "uw\200x", '\200' <repeats 76 times>, "\207\206\203t", '\200' <repeats 40 times>...)
    at i386/snowdsp_mmx.c:869
(gdb) x/i $pc
0x83141dc <ff_snow_inner_add_yblock_mmx+912>:   paddd  0x0(%edi),%mm0
(gdb) info reg
eax            0xbfffec4c       -1073746868
ecx            0x50     80
edx            0x84554ec        138761452
ebx            0x3      3
esp            0xbfffc894       0xbfffc894
ebp            0xbfffc8cc       0xbfffc8cc
esi            0x83762f0        137847536
edi            0x1089d83c       277469244
               ^^^^^^^^^^

With gcc-4.0, everything seems fine..  Did anyone else test this with
gcc-2.95.x?

Regards,
Wolfram.





More information about the ffmpeg-devel mailing list