ARM: make FASTDIV() an inline function
authorMåns Rullgård <mans@mansr.com>
Wed, 17 Dec 2008 20:04:39 +0000 (20:04 +0000)
committerMåns Rullgård <mans@mansr.com>
Wed, 17 Dec 2008 20:04:39 +0000 (20:04 +0000)
Originally committed as revision 16193 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavutil/internal.h

index 5615c06..535791a 100644 (file)
@@ -149,16 +149,13 @@ static inline av_const int FASTDIV(int a, int b)
     return r;
 }
 #elif defined(ARCH_ARM)
-#    define FASTDIV(a,b) \
-    ({\
-        int ret,dmy;\
-        __asm__ volatile(\
-            "umull %1, %0, %2, %3"\
-            :"=&r"(ret),"=&r"(dmy)\
-            :"r"(a),"r"(ff_inverse[b])\
-            );\
-        ret;\
-    })
+static inline av_const int FASTDIV(int a, int b)
+{
+    int r, t;
+    __asm__ volatile ("umull %1, %0, %2, %3"
+                      : "=&r"(r), "=&r"(t) : "r"(a), "r"(ff_inverse[b]));
+    return r;
+}
 #elif defined(CONFIG_FASTDIV)
 #    define FASTDIV(a,b)   ((uint32_t)((((uint64_t)a)*ff_inverse[b])>>32))
 #else