aboutsummaryrefslogtreecommitdiff
path: root/celt/fixed_generic.h
diff options
context:
space:
mode:
authorTorne (Richard Coles) <torne@google.com>2013-11-28 11:56:13 +0000
committerTorne (Richard Coles) <torne@google.com>2013-11-28 11:56:13 +0000
commitc6645e8022f7f54a25486cfe6ab45cff105b3c35 (patch)
treef727676b8060d3a1966c0e8e37855aaee8b4e216 /celt/fixed_generic.h
parent85681bca27e8939ac474bb1aa019f28c2b5fcb70 (diff)
parent3ff27560eb001d23e76aaae0f24f80e598fa2c8e (diff)
downloadsrc-c6645e8022f7f54a25486cfe6ab45cff105b3c35.tar.gz
Merge from Chromium at DEPS revision 237746
This commit was generated by merge_to_master.py. Change-Id: Ib617ae43c5de9bee8a73120a7d1ba6818bae031f
Diffstat (limited to 'celt/fixed_generic.h')
-rw-r--r--celt/fixed_generic.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/celt/fixed_generic.h b/celt/fixed_generic.h
index 71e28d6..657e67c 100644
--- a/celt/fixed_generic.h
+++ b/celt/fixed_generic.h
@@ -84,6 +84,8 @@
#define PSHR(a,shift) (SHR((a)+((EXTEND32(1)<<((shift))>>1)),shift))
#define SATURATE(x,a) (((x)>(a) ? (a) : (x)<-(a) ? -(a) : (x)))
+#define SATURATE16(x) (EXTRACT16((x)>32767 ? 32767 : (x)<-32768 ? -32768 : (x)))
+
/** Shift by a and round-to-neareast 32-bit value. Result is a 16-bit value */
#define ROUND16(x,a) (EXTRACT16(PSHR32((x),(a))))
/** Divide by two */
@@ -108,10 +110,13 @@
/** 16x16 multiply-add where the result fits in 32 bits */
#define MAC16_16(c,a,b) (ADD32((c),MULT16_16((a),(b))))
-/** 16x32 multiply-add, followed by a 15-bit shift right. Results fits in 32 bits */
+/** 16x32 multiply, followed by a 15-bit shift right and 32-bit add.
+ b must fit in 31 bits.
+ Result fits in 32 bits. */
#define MAC16_32_Q15(c,a,b) ADD32(c,ADD32(MULT16_16((a),SHR((b),15)), SHR(MULT16_16((a),((b)&0x00007fff)),15)))
#define MULT16_16_Q11_32(a,b) (SHR(MULT16_16((a),(b)),11))
+#define MULT16_16_Q11(a,b) (SHR(MULT16_16((a),(b)),11))
#define MULT16_16_Q13(a,b) (SHR(MULT16_16((a),(b)),13))
#define MULT16_16_Q14(a,b) (SHR(MULT16_16((a),(b)),14))
#define MULT16_16_Q15(a,b) (SHR(MULT16_16((a),(b)),15))