Completed the separation of coarse and fine energy quantisation
[opus.git] / libcelt / fixed_c5x.h
index ee999fa..de7a217 100644 (file)
 
 #include "dsplib.h"
 
-#undef ABS16
-#define ABS16(x) _abss(x)
-
-#undef ABS32
-#define ABS32(x) _labss(x)
+#undef IMUL32
+static inline long IMUL32(long i, long j)
+{
+   long ac0, ac1;
+   ac0 = _lmpy(i>>16,j);
+   ac1 = ac0 + _lmpy(i,j>>16);
+   return _lmpyu(i,j) + (ac1<<16);
+}
 
 #undef MAX16
 #define MAX16(a,b) _max(a,b)