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

jm at motherfish-iii.xiph.org jm at motherfish-iii.xiph.org
Tue Jun 7 01:29:12 PDT 2005


Author: jm
Date: 2005-06-07 01:29:10 -0700 (Tue, 07 Jun 2005)
New Revision: 9386

Modified:
   trunk/speex/libspeex/filters_bfin.h
Log:
Blackfin assembly tweaking


Modified: trunk/speex/libspeex/filters_bfin.h
===================================================================
--- trunk/speex/libspeex/filters_bfin.h	2005-06-07 07:19:20 UTC (rev 9385)
+++ trunk/speex/libspeex/filters_bfin.h	2005-06-07 08:29:10 UTC (rev 9386)
@@ -183,26 +183,21 @@
    "LOOP_BEGIN filter_mid%=;\n\t"
       "LC1 = R0;\n\t"
       "A1 = 0;\n\t"
-
       "I2 = P2;\n\t"
       "I3 = P3;\n\t"
       "P2 += 2;\n\t"
       "P3 += 2;\n\t"
-      "R5.L = W[I2--];\n\t"
-      "R7.L = W[I3--];\n\t"
+      "R5.L = W[I2--] || R7.L = W[I3--];\n\t"
       "LOOP filter_mid_inner%= LC1;\n\t"
       "LOOP_BEGIN filter_mid_inner%=;\n\t"
          "A1 += R4.L*R5.L (IS) || R4.L = W[I0++] || R5.L = W[I2--];\n\t"
          "A1 -= R6.L*R7.L (IS) || R6.L = W[I1++] || R7.L = W[I3--];\n\t"
       "LOOP_END filter_mid_inner%=;\n\t"
       "R1 = A1;\n\t"
-      "R1 <<= 1;\n\t"
-      "R2 = [P0++];\n\t"
+      "R1 = R1 << 1 || R2 = [P0++];\n\t"
       "R1 = R1 + R2;\n\t"
-      "[P1++] = R1;\n\t"
-      "R1 <<= 2;\n\t"
-      "W[P3] = R1.H;\n\t"
-      "R2 <<= 2;\n\t"
+      "R1 = R1 << 2 || [P1++] = R1;\n\t"
+      "R2 = R2 << 2 || W[P3] = R1.H;\n\t"
       "W[P2] = R2.H;\n\t"
    "LOOP_END filter_mid%=;\n\t"
      
@@ -221,11 +216,10 @@
       "I1 = P1;\n\t"
       "P0 += 2;\n\t"
       "P1 += 2;\n\t"
-      "R0 = LC0;LC1=R0;\n\t"
-      "R5.L = W[I2--];\n\t"
-      "R7.L = W[I3--];\n\t"
-      "R4.L = W[I0++];\n\t"
-      "R6.L = W[I1++];\n\t"
+      "R0 = LC0;\n\t"
+      "LC1=R0;\n\t"
+      "R5.L = W[I2--] || R7.L = W[I3--];\n\t"
+      "R4.L = W[I0++] || R6.L = W[I1++];\n\t"
       "LOOP mem_accum%= LC1;\n\t"
       "LOOP_BEGIN mem_accum%=;\n\t"
          "A0 += R4.L*R5.L (IS) || R4.L = W[I0++] || R5.L = W[I2--];\n\t"
@@ -333,13 +327,10 @@
          "A1 -= R6.L*R7.L (IS) || R6.L = W[I1++] || R7.L = W[I3--];\n\t"
       "LOOP_END filter_mid_inner%=;\n\t"
       "R1 = A1;\n\t"
-      "R1 <<= 1;\n\t"
-      "R2 = [P0++];\n\t"
+      "R1 = R1 << 1 || R2 = [P0++];\n\t"
       "R1 = R1 + R2;\n\t"
-      "[P1++] = R1;\n\t"
-      "R1 <<= 2;\n\t"
+      "R1 = R1 << 2 || [P1++] = R1;\n\t"
       "W[P3] = R1.H;\n\t"
-      "R2 <<= 2;\n\t"
    "LOOP_END filter_mid%=;\n\t"
      
    /* Update memory */
@@ -355,9 +346,9 @@
       "I1 = P1;\n\t"
       "P0 += 2;\n\t"
       "P1 += 2;\n\t"
-      "R0 = LC0;LC1=R0;\n\t"
-      "R7.L = W[I3--];\n\t"
-      "R6.L = W[I1++];\n\t"
+      "R0 = LC0;\n\t"
+      "LC1=R0;\n\t"
+      "R7.L = W[I3--] || R6.L = W[I1++];\n\t"
       "LOOP mem_accum%= LC1;\n\t"
       "LOOP_BEGIN mem_accum%=;\n\t"
          "A0 -= R6.L*R7.L (IS) || R6.L = W[I1++] || R7.L = W[I3--];\n\t"



More information about the commits mailing list