* temporal solution for shared lib compilation
authorZdenek Kabelac <kabi@informatics.muni.cz>
Mon, 28 Jan 2002 18:06:28 +0000 (18:06 +0000)
committerZdenek Kabelac <kabi@informatics.muni.cz>
Mon, 28 Jan 2002 18:06:28 +0000 (18:06 +0000)
* using ALPHA code optimalization for non ARCH_I386

Originally committed as revision 282 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/msmpeg4.c

index c5bd55b..b43db88 100644 (file)
@@ -437,7 +437,7 @@ static int msmpeg4_pred_dc(MpegEncContext * s, int n,
        necessitate to modify mpegvideo.c. The problem comes from the
        fact they decided to store the quantized DC (which would lead
        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 */
     asm volatile(
         "movl %3, %%eax                \n\t"
@@ -460,9 +460,11 @@ static int msmpeg4_pred_dc(MpegEncContext * s, int n,
        : "r" (scale)
        : "%eax", "%edx"
     );
-#elif defined (ARCH_ALPHA)
+#else
+    /* #elif defined (ARCH_ALPHA) */
     /* Divisions are extremely costly on Alpha; optimize the most
-       common case.  */
+       common case. But they are costly everywhere...
+     */
     if (scale == 8) {
        a = (a + (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;
        c = (c + (scale >> 1)) / scale;
     }
-#else
-    a = (a + (scale >> 1)) / scale;
-    b = (b + (scale >> 1)) / scale;
-    c = (c + (scale >> 1)) / scale;
 #endif
     /* XXX: WARNING: they did not choose the same test as MPEG4. This
        is very important ! */