summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/scale_sig_neon.s
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/scale_sig_neon.s')
-rw-r--r--media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/scale_sig_neon.s276
1 files changed, 138 insertions, 138 deletions
diff --git a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/scale_sig_neon.s b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/scale_sig_neon.s
index 14957d8..bbd354d 100644
--- a/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/scale_sig_neon.s
+++ b/media/libstagefright/codecs/amrwbenc/src/asm/ARMV7/scale_sig_neon.s
@@ -1,138 +1,138 @@
-@/*
-@ ** 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 Scale_sig(
-@ Word16 x[], /* (i/o) : signal to scale */
-@ Word16 lg, /* (i) : size of x[] */
-@ Word16 exp /* (i) : exponent: x = round(x << exp) */
-@)
-@***********************************************************************
-@ x[] --- r0
-@ lg --- r1
-@ exp --- r2
-
- .section .text
- .global Scale_sig_opt
-
-Scale_sig_opt:
-
- STMFD r13!, {r4 - r12, r14}
- MOV r4, #4
- VMOV.S32 Q15, #0x8000
- VDUP.S32 Q14, r2
- MOV r5, r0 @ copy x[] address
- CMP r1, #64
- MOVEQ r4, #1
- BEQ LOOP
- CMP r1, #128
- MOVEQ r4, #2
- BEQ LOOP
- CMP r1, #256
- BEQ LOOP
- CMP r1, #80
- MOVEQ r4, #1
- BEQ LOOP1
-
-LOOP1:
- VLD1.S16 {Q0, Q1}, [r5]! @load 16 Word16 x[]
- VSHLL.S16 Q10, D0, #16
- VSHLL.S16 Q11, D1, #16
- VSHLL.S16 Q12, D2, #16
- VSHLL.S16 Q13, D3, #16
- VSHL.S32 Q10, Q10, Q14
- VSHL.S32 Q11, Q11, Q14
- VSHL.S32 Q12, Q12, Q14
- VSHL.S32 Q13, Q13, Q14
- VADDHN.S32 D16, Q10, Q15
- VADDHN.S32 D17, Q11, Q15
- VADDHN.S32 D18, Q12, Q15
- VADDHN.S32 D19, Q13, Q15
- VST1.S16 {Q8, Q9}, [r0]! @store 16 Word16 x[]
-
-LOOP:
- VLD1.S16 {Q0, Q1}, [r5]! @load 16 Word16 x[]
- VLD1.S16 {Q2, Q3}, [r5]! @load 16 Word16 x[]
- VLD1.S16 {Q4, Q5}, [r5]! @load 16 Word16 x[]
- VLD1.S16 {Q6, Q7}, [r5]! @load 16 Word16 x[]
-
- VSHLL.S16 Q8, D0, #16
- VSHLL.S16 Q9, D1, #16
- VSHLL.S16 Q10, D2, #16
- VSHLL.S16 Q11, D3, #16
- VSHL.S32 Q8, Q8, Q14
- VSHL.S32 Q9, Q9, Q14
- VSHL.S32 Q10, Q10, Q14
- VSHL.S32 Q11, Q11, Q14
- VADDHN.S32 D16, Q8, Q15
- VADDHN.S32 D17, Q9, Q15
- VADDHN.S32 D18, Q10, Q15
- VADDHN.S32 D19, Q11, Q15
- VST1.S16 {Q8, Q9}, [r0]! @store 16 Word16 x[]
-
-
- VSHLL.S16 Q12, D4, #16
- VSHLL.S16 Q13, D5, #16
- VSHLL.S16 Q10, D6, #16
- VSHLL.S16 Q11, D7, #16
- VSHL.S32 Q12, Q12, Q14
- VSHL.S32 Q13, Q13, Q14
- VSHL.S32 Q10, Q10, Q14
- VSHL.S32 Q11, Q11, Q14
- VADDHN.S32 D16, Q12, Q15
- VADDHN.S32 D17, Q13, Q15
- VADDHN.S32 D18, Q10, Q15
- VADDHN.S32 D19, Q11, Q15
- VST1.S16 {Q8, Q9}, [r0]! @store 16 Word16 x[]
-
- VSHLL.S16 Q10, D8, #16
- VSHLL.S16 Q11, D9, #16
- VSHLL.S16 Q12, D10, #16
- VSHLL.S16 Q13, D11, #16
- VSHL.S32 Q10, Q10, Q14
- VSHL.S32 Q11, Q11, Q14
- VSHL.S32 Q12, Q12, Q14
- VSHL.S32 Q13, Q13, Q14
- VADDHN.S32 D16, Q10, Q15
- VADDHN.S32 D17, Q11, Q15
- VADDHN.S32 D18, Q12, Q15
- VADDHN.S32 D19, Q13, Q15
- VST1.S16 {Q8, Q9}, [r0]! @store 16 Word16 x[]
-
- VSHLL.S16 Q10, D12, #16
- VSHLL.S16 Q11, D13, #16
- VSHLL.S16 Q12, D14, #16
- VSHLL.S16 Q13, D15, #16
- VSHL.S32 Q10, Q10, Q14
- VSHL.S32 Q11, Q11, Q14
- VSHL.S32 Q12, Q12, Q14
- VSHL.S32 Q13, Q13, Q14
- VADDHN.S32 D16, Q10, Q15
- VADDHN.S32 D17, Q11, Q15
- VADDHN.S32 D18, Q12, Q15
- VADDHN.S32 D19, Q13, Q15
- VST1.S16 {Q8, Q9}, [r0]! @store 16 Word16 x[]
- SUBS r4, r4, #1
- BGT LOOP
-
-
-Scale_sig_asm_end:
-
- 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 Scale_sig(
+@ Word16 x[], /* (i/o) : signal to scale */
+@ Word16 lg, /* (i) : size of x[] */
+@ Word16 exp /* (i) : exponent: x = round(x << exp) */
+@)
+@***********************************************************************
+@ x[] --- r0
+@ lg --- r1
+@ exp --- r2
+
+ .section .text
+ .global Scale_sig_opt
+
+Scale_sig_opt:
+
+ STMFD r13!, {r4 - r12, r14}
+ MOV r4, #4
+ VMOV.S32 Q15, #0x8000
+ VDUP.S32 Q14, r2
+ MOV r5, r0 @ copy x[] address
+ CMP r1, #64
+ MOVEQ r4, #1
+ BEQ LOOP
+ CMP r1, #128
+ MOVEQ r4, #2
+ BEQ LOOP
+ CMP r1, #256
+ BEQ LOOP
+ CMP r1, #80
+ MOVEQ r4, #1
+ BEQ LOOP1
+
+LOOP1:
+ VLD1.S16 {Q0, Q1}, [r5]! @load 16 Word16 x[]
+ VSHLL.S16 Q10, D0, #16
+ VSHLL.S16 Q11, D1, #16
+ VSHLL.S16 Q12, D2, #16
+ VSHLL.S16 Q13, D3, #16
+ VSHL.S32 Q10, Q10, Q14
+ VSHL.S32 Q11, Q11, Q14
+ VSHL.S32 Q12, Q12, Q14
+ VSHL.S32 Q13, Q13, Q14
+ VADDHN.S32 D16, Q10, Q15
+ VADDHN.S32 D17, Q11, Q15
+ VADDHN.S32 D18, Q12, Q15
+ VADDHN.S32 D19, Q13, Q15
+ VST1.S16 {Q8, Q9}, [r0]! @store 16 Word16 x[]
+
+LOOP:
+ VLD1.S16 {Q0, Q1}, [r5]! @load 16 Word16 x[]
+ VLD1.S16 {Q2, Q3}, [r5]! @load 16 Word16 x[]
+ VLD1.S16 {Q4, Q5}, [r5]! @load 16 Word16 x[]
+ VLD1.S16 {Q6, Q7}, [r5]! @load 16 Word16 x[]
+
+ VSHLL.S16 Q8, D0, #16
+ VSHLL.S16 Q9, D1, #16
+ VSHLL.S16 Q10, D2, #16
+ VSHLL.S16 Q11, D3, #16
+ VSHL.S32 Q8, Q8, Q14
+ VSHL.S32 Q9, Q9, Q14
+ VSHL.S32 Q10, Q10, Q14
+ VSHL.S32 Q11, Q11, Q14
+ VADDHN.S32 D16, Q8, Q15
+ VADDHN.S32 D17, Q9, Q15
+ VADDHN.S32 D18, Q10, Q15
+ VADDHN.S32 D19, Q11, Q15
+ VST1.S16 {Q8, Q9}, [r0]! @store 16 Word16 x[]
+
+
+ VSHLL.S16 Q12, D4, #16
+ VSHLL.S16 Q13, D5, #16
+ VSHLL.S16 Q10, D6, #16
+ VSHLL.S16 Q11, D7, #16
+ VSHL.S32 Q12, Q12, Q14
+ VSHL.S32 Q13, Q13, Q14
+ VSHL.S32 Q10, Q10, Q14
+ VSHL.S32 Q11, Q11, Q14
+ VADDHN.S32 D16, Q12, Q15
+ VADDHN.S32 D17, Q13, Q15
+ VADDHN.S32 D18, Q10, Q15
+ VADDHN.S32 D19, Q11, Q15
+ VST1.S16 {Q8, Q9}, [r0]! @store 16 Word16 x[]
+
+ VSHLL.S16 Q10, D8, #16
+ VSHLL.S16 Q11, D9, #16
+ VSHLL.S16 Q12, D10, #16
+ VSHLL.S16 Q13, D11, #16
+ VSHL.S32 Q10, Q10, Q14
+ VSHL.S32 Q11, Q11, Q14
+ VSHL.S32 Q12, Q12, Q14
+ VSHL.S32 Q13, Q13, Q14
+ VADDHN.S32 D16, Q10, Q15
+ VADDHN.S32 D17, Q11, Q15
+ VADDHN.S32 D18, Q12, Q15
+ VADDHN.S32 D19, Q13, Q15
+ VST1.S16 {Q8, Q9}, [r0]! @store 16 Word16 x[]
+
+ VSHLL.S16 Q10, D12, #16
+ VSHLL.S16 Q11, D13, #16
+ VSHLL.S16 Q12, D14, #16
+ VSHLL.S16 Q13, D15, #16
+ VSHL.S32 Q10, Q10, Q14
+ VSHL.S32 Q11, Q11, Q14
+ VSHL.S32 Q12, Q12, Q14
+ VSHL.S32 Q13, Q13, Q14
+ VADDHN.S32 D16, Q10, Q15
+ VADDHN.S32 D17, Q11, Q15
+ VADDHN.S32 D18, Q12, Q15
+ VADDHN.S32 D19, Q13, Q15
+ VST1.S16 {Q8, Q9}, [r0]! @store 16 Word16 x[]
+ SUBS r4, r4, #1
+ BGT LOOP
+
+
+Scale_sig_asm_end:
+
+ LDMFD r13!, {r4 - r12, r15}
+ @ENDFUNC
+ .END
+
+