changeset 539:945d88d23efe libavutil

fix ARMv6 FASTDIV for divisor <=2
author mru
date Thu, 31 Jul 2008 02:38:40 +0000
parents cdbdd48471aa
children db7f6a006d4f
files internal.h
diffstat 1 files changed, 4 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/internal.h	Wed Jul 30 23:17:41 2008 +0000
+++ b/internal.h	Thu Jul 31 02:38:40 2008 +0000
@@ -150,7 +150,10 @@
 static inline av_const int FASTDIV(int a, int b)
 {
     int r;
-    asm volatile("smmul %0, %1, %2" : "=r"(r) : "r"(a), "r"(ff_inverse[b]));
+    asm volatile("cmp   %2, #0        \n\t"
+                 "smmul %0, %1, %2    \n\t"
+                 "rsblt %0, %0, #0    \n\t"
+                 : "=r"(r) : "r"(a), "r"(ff_inverse[b]));
     return r;
 }
 #elif defined(ARCH_ARMV4L)