- Timestamp:
- Jul 26, 2006 5:04:54 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjmedia/src/pjmedia-codec/speex/cb_search_bfin.h
r278 r628 62 62 "LOOP_END inner%=;\n\t" 63 63 "R0 = A0;\n\t" 64 "R0 >>>= 1 1;\n\t"64 "R0 >>>= 13;\n\t" 65 65 "A1 += R0.L*R0.L (IS);\n\t" 66 66 "W[P3++] = R0;\n\t" … … 73 73 : 74 74 : "m" (subvect_size), "m" (shape_cb), "m" (r), "m" (resp), "m" (E) 75 : "A0", "P0", "P1", "P2", "P3", "P4", "R0", "R1", "R2", "I0", "I1", "L0", "L1", "A0", "A1", "memory" 75 : "A0", "P0", "P1", "P2", "P3", "P4", "R0", "R1", "R2", "I0", "I1", "L0", 76 "L1", "A0", "A1", "memory", "LC0", "LC1" 76 77 ); 77 78 shape_cb += subvect_size; … … 84 85 static inline void target_update(spx_word16_t *t, spx_word16_t g, spx_word16_t *r, int len) 85 86 { 87 if (!len) 88 return; 86 89 __asm__ __volatile__ 87 90 ( … … 90 93 "L0 = 0;\n\t" 91 94 "L1 = 0;\n\t" 95 "R2 = 4096;\n\t" 92 96 "LOOP tupdate%= LC0 = %3;\n\t" 93 97 "LOOP_BEGIN tupdate%=;\n\t" 94 98 "R0.L = W[I0] || R1.L = W[I1++];\n\t" 95 99 "R1 = (A1 = R1.L*%2.L) (IS);\n\t" 96 "R1 >>>= 11;\n\t" 100 "R1 = R1 + R2;\n\t" 101 "R1 >>>= 13;\n\t" 97 102 "R0.L = R0.L - R1.L;\n\t" 98 103 "W[I0++] = R0.L;\n\t" … … 100 105 : 101 106 : "a" (t), "a" (r), "d" (g), "a" (len) 102 : "R0", "R1", " A1", "I0", "I1", "L0", "L1"107 : "R0", "R1", "R2", "A1", "I0", "I1", "L0", "L1" 103 108 ); 104 109 } 105
Note: See TracChangeset
for help on using the changeset viewer.