[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