# HG changeset patch # User mru # Date 1216148785 0 # Node ID c8b0366e066fb2189be1ad454c6f3b846dc1ff7e # Parent 00858715211edeafa47f7442c8cc32487441d433 ARM: ARMv6 optimised MULH diff -r 00858715211e -r c8b0366e066f armv4l/mathops.h --- a/armv4l/mathops.h Tue Jul 15 18:43:26 2008 +0000 +++ b/armv4l/mathops.h Tue Jul 15 19:06:25 2008 +0000 @@ -33,10 +33,20 @@ 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)