From 6865e04620fa14eada30866cd8efbcbd9157537b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5ns=20Rullg=C3=A5rd?= Date: Tue, 15 Jul 2008 19:06:29 +0000 Subject: [PATCH] ARM: optimised MUL64 Originally committed as revision 14244 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavcodec/armv4l/mathops.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libavcodec/armv4l/mathops.h b/libavcodec/armv4l/mathops.h index dd53310683..e42cefb430 100644 --- a/libavcodec/armv4l/mathops.h +++ b/libavcodec/armv4l/mathops.h @@ -48,6 +48,15 @@ static inline av_const int MULH(int a, int b) hi; }) #endif +static inline av_const int64_t MUL64(int a, int b) +{ + union { uint64_t x; unsigned hl[2]; } x; + asm ("smull %0, %1, %2, %3" + : "=r"(x.hl[0]), "=r"(x.hl[1]) : "r"(a), "r"(b)); + return x.x; +} +#define MUL64 MUL64 + #if defined(HAVE_ARMV5TE) /* signed 16x16 -> 32 multiply add accumulate */