ARM: ARMv6 optimised MULH
authorMåns Rullgård <mans@mansr.com>
Tue, 15 Jul 2008 19:06:25 +0000 (19:06 +0000)
committerMåns Rullgård <mans@mansr.com>
Tue, 15 Jul 2008 19:06:25 +0000 (19:06 +0000)
Originally committed as revision 14243 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/armv4l/mathops.h

index cc097c3..dd53310 100644 (file)
          hi; })
 #endif
 
+#ifdef HAVE_ARMV6
+static inline av_const int MULH(int a, int b)
+{
+    int r;
+    asm ("smmul %0, %1, %2" : "=r"(r) : "r"(a), "r"(b));
+    return r;
+}
+#define MULH MULH
+#else
 #define MULH(a, b) \
     ({ int lo, hi;\
      asm ("smull %0, %1, %2, %3" : "=&r"(lo), "=&r"(hi) : "r"(b), "r"(a));\
      hi; })
+#endif
 
 #if defined(HAVE_ARMV5TE)