[Ffmpeg-cvslog] r6049 - trunk/libavcodec/mpegaudiodec.c

michael subversion
Tue Aug 22 14:07:02 CEST 2006


Author: michael
Date: Tue Aug 22 14:07:02 2006
New Revision: 6049

Modified:
   trunk/libavcodec/mpegaudiodec.c

Log:
replace MULL with asm too, no significnat speedup but its probably better to not take any chances, some versions of gcc will almost certainly mess it up too if they can


Modified: trunk/libavcodec/mpegaudiodec.c
==============================================================================
--- trunk/libavcodec/mpegaudiodec.c	(original)
+++ trunk/libavcodec/mpegaudiodec.c	Tue Aug 22 14:07:02 2006
@@ -44,7 +44,13 @@
 #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) \




More information about the ffmpeg-cvslog mailing list