summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/syn_filt_opt.s
diff options
context:
space:
mode:
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.s476
1 files changed, 238 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
index e05e9e0..f4700cd 100644
--- a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/syn_filt_opt.s
+++ b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV5E/syn_filt_opt.s
@@ -1,238 +1,238 @@
-@/*
-@ ** 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
-
-
+@/*
+@ ** 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
+
+