summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s')
-rw-r--r--media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s200
1 files changed, 100 insertions, 100 deletions
diff --git a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s
index 3b8853f..dffb750 100644
--- a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s
+++ b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/pred_lt4_1_neon.s
@@ -1,100 +1,100 @@
-@/*
-@ ** 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 Pred_lt4(
-@ Word16 exc[], /* in/out: excitation buffer */
-@ Word16 T0, /* input : integer pitch lag */
-@ Word16 frac, /* input : fraction of lag */
-@ Word16 L_subfr /* input : subframe size */
-@)
-@***********************************************************************
-@ r0 --- exc[]
-@ r1 --- T0
-@ r2 --- frac
-@ r3 --- L_subfr
-
- .section .text
- .global pred_lt4_asm
- .extern inter4_2
-
-pred_lt4_asm:
-
- STMFD r13!, {r4 - r12, r14}
- SUB r4, r0, r1, LSL #1 @ x = exc - T0
- RSB r2, r2, #0 @ frac = - frac
- SUB r4, r4, #30 @ x -= L_INTERPOL2 - 1
- CMP r2, #0
- ADDLT r2, r2, #4 @ frac += UP_SAMP
- SUBLT r4, r4, #2 @ x--
-
- LDR r11, Lable1
- RSB r2, r2, #3 @ k = UP_SAMP - 1 - frac
- MOV r8, #0 @ j = 0
- ADD r11, r11, r2, LSL #6 @ get inter4_2[k][]
-
- VLD1.S16 {Q0, Q1}, [r11]!
- VLD1.S16 {Q2, Q3}, [r11]!
-
- MOV r6, #0x8000
-
- VLD1.S16 {Q4, Q5}, [r4]! @load 16 x[]
- VLD1.S16 {Q6, Q7}, [r4]! @load 16 x[]
-
-LOOP:
- VQDMULL.S16 Q15, D8, D0
- VQDMLAL.S16 Q15, D9, D1
- VQDMLAL.S16 Q15, D10, D2
- VQDMLAL.S16 Q15, D11, D3
-
- VQDMLAL.S16 Q15, D12, D4
- VQDMLAL.S16 Q15, D13, D5
- VQDMLAL.S16 Q15, D14, D6
- VQDMLAL.S16 Q15, D15, D7
-
- LDRSH r12, [r4], #2
-
- VEXT.S16 D8, D8, D9, #1
- VEXT.S16 D9, D9, D10, #1
- VEXT.S16 D10, D10, D11, #1
- VEXT.S16 D11, D11, D12, #1
- VDUP.S16 D24, r12
- VEXT.S16 D12, D12, D13, #1
- VEXT.S16 D13, D13, D14, #1
-
- VQADD.S32 D30, D30, D31
- MOV r11, #0x8000
- VPADD.S32 D30, D30, D30
- ADD r8, r8, #1
- VMOV.S32 r12, D30[0]
- VEXT.S16 D14, D14, D15, #1
-
- QADD r1, r12, r12 @ L_sum = (L_sum << 2)
- VEXT.S16 D15, D15, D24, #1
- QADD r5, r1, r6
- MOV r1, r5, ASR #16
- CMP r8, r3
- STRH r1, [r0], #2 @ exc[j] = (L_sum + 0x8000) >> 16
- BLT LOOP
-
-pred_lt4_end:
-
- LDMFD r13!, {r4 - r12, r15}
-
-Lable1:
- .word inter4_2
- @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 Pred_lt4(
+@ Word16 exc[], /* in/out: excitation buffer */
+@ Word16 T0, /* input : integer pitch lag */
+@ Word16 frac, /* input : fraction of lag */
+@ Word16 L_subfr /* input : subframe size */
+@)
+@***********************************************************************
+@ r0 --- exc[]
+@ r1 --- T0
+@ r2 --- frac
+@ r3 --- L_subfr
+
+ .section .text
+ .global pred_lt4_asm
+ .extern inter4_2
+
+pred_lt4_asm:
+
+ STMFD r13!, {r4 - r12, r14}
+ SUB r4, r0, r1, LSL #1 @ x = exc - T0
+ RSB r2, r2, #0 @ frac = - frac
+ SUB r4, r4, #30 @ x -= L_INTERPOL2 - 1
+ CMP r2, #0
+ ADDLT r2, r2, #4 @ frac += UP_SAMP
+ SUBLT r4, r4, #2 @ x--
+
+ LDR r11, Lable1
+ RSB r2, r2, #3 @ k = UP_SAMP - 1 - frac
+ MOV r8, #0 @ j = 0
+ ADD r11, r11, r2, LSL #6 @ get inter4_2[k][]
+
+ VLD1.S16 {Q0, Q1}, [r11]!
+ VLD1.S16 {Q2, Q3}, [r11]!
+
+ MOV r6, #0x8000
+
+ VLD1.S16 {Q4, Q5}, [r4]! @load 16 x[]
+ VLD1.S16 {Q6, Q7}, [r4]! @load 16 x[]
+
+LOOP:
+ VQDMULL.S16 Q15, D8, D0
+ VQDMLAL.S16 Q15, D9, D1
+ VQDMLAL.S16 Q15, D10, D2
+ VQDMLAL.S16 Q15, D11, D3
+
+ VQDMLAL.S16 Q15, D12, D4
+ VQDMLAL.S16 Q15, D13, D5
+ VQDMLAL.S16 Q15, D14, D6
+ VQDMLAL.S16 Q15, D15, D7
+
+ LDRSH r12, [r4], #2
+
+ VEXT.S16 D8, D8, D9, #1
+ VEXT.S16 D9, D9, D10, #1
+ VEXT.S16 D10, D10, D11, #1
+ VEXT.S16 D11, D11, D12, #1
+ VDUP.S16 D24, r12
+ VEXT.S16 D12, D12, D13, #1
+ VEXT.S16 D13, D13, D14, #1
+
+ VQADD.S32 D30, D30, D31
+ MOV r11, #0x8000
+ VPADD.S32 D30, D30, D30
+ ADD r8, r8, #1
+ VMOV.S32 r12, D30[0]
+ VEXT.S16 D14, D14, D15, #1
+
+ QADD r1, r12, r12 @ L_sum = (L_sum << 2)
+ VEXT.S16 D15, D15, D24, #1
+ QADD r5, r1, r6
+ MOV r1, r5, ASR #16
+ CMP r8, r3
+ STRH r1, [r0], #2 @ exc[j] = (L_sum + 0x8000) >> 16
+ BLT LOOP
+
+pred_lt4_end:
+
+ LDMFD r13!, {r4 - r12, r15}
+
+Lable1:
+ .word inter4_2
+ @ENDFUNC
+ .END
+