]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
ARM: optimised mid_pred()
authormru <mru@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Tue, 27 Jan 2009 16:06:38 +0000 (16:06 +0000)
committermru <mru@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Tue, 27 Jan 2009 16:06:38 +0000 (16:06 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@16819 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavcodec/arm/mathops.h

index 00279181db86a766bece175a48a15a8ac973de94..de2d5300b798f15a6c1f350559be313affe7fa6d 100644 (file)
@@ -90,4 +90,22 @@ static inline av_const MUL16(int ra, int rb)
 
 #endif
 
+#define mid_pred mid_pred
+static inline av_const int mid_pred(int a, int b, int c)
+{
+    int m;
+    __asm__ volatile (
+        "mov   %0, %2  \n\t"
+        "cmp   %1, %2  \n\t"
+        "movgt %0, %1  \n\t"
+        "movgt %1, %2  \n\t"
+        "cmp   %1, %3  \n\t"
+        "movle %1, %3  \n\t"
+        "cmp   %0, %1  \n\t"
+        "movgt %0, %1  \n\t"
+        : "=&r"(m), "+r"(a)
+        : "r"(b), "r"(c));
+    return m;
+}
+
 #endif /* AVCODEC_ARM_MATHOPS_H */