mathops: add MAC64, MLS64, and MLS16
authorMåns Rullgård <mans@mansr.com>
Sun, 13 Jul 2008 12:22:57 +0000 (12:22 +0000)
committerMåns Rullgård <mans@mansr.com>
Sun, 13 Jul 2008 12:22:57 +0000 (12:22 +0000)
MAC64: 64 += 32 x 32 (bits)
MLS64: 64 -= 32 x 32
MLS16: 32 -= 16 x 16

Originally committed as revision 14198 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/mathops.h

index 71a026f99b9b3200251d865fcee8f6826afac885..3b9bfeb09f18cafc0c4361c4da0e6fc894e7aca9 100644 (file)
@@ -61,6 +61,14 @@ static av_always_inline int MULH(int a, int b){
 #   define MUL64(a,b) ((int64_t)(a) * (int64_t)(b))
 #endif
 
 #   define MUL64(a,b) ((int64_t)(a) * (int64_t)(b))
 #endif
 
+#ifndef MAC64
+#   define MAC64(d, a, b) ((d) += MUL64(a, b))
+#endif
+
+#ifndef MLS64
+#   define MLS64(d, a, b) ((d) -= MUL64(a, b))
+#endif
+
 /* signed 16x16 -> 32 multiply add accumulate */
 #ifndef MAC16
 #   define MAC16(rt, ra, rb) rt += (ra) * (rb)
 /* signed 16x16 -> 32 multiply add accumulate */
 #ifndef MAC16
 #   define MAC16(rt, ra, rb) rt += (ra) * (rb)
@@ -71,5 +79,9 @@ static av_always_inline int MULH(int a, int b){
 #   define MUL16(ra, rb) ((ra) * (rb))
 #endif
 
 #   define MUL16(ra, rb) ((ra) * (rb))
 #endif
 
+#ifndef MLS16
+#   define MLS16(rt, ra, rb) ((rt) -= (ra) * (rb))
+#endif
+
 #endif /* FFMPEG_MATHOPS_H */
 
 #endif /* FFMPEG_MATHOPS_H */