[xiph-commits] r11424 - trunk/speex/libspeex

jm at svn.xiph.org jm at svn.xiph.org
Fri May 26 06:07:49 PDT 2006


Author: jm
Date: 2006-05-26 06:07:47 -0700 (Fri, 26 May 2006)
New Revision: 11424

Modified:
   trunk/speex/libspeex/ltp_bfin.h
Log:
Updated Blackfin version of compute_pitch_error()


Modified: trunk/speex/libspeex/ltp_bfin.h
===================================================================
--- trunk/speex/libspeex/ltp_bfin.h	2006-05-26 09:09:14 UTC (rev 11423)
+++ trunk/speex/libspeex/ltp_bfin.h	2006-05-26 13:07:47 UTC (rev 11424)
@@ -109,52 +109,41 @@
 }
 
 #define OVERRIDE_COMPUTE_PITCH_ERROR
-static inline spx_word32_t compute_pitch_error(spx_word32_t *C, spx_word16_t *g, spx_word16_t pitch_control)
+static inline spx_word32_t compute_pitch_error(spx_word16_t *C, spx_word16_t *g, spx_word16_t pitch_control)
 {
    spx_word32_t sum;
    __asm__ __volatile__
          (
-         "A1 = A0 = 0;\n\t"
+         "A0 = 0;\n\t"
          
-         "R0 = [%1++];\n\t"
+         "R0 = W[%1++];\n\t"
          "R1.L = %2.L*%5.L (IS);\n\t"
-         "R0 <<= 1;\n\t"
-         "A1 += R1.L*R0.L (M), A0 += R1.L*R0.H (IS) || R0 = [%1++];\n\t"
+         "A0 += R1.L*R0.L (IS) || R0 = W[%1++];\n\t"
          
          "R1.L = %3.L*%5.L (IS);\n\t"
-         "R0 <<= 1;\n\t"
-         "A1 += R1.L*R0.L (M), A0 += R1.L*R0.H (IS) || R0 = [%1++];\n\t"
+         "A0 += R1.L*R0.L (IS) || R0 = W[%1++];\n\t"
          
          "R1.L = %4.L*%5.L (IS);\n\t"
-         "R0 <<= 1;\n\t"
-         "A1 += R1.L*R0.L (M), A0 += R1.L*R0.H (IS) || R0 = [%1++];\n\t"
+         "A0 += R1.L*R0.L (IS) || R0 = W[%1++];\n\t"
          
          "R1.L = %2.L*%3.L (IS);\n\t"
-         "R0 <<= 1;\n\t"
-         "A1 -= R1.L*R0.L (M), A0 -= R1.L*R0.H (IS) || R0 = [%1++];\n\t"
+         "A0 -= R1.L*R0.L (IS) || R0 = W[%1++];\n\t"
 
          "R1.L = %4.L*%3.L (IS);\n\t"
-         "R0 <<= 1;\n\t"
-         "A1 -= R1.L*R0.L (M), A0 -= R1.L*R0.H (IS) || R0 = [%1++];\n\t"
+         "A0 -= R1.L*R0.L (IS) || R0 = W[%1++];\n\t"
          
          "R1.L = %4.L*%2.L (IS);\n\t"
-         "R0 <<= 1;\n\t"
-         "A1 -= R1.L*R0.L (M), A0 -= R1.L*R0.H (IS) || R0 = [%1++];\n\t"
+         "A0 -= R1.L*R0.L (IS) || R0 = W[%1++];\n\t"
          
          "R1.L = %2.L*%2.L (IS);\n\t"
-         "R0 <<= 1;\n\t"
-         "A1 -= R1.L*R0.L (M), A0 -= R1.L*R0.H (IS) || R0 = [%1++];\n\t"
+         "A0 -= R1.L*R0.L (IS) || R0 = W[%1++];\n\t"
 
          "R1.L = %3.L*%3.L (IS);\n\t"
-         "R0 <<= 1;\n\t"
-         "A1 -= R1.L*R0.L (M), A0 -= R1.L*R0.H (IS) || R0 = [%1++];\n\t"
+         "A0 -= R1.L*R0.L (IS) || R0 = W[%1++];\n\t"
          
          "R1.L = %4.L*%4.L (IS);\n\t"
-         "R0 <<= 1;\n\t"
-         "A1 -= R1.L*R0.L (M), A0 -= R1.L*R0.H (IS);\n\t"
+         "A0 -= R1.L*R0.L (IS);\n\t"
          
-         "A1 = A1 >>> 16;\n\t"
-         "A0 += A1;\n\t"
          "%0 = A0;\n\t"
    : "=&D" (sum), "=a" (C)
    : "d" (g[0]), "d" (g[1]), "d" (g[2]), "d" (pitch_control), "1" (C)



More information about the commits mailing list