* temporal solution for shared lib compilation

* using ALPHA code optimalization for non ARCH_I386

Originally committed as revision 282 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Zdenek Kabelac 2002-01-28 18:06:28 +00:00
parent 2f349de286
commit 320680d420
1 changed files with 5 additions and 7 deletions

View File

@ -437,7 +437,7 @@ static int msmpeg4_pred_dc(MpegEncContext * s, int n,
necessitate to modify mpegvideo.c. The problem comes from the necessitate to modify mpegvideo.c. The problem comes from the
fact they decided to store the quantized DC (which would lead fact they decided to store the quantized DC (which would lead
to problems if Q could vary !) */ to problems if Q could vary !) */
#ifdef ARCH_X86 #if defined ARCH_X86 && !defined PIC
/* using 16bit divisions as they are large enough and 2x as fast */ /* using 16bit divisions as they are large enough and 2x as fast */
asm volatile( asm volatile(
"movl %3, %%eax \n\t" "movl %3, %%eax \n\t"
@ -460,9 +460,11 @@ static int msmpeg4_pred_dc(MpegEncContext * s, int n,
: "r" (scale) : "r" (scale)
: "%eax", "%edx" : "%eax", "%edx"
); );
#elif defined (ARCH_ALPHA) #else
/* #elif defined (ARCH_ALPHA) */
/* Divisions are extremely costly on Alpha; optimize the most /* Divisions are extremely costly on Alpha; optimize the most
common case. */ common case. But they are costly everywhere...
*/
if (scale == 8) { if (scale == 8) {
a = (a + (8 >> 1)) / 8; a = (a + (8 >> 1)) / 8;
b = (b + (8 >> 1)) / 8; b = (b + (8 >> 1)) / 8;
@ -472,10 +474,6 @@ static int msmpeg4_pred_dc(MpegEncContext * s, int n,
b = (b + (scale >> 1)) / scale; b = (b + (scale >> 1)) / scale;
c = (c + (scale >> 1)) / scale; c = (c + (scale >> 1)) / scale;
} }
#else
a = (a + (scale >> 1)) / scale;
b = (b + (scale >> 1)) / scale;
c = (c + (scale >> 1)) / scale;
#endif #endif
/* XXX: WARNING: they did not choose the same test as MPEG4. This /* XXX: WARNING: they did not choose the same test as MPEG4. This
is very important ! */ is very important ! */