OSDN Git Service
(root)
/
coroid
/
libav_saccubus.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
6865e04
)
ARM: optimised MAC64 and MLS64
author
Måns Rullgård
<mans@mansr.com>
Tue, 15 Jul 2008 19:06:32 +0000
(19:06 +0000)
committer
Måns Rullgård
<mans@mansr.com>
Tue, 15 Jul 2008 19:06:32 +0000
(19:06 +0000)
Originally committed as revision 14245 to svn://svn.ffmpeg.org/ffmpeg/trunk
libavcodec/armv4l/mathops.h
patch
|
blob
|
history
diff --git
a/libavcodec/armv4l/mathops.h
b/libavcodec/armv4l/mathops.h
index
e42cefb
..
ff12aef
100644
(file)
--- a/
libavcodec/armv4l/mathops.h
+++ b/
libavcodec/armv4l/mathops.h
@@
-57,6
+57,16
@@
static inline av_const int64_t MUL64(int a, int b)
}
#define MUL64 MUL64
+static inline av_const int64_t MAC64(int64_t d, int a, int b)
+{
+ union { uint64_t x; unsigned hl[2]; } x = { d };
+ asm ("smlal %0, %1, %2, %3"
+ : "+r"(x.hl[0]), "+r"(x.hl[1]) : "r"(a), "r"(b));
+ return x.x;
+}
+#define MAC64(d, a, b) ((d) = MAC64(d, a, b))
+#define MLS64(d, a, b) MAC64(d, -(a), b)
+
#if defined(HAVE_ARMV5TE)
/* signed 16x16 -> 32 multiply add accumulate */