Commit f617aded authored by Michael Niedermayer's avatar Michael Niedermayer

replace MULL with asm too, no significnat speedup but its probably better to...

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

Originally committed as revision 6049 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 47a0cd74
...@@ -44,7 +44,13 @@ ...@@ -44,7 +44,13 @@
#define FRAC_ONE (1 << FRAC_BITS) #define FRAC_ONE (1 << FRAC_BITS)
#ifdef ARCH_X86 #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) \ # define MUL64(ra, rb) \
({ int64_t rt; asm ("imull %2\n\t" : "=A"(rt) : "a" (ra), "g" (rb)); rt; }) ({ int64_t rt; asm ("imull %2\n\t" : "=A"(rt) : "a" (ra), "g" (rb)); rt; })
# define MULH(ra, rb) \ # define MULH(ra, rb) \
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment