comparison i386/dsputil_mmx.c @ 5912:f75ee7ea171b libavcodec

tring to workaround gcc 2.95 bug which causes random failures
author michael
date Mon, 12 Nov 2007 02:04:01 +0000
parents efa3c1f9259a
children 6ce8f15fc02b
comparison
equal deleted inserted replaced
5911:a7bd76d9cd09 5912:f75ee7ea171b
1532 DIFF_PIXELS_1(m0, mm##5, mm##7, (%1,%3,2), (%2,%3,2))\ 1532 DIFF_PIXELS_1(m0, mm##5, mm##7, (%1,%3,2), (%2,%3,2))\
1533 DIFF_PIXELS_1(m0, mm##6, mm##7, (%1,%4), (%2,%4))\ 1533 DIFF_PIXELS_1(m0, mm##6, mm##7, (%1,%4), (%2,%4))\
1534 "mov"#m1" "#mm"0, %0 \n\t"\ 1534 "mov"#m1" "#mm"0, %0 \n\t"\
1535 DIFF_PIXELS_1(m0, mm##7, mm##0, (%1,%3,4), (%2,%3,4))\ 1535 DIFF_PIXELS_1(m0, mm##7, mm##0, (%1,%3,4), (%2,%3,4))\
1536 "mov"#m1" %0, "#mm"0 \n\t"\ 1536 "mov"#m1" %0, "#mm"0 \n\t"\
1537 : "=m"(temp), "+r"(p1b), "+r"(p2b)\ 1537 : "+m"(temp), "+r"(p1b), "+r"(p2b)\
1538 : "r"((long)stride), "r"((long)stride*3)\ 1538 : "r"((long)stride), "r"((long)stride*3)\
1539 );\ 1539 );\
1540 } 1540 }
1541 //the "+m"(temp) is needed as gcc 2.95 sometimes fails to compile "=m"(temp)
1541 1542
1542 #define DIFF_PIXELS_4x8(p1,p2,stride,temp) DIFF_PIXELS_8(d, q, %%mm, p1, p2, stride, temp) 1543 #define DIFF_PIXELS_4x8(p1,p2,stride,temp) DIFF_PIXELS_8(d, q, %%mm, p1, p2, stride, temp)
1543 #define DIFF_PIXELS_8x8(p1,p2,stride,temp) DIFF_PIXELS_8(q, dqa, %%xmm, p1, p2, stride, temp) 1544 #define DIFF_PIXELS_8x8(p1,p2,stride,temp) DIFF_PIXELS_8(q, dqa, %%xmm, p1, p2, stride, temp)
1544 1545
1545 #ifdef ARCH_X86_64 1546 #ifdef ARCH_X86_64