ARM: change MULL() macro to inline function
authorMåns Rullgård <mans@mansr.com>
Thu, 6 Nov 2008 01:33:20 +0000 (01:33 +0000)
committerMåns Rullgård <mans@mansr.com>
Thu, 6 Nov 2008 01:33:20 +0000 (01:33 +0000)
Originally committed as revision 15780 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/armv4l/mathops.h

index 901cccb..c30ab33 100644 (file)
 #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