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

jm at svn.xiph.org jm at svn.xiph.org
Fri May 26 21:55:37 PDT 2006


Author: jm
Date: 2006-05-26 21:55:35 -0700 (Fri, 26 May 2006)
New Revision: 11439

Modified:
   trunk/speex/libspeex/filters_bfin.h
Log:
normalize16() on Blackfin should now work on odd lenghts (for real this time!)


Modified: trunk/speex/libspeex/filters_bfin.h
===================================================================
--- trunk/speex/libspeex/filters_bfin.h	2006-05-27 04:55:09 UTC (rev 11438)
+++ trunk/speex/libspeex/filters_bfin.h	2006-05-27 04:55:35 UTC (rev 11439)
@@ -39,7 +39,6 @@
 {
    spx_sig_t max_val=1;
    int sig_shift;
-
    __asm__ 
    (
    "%0 = 0;\n\t"
@@ -77,6 +76,14 @@
       "R3 = PACK(R3.L, R1.L);\n\t"
       "[I1++] = R3;\n\t"
    "LOOP_END norm_shift%=;\n\t"
+   "R3 = 1;\n\t"
+   "R2 = %3;\n\t"
+   "R2 = R2 & R3;\n\t"
+   "cc = R2 == 0;\n\t"
+   "if cc jump even_jump%=;\n\t"
+      "R1 = ASHIFT R0 by %2.L;\n\t"
+      "W[I1++] = R1.L;\n\t"
+   "even_jump%=:"
    : : "a" (x), "a" (y), "d" (-sig_shift), "a" (len)
    : "I0", "L0", "I1", "L1", "R0", "R1", "R2", "R3", "memory"
    );



More information about the commits mailing list