Index: third_party/opus/src/celt/fixed_debug.h |
diff --git a/third_party/opus/src/celt/fixed_debug.h b/third_party/opus/src/celt/fixed_debug.h |
index d28227f5dc72879ced944d8b5db8880ba3465f03..f435295234cffb53cb054fcdd0ca0885f786d0fa 100644 |
--- a/third_party/opus/src/celt/fixed_debug.h |
+++ b/third_party/opus/src/celt/fixed_debug.h |
@@ -59,6 +59,14 @@ extern opus_int64 celt_mips; |
#define SHR(a,b) SHR32(a,b) |
#define PSHR(a,b) PSHR32(a,b) |
+/** Add two 32-bit values, ignore any overflows */ |
+#define ADD32_ovflw(a,b) (celt_mips+=2,(opus_val32)((opus_uint32)(a)+(opus_uint32)(b))) |
+/** Subtract two 32-bit values, ignore any overflows */ |
+#define SUB32_ovflw(a,b) (celt_mips+=2,(opus_val32)((opus_uint32)(a)-(opus_uint32)(b))) |
+/* Avoid MSVC warning C4146: unary minus operator applied to unsigned type */ |
+/** Negate 32-bit value, ignore any overflows */ |
+#define NEG32_ovflw(a) (celt_mips+=2,(opus_val32)(0-(opus_uint32)(a))) |
+ |
static OPUS_INLINE short NEG16(int x) |
{ |
int res; |
@@ -227,12 +235,11 @@ static OPUS_INLINE int SHL32_(opus_int64 a, int shift, char *file, int line) |
#define VSHR32(a, shift) (((shift)>0) ? SHR32(a, shift) : SHL32(a, -(shift))) |
#define ROUND16(x,a) (celt_mips--,EXTRACT16(PSHR32((x),(a)))) |
+#define SROUND16(x,a) (celt_mips--,EXTRACT16(SATURATE(PSHR32(x,a), 32767))); |
+ |
#define HALF16(x) (SHR16(x,1)) |
#define HALF32(x) (SHR32(x,1)) |
-//#define SHR(a,shift) ((a) >> (shift)) |
-//#define SHL(a,shift) ((a) << (shift)) |
- |
#define ADD16(a, b) ADD16_(a, b, __FILE__, __LINE__) |
static OPUS_INLINE short ADD16_(int a, int b, char *file, int line) |
{ |