replace MULL with asm too, no significnat speedup but its probably better to not...
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 22 Aug 2006 12:07:02 +0000 (12:07 +0000)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 22 Aug 2006 12:07:02 +0000 (12:07 +0000)
Originally committed as revision 6049 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mpegaudiodec.c

index 5ad8c69..55276e3 100644 (file)
 #define FRAC_ONE    (1 << FRAC_BITS)
 
 #ifdef ARCH_X86
-#   define MULL(a,b) (((int64_t)(a) * (int64_t)(b)) >> FRAC_BITS)
+#   define MULL(ra, rb) \
+        ({ int rt, dummy; asm (\
+            "imull %3               \n\t"\
+            "shrdl %4, %%edx, %%eax \n\t"\
+            : "=a"(rt), "=d"(dummy)\
+            : "a" (ra), "rm" (rb), "i"(FRAC_BITS));\
+         rt; })
 #   define MUL64(ra, rb) \
         ({ int64_t rt; asm ("imull %2\n\t" : "=A"(rt) : "a" (ra), "g" (rb)); rt; })
 #   define MULH(ra, rb) \