ARM: change MULL() macro to inline function

Originally committed as revision 15780 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Måns Rullgård 2008-11-06 01:33:20 +00:00
parent 96dea17a1d
commit 8f4d0d48b9
1 changed files with 11 additions and 8 deletions

View File

@ -26,14 +26,17 @@
#include "libavutil/common.h"
#ifdef FRAC_BITS
# define MULL(a, b) \
({ int lo, hi;\
__asm__("smull %0, %1, %2, %3 \n\t"\
"mov %0, %0, lsr %4\n\t"\
"add %1, %0, %1, lsl %5\n\t"\
: "=&r"(lo), "=&r"(hi)\
: "r"(b), "r"(a), "i"(FRAC_BITS), "i"(32-FRAC_BITS));\
hi; })
# define MULL MULL
static inline av_const int MULL(int a, int b)
{
int lo, hi;
__asm__("smull %0, %1, %2, %3 \n\t"
"mov %0, %0, lsr %4 \n\t"
"add %1, %0, %1, lsl %5 \n\t"
: "=&r"(lo), "=&r"(hi)
: "r"(b), "r"(a), "i"(FRAC_BITS), "i"(32-FRAC_BITS));
return hi;
}
#endif
#ifdef HAVE_ARMV6