diff options
Diffstat (limited to 'media/libstagefright/codecs/aacenc/src/asm/ARMV5E/CalcWindowEnergy_v5.s')
-rw-r--r-- | media/libstagefright/codecs/aacenc/src/asm/ARMV5E/CalcWindowEnergy_v5.s | 224 |
1 files changed, 112 insertions, 112 deletions
diff --git a/media/libstagefright/codecs/aacenc/src/asm/ARMV5E/CalcWindowEnergy_v5.s b/media/libstagefright/codecs/aacenc/src/asm/ARMV5E/CalcWindowEnergy_v5.s index 7997e98..75b916c 100644 --- a/media/libstagefright/codecs/aacenc/src/asm/ARMV5E/CalcWindowEnergy_v5.s +++ b/media/libstagefright/codecs/aacenc/src/asm/ARMV5E/CalcWindowEnergy_v5.s @@ -1,112 +1,112 @@ -@/*
-@ ** 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.
-@ */
-
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-@ File: CalcWindowEnergy_v5.s
-@
-@ Content: CalcWindowEnergy function armv5 assemble
-@
-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
-
- .section .text
-
- .global CalcWindowEnergy
-
-CalcWindowEnergy:
- stmdb sp!, {r4 - r11, lr}
- sub r13, r13, #20
-
- mov r3, r3, lsl #16
- ldr r10, [r0, #168] @ states0 = blockSwitchingControl->iirStates[0];
- mov r3, r3, asr #16
- ldr r11, [r0, #172] @ states1 = blockSwitchingControl->iirStates[1];
-
- mov r2, r2, lsl #16
- ldr r12, hiPassCoeff @ Coeff0 = hiPassCoeff[0];
- mov r2, r2, asr #16
- ldr r14, hiPassCoeff + 4 @ Coeff1 = hiPassCoeff[1];
-
- mov r8, #0 @ w=0
- mov r5, #0 @ wOffset = 0;
-
-BLOCK_BEGIN:
- mov r6, #0 @ accuUE = 0;
- mov r7, #0 @ accuFE = 0;
- mov r4, #0 @ i=0
-
- str r8, [r13, #4]
- str r0, [r13, #8]
- str r3, [r13, #12]
-
-ENERGY_BEG:
- mov r9, r5, lsl #1
- ldrsh r9, [r1, r9] @ tempUnfiltered = timeSignal[tidx];
-
- add r5, r5, r2 @ tidx = tidx + chIncrement;
-
- smulwb r3, r14, r9 @ accu1 = L_mpy_ls(Coeff1, tempUnfiltered);
- smull r0, r8, r12, r11 @ accu2 = fixmul( Coeff0, states1 );
-
- mov r3, r3, lsl #1
- mov r8, r8, lsl #1
-
- sub r0, r3, r10 @ accu3 = accu1 - states0;
- sub r8, r0, r8 @ out = accu3 - accu2;
-
- mov r10, r3 @ states0 = accu1;
- mov r11, r8 @ states1 = out;
-
- mul r3, r9, r9
- mov r8, r8, asr #16
-
- add r4, r4, #1
- add r6, r6, r3, asr #7
-
- mul r9, r8, r8
- ldr r3, [r13, #12]
-
- add r7, r7, r9, asr #7
-
- cmp r4, r3
- blt ENERGY_BEG
-
- ldr r0, [r13, #8]
- ldr r8, [r13, #4]
-
-ENERGY_END:
- add r4, r0, r8, lsl #2
-
- str r6, [r4, #72]
- add r8, r8, #1
- str r7, [r4, #136]
-
- cmp r8, #8
- blt BLOCK_BEGIN
-
-BLOCK_END:
- str r10, [r0, #168]
- str r11, [r0, #172]
- mov r0, #1
-
- add r13, r13, #20
- ldmia sp!, {r4 - r11, pc}
-
-hiPassCoeff:
- .word 0xbec8b439
- .word 0x609d4952
-
- @ENDP
- .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. +@ */ + +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@ File: CalcWindowEnergy_v5.s +@ +@ Content: CalcWindowEnergy function armv5 assemble +@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + .section .text + + .global CalcWindowEnergy + +CalcWindowEnergy: + stmdb sp!, {r4 - r11, lr} + sub r13, r13, #20 + + mov r3, r3, lsl #16 + ldr r10, [r0, #168] @ states0 = blockSwitchingControl->iirStates[0]; + mov r3, r3, asr #16 + ldr r11, [r0, #172] @ states1 = blockSwitchingControl->iirStates[1]; + + mov r2, r2, lsl #16 + ldr r12, hiPassCoeff @ Coeff0 = hiPassCoeff[0]; + mov r2, r2, asr #16 + ldr r14, hiPassCoeff + 4 @ Coeff1 = hiPassCoeff[1]; + + mov r8, #0 @ w=0 + mov r5, #0 @ wOffset = 0; + +BLOCK_BEGIN: + mov r6, #0 @ accuUE = 0; + mov r7, #0 @ accuFE = 0; + mov r4, #0 @ i=0 + + str r8, [r13, #4] + str r0, [r13, #8] + str r3, [r13, #12] + +ENERGY_BEG: + mov r9, r5, lsl #1 + ldrsh r9, [r1, r9] @ tempUnfiltered = timeSignal[tidx]; + + add r5, r5, r2 @ tidx = tidx + chIncrement; + + smulwb r3, r14, r9 @ accu1 = L_mpy_ls(Coeff1, tempUnfiltered); + smull r0, r8, r12, r11 @ accu2 = fixmul( Coeff0, states1 ); + + mov r3, r3, lsl #1 + mov r8, r8, lsl #1 + + sub r0, r3, r10 @ accu3 = accu1 - states0; + sub r8, r0, r8 @ out = accu3 - accu2; + + mov r10, r3 @ states0 = accu1; + mov r11, r8 @ states1 = out; + + mul r3, r9, r9 + mov r8, r8, asr #16 + + add r4, r4, #1 + add r6, r6, r3, asr #7 + + mul r9, r8, r8 + ldr r3, [r13, #12] + + add r7, r7, r9, asr #7 + + cmp r4, r3 + blt ENERGY_BEG + + ldr r0, [r13, #8] + ldr r8, [r13, #4] + +ENERGY_END: + add r4, r0, r8, lsl #2 + + str r6, [r4, #72] + add r8, r8, #1 + str r7, [r4, #136] + + cmp r8, #8 + blt BLOCK_BEGIN + +BLOCK_END: + str r10, [r0, #168] + str r11, [r0, #172] + mov r0, #1 + + add r13, r13, #20 + ldmia sp!, {r4 - r11, pc} + +hiPassCoeff: + .word 0xbec8b439 + .word 0x609d4952 + + @ENDP + .end |