Piers O'Hanlon <[EMAIL PROTECTED]> added the comment:
Thanks for tip about alignment problems with gcc-3 - Though I thought that the
--enable-alignment hack was supposed to sort that out? It seems from below that
ecx is not 16-byte aligned?
Anyway I got hold of the alpha version of mingw gcc-4.2 and rebuilt ffmpeg -
which has fixed the problem! Thanks again!
Apologies for messed up gdb output - here's fresh one:
(gdb) bt
#0 0x6bbbe89f in put_h264_qpel8or16_hv_lowpass_sse2 (
dst=0x12ebe4 'Ì' <repeats 112 times>, tmp=0x12ece4,
src=0x5579a20 "ÉǼ·¶¹»½ÄÈÌÑÒÏÎÎÐÐÐÑÒÓÔÖÕÐÆÂɪ9\t\006\003\003\003\003\002\00
4\006\b\a\a\n3542325664*())*,+(!\037\036\035\036 !
\031\023\016\f\f\017\020\020 \021\023\026\032\"%$\"!
\037\037\036\036\035\035\034\034\032\033 #&'+-150--+%\0
35\021\v\r\016\021\023\025\027\027\030\032\033\035!#\" \034\030\030\033%+/0/(!\
032\033\"%\234\232\227\224\224\224\222\221\217\216\221\220\217\215\214\214\214\
214\213\215\214\215\220\214\216\216\216\215\215\215\215\215\216\217\216\216\215
\215\216\216\216\216\215\214\213\211\207\206\204\203\202\201\201\201\202\203"..
., dstStride=16, tmpStride=16, srcStride=352, size=16)
at libavcodec/i386/h264dsp_mmx.c:1553
#1 0xcccccccc in ?? ()
#2 0xcccccccc in ?? ()
#3 0x0012ece4 in ?? ()
#4 0x0012ebe4 in ?? ()
#5 0x00000160 in ?? ()
#6 0x0012ebe4 in ?? ()
#7 0x055b0490 in ?? ()
#8 0x05520e18 in ?? ()
#9 0x6bbc7194 in put_h264_qpel16_mc12_sse2 (dst=0x6bcf1764 "\213¼$\204",
src=0x55b0490 '\200' <repeats 144 times>, "\236\234\231\226\224\224\222\221
\217\216\217\216\215\213\211\211\212\212\213\215\214\215\220\214\216\216\216\21
5\215\215\215\215\215\216\214\214\213\213\214\214\216\216\215\214\211\211\207\2
06\204\203\202\201\201\201\202\203"..., stride=89627168)
at libavcodec/i386/h264dsp_mmx.c:1889
#10 0x05579a20 in ?? ()
#11 0x00000010 in ?? ()
#12 0x00000010 in ?? ()
#13 0x00000160 in ?? ()
#14 0x00000010 in ?? ()
#15 0xcccccccc in ?? ()
#16 0xcccccccc in ?? ()
#17 0xcccccccc in ?? ()
#18 0xcccccccc in ?? ()
#19 0xcccccccc in ?? ()
#20 0xcccccccc in ?? ()
#21 0xcccccccc in ?? ()
#22 0xcccccccc in ?? ()
#23 0xcccccccc in ?? ()
#24 0xcccccccc in ?? ()
#25 0xcccccccc in ?? ()
#26 0xcccccccc in ?? ()
#27 0xcccccccc in ?? ()
#28 0xcccccccc in ?? ()
#29 0xcccccccc in ?? ()
#30 0xcccccccc in ?? ()
#31 0xcccccccc in ?? ()
#32 0xcccccccc in ?? ()
#33 0xcccccccc in ?? ()
#34 0xcccccccc in ?? ()
#35 0xcccccccc in ?? ()
#36 0xcccccccc in ?? ()
#37 0xcccccccc in ?? ()
#38 0xcccccccc in ?? ()
#39 0xcccccccc in ?? ()
#40 0xcccccccc in ?? ()
#41 0xcccccccc in ?? ()
#42 0xcccccccc in ?? ()
#43 0x00000000 in ?? ()
(gdb) info all-registers
eax 0x5579f9e 89628574
ecx 0x12ece4 1240292
edx 0x2 2
ebx 0x160 352
esp 0x12eba8 0x12eba8
ebp 0x10 0x10
esi 0x160 352
edi 0x1ce0 7392
eip 0x6bbbe89f 0x6bbbe89f <put_h264_qpel8or16_hv_lowpass_sse2+
975>
eflags 0x210202 [ IF RF ID ]
cs 0x1b 27
ss 0x23 35
ds 0x23 35
es 0x23 35
fs 0x3b 59
gs 0x0 0
st0 -nan(0x666c7073777d8385) (raw 0xffff666c7073777d8385)
st1 -nan(0x6e74797c7f80807f) (raw 0xffff6e74797c7f80807f)
st2 -nan(0x7a737d8b817a7272) (raw 0xffff7a737d8b817a7272)
st3 -inf (raw 0xffff0000000000000000)
st4 -nan(0x867f8287817d7979) (raw 0xffff867f8287817d7979)
st5 -nan(0x1000100000001) (raw 0xffff0001000100000001)
st6 -inf (raw 0xffff0000000000000000)
st7 -inf (raw 0xffff0000000000000000)
fctrl 0xffff027f -64897
fstat 0xffff0000 -65536
ftag 0xffffaaaa -21846
fiseg 0x8 8
fioff 0x82099487 -2113301369
foseg 0xffff0023 -65501
fooff 0xb7c54df0 -1211806224
fop 0x301 769
xmm0 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xe9, 0x0, 0xe8, 0x0, 0xf5, 0x0, 0x8, 0x1, 0x2e, 0x1, 0x41,
0x1, 0x6a, 0x1, 0x7f, 0x1}, v8_int16 = {0xe9, 0xe8, 0xf5, 0x108, 0x12e,
0x141, 0x16a, 0x17f}, v4_int32 = {0xe800e9, 0x10800f5, 0x141012e,
0x17f016a}, v2_int64 = {0x10800f500e800e9, 0x17f016a0141012e},
uint128 = 0x017f016a0141012e010800f500e800e9}
xmm1 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xb2, 0x0, 0xb7, 0x0, 0xb8, 0x0, 0xb8, 0x0, 0xaf, 0x0, 0xb0,
0x0, 0xb2, 0x0, 0xb3, 0x0}, v8_int16 = {0xb2, 0xb7, 0xb8, 0xb8, 0xaf,
0xb0, 0xb2, 0xb3}, v4_int32 = {0xb700b2, 0xb800b8, 0xb000af, 0xb300b2},
v2_int64 = {0xb800b800b700b2, 0xb300b200b000af},
uint128 = 0x00b300b200b000af00b800b800b700b2}
xmm2 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xbb, 0x0, 0xc7, 0x0, 0xc9, 0x0, 0xc7, 0x0, 0xbc, 0x0, 0xb7,
0x0, 0xb6, 0x0, 0xb9, 0x0}, v8_int16 = {0xbb, 0xc7, 0xc9, 0xc7, 0xbc,
0xb7, 0xb6, 0xb9}, v4_int32 = {0xc700bb, 0xc700c9, 0xb700bc, 0xb900b6},
v2_int64 = {0xc700c900c700bb, 0xb900b600b700bc},
uint128 = 0x00b900b600b700bc00c700c900c700bb}
xmm3 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0xbc, 0x0, 0xce, 0x0, 0xd2, 0x0, 0xd0, 0x0, 0xd1, 0x0, 0xd2,
0x0, 0xd4, 0x0, 0xd1, 0x0}, v8_int16 = {0xbc, 0xce, 0xd2, 0xd0, 0xd1,
0xd2, 0xd4, 0xd1}, v4_int32 = {0xce00bc, 0xd000d2, 0xd200d1, 0xd100d4},
v2_int64 = {0xd000d200ce00bc, 0xd100d400d200d1},
uint128 = 0x00d100d400d200d100d000d200ce00bc}
xmm4 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x77, 0x0, 0x83, 0x0, 0x8c, 0x0, 0x97, 0x0, 0xad, 0x0, 0xb9,
0x0, 0xdb, 0x0, 0xda, 0x0}, v8_int16 = {0x77, 0x83, 0x8c, 0x97, 0xad,
0xb9, 0xdb, 0xda}, v4_int32 = {0x830077, 0x97008c, 0xb900ad, 0xda00db},
v2_int64 = {0x97008c00830077, 0xda00db00b900ad},
uint128 = 0x00da00db00b900ad0097008c00830077}
xmm5 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x2c, 0x0, 0x2b, 0x0, 0x36, 0x0, 0x48, 0x0, 0x6b, 0x0, 0x7c,
0x0, 0xa3, 0x0, 0xb7, 0x0}, v8_int16 = {0x2c, 0x2b, 0x36, 0x48, 0x6b,
0x7c, 0xa3, 0xb7}, v4_int32 = {0x2b002c, 0x480036, 0x7c006b, 0xb700a3},
v2_int64 = {0x480036002b002c, 0xb700a3007c006b},
uint128 = 0x00b700a3007c006b00480036002b002c}
xmm6 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x68, 0x18, 0x6a, 0x1a, 0xbd, 0x1a, 0x49, 0x1a, 0x66, 0x19,
0xe8, 0x18, 0x71, 0x18, 0x86, 0x18}, v8_int16 = {0x1868, 0x1a6a, 0x1abd,
0x1a49, 0x1966, 0x18e8, 0x1871, 0x1886}, v4_int32 = {0x1a6a1868,
0x1a491abd, 0x18e81966, 0x18861871}, v2_int64 = {0x1a491abd1a6a1868,
0x1886187118e81966}, uint128 = 0x1886187118e819661a491abd1a6a1868}
xmm7 {v4_float = {0x0, 0x0, 0x0, 0x0}, v2_double = {0x0, 0x0},
v16_int8 = {0x0 <repeats 16 times>}, v8_int16 = {0x0, 0x0, 0x0, 0x0, 0x0,
0x0, 0x0, 0x0}, v4_int32 = {0x0, 0x0, 0x0, 0x0}, v2_int64 = {0x0, 0x0},
uint128 = 0x00000000000000000000000000000000}
mxcsr 0x1fa0 [ PE IM DM ZM OM UM PM ]
mm0 {uint64 = 0x666c7073777d8385, v2_int32 = {0x777d8385,
0x666c7073}, v4_int16 = {0x8385, 0x777d, 0x7073, 0x666c}, v8_int8 = {
0x85, 0x83, 0x7d, 0x77, 0x73, 0x70, 0x6c, 0x66}}
mm1 {uint64 = 0x6e74797c7f80807f, v2_int32 = {0x7f80807f,
0x6e74797c}, v4_int16 = {0x807f, 0x7f80, 0x797c, 0x6e74}, v8_int8 = {
0x7f, 0x80, 0x80, 0x7f, 0x7c, 0x79, 0x74, 0x6e}}
mm2 {uint64 = 0x7a737d8b817a7272, v2_int32 = {0x817a7272,
0x7a737d8b}, v4_int16 = {0x7272, 0x817a, 0x7d8b, 0x7a73}, v8_int8 = {
0x72, 0x72, 0x7a, 0x81, 0x8b, 0x7d, 0x73, 0x7a}}
mm3 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm4 {uint64 = 0x867f8287817d7979, v2_int32 = {0x817d7979,
0x867f8287}, v4_int16 = {0x7979, 0x817d, 0x8287, 0x867f}, v8_int8 = {
0x79, 0x79, 0x7d, 0x81, 0x87, 0x82, 0x7f, 0x86}}
mm5 {uint64 = 0x1000100000001, v2_int32 = {0x1, 0x10001},
v4_int16 = {0x1, 0x0, 0x1, 0x1}, v8_int8 = {0x1, 0x0, 0x0, 0x0, 0x1, 0x0,
0x1, 0x0}}
mm6 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
mm7 {uint64 = 0x0, v2_int32 = {0x0, 0x0}, v4_int16 = {0x0, 0x0,
0x0, 0x0}, v8_int8 = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}
(gdb) disass $pc-32 $pc+32
Dump of assembler code from 0x6bbbe87f to 0x6bbbe8bf:
0x6bbbe87f <put_h264_qpel8or16_hv_lowpass_sse2+943>: loopne 0x6bbbe8ec
<put_h264_qpel8or16_hv_lowpass_sse2+1052>
0x6bbbe881 <put_h264_qpel8or16_hv_lowpass_sse2+945>: psubw %xmm1,%xmm6
0x6bbbe885 <put_h264_qpel8or16_hv_lowpass_sse2+949>: psubw %xmm4,%xmm6
0x6bbbe889 <put_h264_qpel8or16_hv_lowpass_sse2+953>: punpcklbw %xmm7,%xmm5
0x6bbbe88d <put_h264_qpel8or16_hv_lowpass_sse2+957>: pmullw 0x6be06b70,%xmm6
0x6bbbe895 <put_h264_qpel8or16_hv_lowpass_sse2+965>: paddw %xmm5,%xmm0
0x6bbbe899 <put_h264_qpel8or16_hv_lowpass_sse2+969>: add %esi,%eax
0x6bbbe89b <put_h264_qpel8or16_hv_lowpass_sse2+971>: paddw %xmm0,%xmm6
0x6bbbe89f <put_h264_qpel8or16_hv_lowpass_sse2+975>: movdqa %xmm6,(%ecx)
0x6bbbe8a3 <put_h264_qpel8or16_hv_lowpass_sse2+979>: movdqa %xmm3,%xmm6
0x6bbbe8a7 <put_h264_qpel8or16_hv_lowpass_sse2+983>: movq (%eax),%xmm0
0x6bbbe8ab <put_h264_qpel8or16_hv_lowpass_sse2+987>: paddw %xmm4,%xmm6
0x6bbbe8af <put_h264_qpel8or16_hv_lowpass_sse2+991>: psllw $0x2,%xmm6
0x6bbbe8b4 <put_h264_qpel8or16_hv_lowpass_sse2+996>: paddw 0x6be06b50,%xmm1
0x6bbbe8bc <put_h264_qpel8or16_hv_lowpass_sse2+1004>: psubw %xmm2,%xmm6
End of assembler dump.
(gdb)
______________________________________________________
FFmpeg issue tracker <[EMAIL PROTECTED]>
<https://roundup.mplayerhq.hu/roundup/ffmpeg/issue496>
______________________________________________________