[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