diff options
Diffstat (limited to 'media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/syn_filt_opt.s')
-rw-r--r-- | media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/syn_filt_opt.s | 238 |
1 files changed, 0 insertions, 238 deletions
diff --git a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/syn_filt_opt.s b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/syn_filt_opt.s deleted file mode 100644 index 0c287a4..0000000 --- a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/syn_filt_opt.s +++ /dev/null @@ -1,238 +0,0 @@ -@/* -@ ** Copyright 2003-2010, VisualOn, Inc. -@ ** -@ ** Licensed under the Apache License, Version 2.0 (the "License"); -@ ** you may not use this file except in compliance with the License. -@ ** You may obtain a copy of the License at -@ ** -@ ** http://www.apache.org/licenses/LICENSE-2.0 -@ ** -@ ** Unless required by applicable law or agreed to in writing, software -@ ** distributed under the License is distributed on an "AS IS" BASIS, -@ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -@ ** See the License for the specific language governing permissions and -@ ** limitations under the License. -@ */ -@**********************************************************************/ -@void Syn_filt( -@ Word16 a[], /* (i) Q12 : a[m+1] prediction coefficients */ -@ Word16 x[], /* (i) : input signal */ -@ Word16 y[], /* (o) : output signal */ -@ Word16 mem[], /* (i/o) : memory associated with this filtering. */ -@) -@*********************************************************************** -@ a[] --- r0 -@ x[] --- r1 -@ y[] --- r2 -@ mem[] --- r3 -@ m --- 16 lg --- 80 update --- 1 - - .section .text - .global Syn_filt_asm - .extern voAWB_Copy - -Syn_filt_asm: - - STMFD r13!, {r4 - r12, r14} - SUB r13, r13, #700 @ y_buf[L_FRAME16k + M16k] - - MOV r4, r3 @ copy mem[] address - MOV r5, r13 @ copy yy = y_buf address - - @ for(i = 0@ i < m@ i++) - @{ - @ *yy++ = mem[i]@ - @} - - LDRH r6, [r4], #2 - LDRH r7, [r4], #2 - LDRH r8, [r4], #2 - LDRH r9, [r4], #2 - LDRH r10, [r4], #2 - LDRH r11, [r4], #2 - LDRH r12, [r4], #2 - LDRH r14, [r4], #2 - - STRH r6, [r5], #2 - STRH r7, [r5], #2 - STRH r8, [r5], #2 - STRH r9, [r5], #2 - STRH r10, [r5], #2 - STRH r11, [r5], #2 - STRH r12, [r5], #2 - STRH r14, [r5], #2 - - LDRH r6, [r4], #2 - LDRH r7, [r4], #2 - LDRH r8, [r4], #2 - LDRH r9, [r4], #2 - LDRH r10, [r4], #2 - LDRH r11, [r4], #2 - LDRH r12, [r4], #2 - LDRH r14, [r4], #2 - - STRH r6, [r5], #2 - STRH r7, [r5], #2 - STRH r8, [r5], #2 - STRH r9, [r5], #2 - STRH r10, [r5], #2 - STRH r11, [r5], #2 - STRH r12, [r5], #2 - STRH r14, [r5], #2 - - LDRSH r5, [r0] @ load a[0] - MOV r8, #0 @ i = 0 - MOV r5, r5, ASR #1 @ a0 = a[0] >> 1 - @MOV r4, r13 - @ load all a[] - - LDR r14, =0xffff - LDRSH r6, [r0, #2] @ load a[1] - LDRSH r7, [r0, #4] @ load a[2] - LDRSH r9, [r0, #6] @ load a[3] - LDRSH r11,[r0, #8] @ load a[4] - AND r6, r6, r14 - AND r9, r9, r14 - ORR r10, r6, r7, LSL #16 @ -a[2] -- -a[1] - ORR r12, r9, r11, LSL #16 @ -a[4] -- -a[3] - STR r10, [r13, #-4] - STR r12, [r13, #-8] - - LDRSH r6, [r0, #10] @ load a[5] - LDRSH r7, [r0, #12] @ load a[6] - LDRSH r9, [r0, #14] @ load a[7] - LDRSH r11,[r0, #16] @ load a[8] - AND r6, r6, r14 - AND r9, r9, r14 - ORR r10, r6, r7, LSL #16 @ -a[6] -- -a[5] - ORR r12, r9, r11, LSL #16 @ -a[8] -- -a[7] - STR r10, [r13, #-12] - STR r12, [r13, #-16] - - LDRSH r6, [r0, #18] @ load a[9] - LDRSH r7, [r0, #20] @ load a[10] - LDRSH r9, [r0, #22] @ load a[11] - LDRSH r11,[r0, #24] @ load a[12] - AND r6, r6, r14 - AND r9, r9, r14 - ORR r10, r6, r7, LSL #16 @ -a[10] -- -a[9] - ORR r12, r9, r11, LSL #16 @ -a[12] -- -a[11] - STR r10, [r13, #-20] - STR r12, [r13, #-24] - - LDRSH r6, [r0, #26] @ load a[13] - LDRSH r7, [r0, #28] @ load a[14] - LDRSH r9, [r0, #30] @ load a[15] - LDRSH r11,[r0, #32] @ load a[16] - AND r6, r6, r14 - AND r9, r9, r14 - ORR r10, r6, r7, LSL #16 @ -a[14] -- -a[13] - ORR r12, r9, r11, LSL #16 @ -a[16] -- -a[15] - STR r10, [r13, #-28] - STR r12, [r13, #-32] - - ADD r4, r13, #32 -LOOP: - LDRSH r6, [r1], #2 @ load x[i] - ADD r10, r4, r8, LSL #1 @ temp_p = yy + i - - MUL r0, r5, r6 @ L_tmp = x[i] * a0 - @ for(j = 1@ j <= m, j+=8) - LDR r7, [r13, #-4] @ -a[2] -a[1] - LDRSH r9, [r10, #-2] @ *(temp_p - 1) - LDRSH r12, [r10, #-4] @ *(temp_p - 2) - - - SMULBB r14, r9, r7 @ -a[1] * (*(temp_p -1)) - - LDRSH r6, [r10, #-6] @ *(temp_p - 3) - - SMLABT r14, r12, r7, r14 @ -a[2] * (*(temp_p - 2)) - - LDR r7, [r13, #-8] @ -a[4] -a[3] - LDRSH r11, [r10, #-8] @ *(temp_p - 4) - - SMLABB r14, r6, r7, r14 @ -a[3] * (*(temp_p -3)) - - LDRSH r9, [r10, #-10] @ *(temp_p - 5) - - SMLABT r14, r11, r7, r14 @ -a[4] * (*(temp_p -4)) - - LDR r7, [r13, #-12] @ -a[6] -a[5] - LDRSH r12, [r10, #-12] @ *(temp_p - 6) - - SMLABB r14, r9, r7, r14 @ -a[5] * (*(temp_p -5)) - - LDRSH r6, [r10, #-14] @ *(temp_p - 7) - - SMLABT r14, r12, r7, r14 @ -a[6] * (*(temp_p - 6)) - - LDR r7, [r13, #-16] @ -a[8] -a[7] - LDRSH r11, [r10, #-16] @ *(temp_p - 8) - - SMLABB r14, r6, r7, r14 @ -a[7] * (*(temp_p -7)) - - LDRSH r9, [r10, #-18] @ *(temp_p - 9) - - SMLABT r14, r11, r7, r14 @ -a[8] * (*(temp_p -8)) - - LDR r7, [r13, #-20] @ -a[10] -a[9] - LDRSH r12, [r10, #-20] @ *(temp_p - 10) - - SMLABB r14, r9, r7, r14 @ -a[9] * (*(temp_p -9)) - - LDRSH r6, [r10, #-22] @ *(temp_p - 11) - - SMLABT r14, r12, r7, r14 @ -a[10] * (*(temp_p - 10)) - - LDR r7, [r13, #-24] @ -a[12] -a[11] - LDRSH r11, [r10, #-24] @ *(temp_p - 12) - - SMLABB r14, r6, r7, r14 @ -a[11] * (*(temp_p -11)) - - LDRSH r9, [r10, #-26] @ *(temp_p - 13) - - SMLABT r14, r11, r7, r14 @ -a[12] * (*(temp_p -12)) - - LDR r7, [r13, #-28] @ -a[14] -a[13] - LDRSH r12, [r10, #-28] @ *(temp_p - 14) - - SMLABB r14, r9, r7, r14 @ -a[13] * (*(temp_p -13)) - - LDRSH r6, [r10, #-30] @ *(temp_p - 15) - - SMLABT r14, r12, r7, r14 @ -a[14] * (*(temp_p - 14)) - - LDR r7, [r13, #-32] @ -a[16] -a[15] - LDRSH r11, [r10, #-32] @ *(temp_p - 16) - - SMLABB r14, r6, r7, r14 @ -a[15] * (*(temp_p -15)) - - SMLABT r14, r11, r7, r14 @ -a[16] * (*(temp_p -16)) - - RSB r14, r14, r0 - - MOV r7, r14, LSL #4 @ L_tmp <<=4 - ADD r8, r8, #1 - ADD r14, r7, #0x8000 - MOV r7, r14, ASR #16 @ (L_tmp + 0x8000) >> 16 - CMP r8, #80 - STRH r7, [r10] @ yy[i] - STRH r7, [r2], #2 @ y[i] - BLT LOOP - - @ update mem[] - ADD r5, r13, #160 @ yy[64] address - MOV r1, r3 - MOV r0, r5 - MOV r2, #16 - BL voAWB_Copy - -Syn_filt_asm_end: - - ADD r13, r13, #700 - LDMFD r13!, {r4 - r12, r15} - @ENDFUNC - .END - - |