Commit ddb55654 authored by arpi_esp's avatar arpi_esp

workaround gcc bug "m" (0)

avoiding useage of ebx


git-svn-id: file:///var/local/repositories/ffmpeg/trunk@283 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b
parent 3bc90365
...@@ -67,17 +67,17 @@ static int RENAME(dct_quantize)(MpegEncContext *s, ...@@ -67,17 +67,17 @@ static int RENAME(dct_quantize)(MpegEncContext *s,
#if 1 #if 1
asm volatile ( asm volatile (
"xorl %%edx, %%edx \n\t" "xorl %%edx, %%edx \n\t"
"mul %%ebx \n\t" "mul %%ecx \n\t"
: "=d" (temp_block[0]), "=a"(dummy) : "=d" (temp_block[0]), "=a"(dummy)
: "a" (block[0] + (q >> 1)), "b" (inverse[q]) : "a" (block[0] + (q >> 1)), "c" (inverse[q])
); );
#else #else
asm volatile ( asm volatile (
"xorl %%edx, %%edx \n\t" "xorl %%edx, %%edx \n\t"
"divw %%bx \n\t" "divw %%cx \n\t"
"movzwl %%ax, %%eax \n\t" "movzwl %%ax, %%eax \n\t"
: "=a" (temp_block[0]) : "=a" (temp_block[0])
: "a" (block[0] + (q >> 1)), "b" (q) : "a" (block[0] + (q >> 1)), "c" (q)
: "%edx" : "%edx"
); );
#endif #endif
...@@ -119,8 +119,10 @@ static int RENAME(dct_quantize)(MpegEncContext *s, ...@@ -119,8 +119,10 @@ static int RENAME(dct_quantize)(MpegEncContext *s,
SPREADW(%%mm3) SPREADW(%%mm3)
"movd %4, %%mm4 \n\t" "movd %4, %%mm4 \n\t"
SPREADW(%%mm4) SPREADW(%%mm4)
#ifndef HAVE_MMX2
"movd %5, %%mm5 \n\t" "movd %5, %%mm5 \n\t"
SPREADW(%%mm5) SPREADW(%%mm5)
#endif
"pxor %%mm7, %%mm7 \n\t" "pxor %%mm7, %%mm7 \n\t"
"movd %%eax, %%mm2 \n\t" "movd %%eax, %%mm2 \n\t"
SPREADW(%%mm2) SPREADW(%%mm2)
...@@ -160,7 +162,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s, ...@@ -160,7 +162,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s,
: "+a" (last_non_zero_p1) : "+a" (last_non_zero_p1)
: "r" (block+64), "r" (qmat+64), : "r" (block+64), "r" (qmat+64),
#ifdef HAVE_MMX2 #ifdef HAVE_MMX2
"m" (maxLevel), "m" (minLevel), "m" (0 /* dummy */), "g" (2*i - 128), "m" (maxLevel), "m" (minLevel), "m" (minLevel /* dummy */), "g" (2*i - 128),
#else #else
"m" (0x7FFF - maxLevel), "m" (0x7FFF -maxLevel + minLevel), "m" (minLevel), "g" (2*i - 128), "m" (0x7FFF - maxLevel), "m" (0x7FFF -maxLevel + minLevel), "m" (minLevel), "g" (2*i - 128),
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment