| @/* |
| @ ** 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: band_nrg_v5.s |
| @ |
| @ Content: CalcBandEnergy and CalcBandEnergyMS function armv5 assemble |
| @ |
| @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ |
| |
| .section .text |
| |
| .global CalcBandEnergy |
| |
| CalcBandEnergy: |
| stmdb sp!, {r4 - r11, lr} |
| |
| mov r2, r2, lsl #16 |
| ldr r12, [r13, #36] |
| mov r9, #0 |
| mov r5, r2, asr #16 |
| mov r4, #0 |
| cmp r5, #0 |
| ble L212 |
| |
| L22: |
| mov r2, r4, lsl #1 |
| ldrsh r10, [r1, r2] |
| add r11, r1, r2 |
| ldrsh r2, [r11, #2] |
| mov r14, #0 |
| cmp r10, r2 |
| bge L28 |
| |
| L23: |
| ldr r11, [r0, +r10, lsl #2] |
| add r10, r10, #1 |
| ldr r6, [r0, +r10, lsl #2] |
| smull r11, r7, r11, r11 |
| add r10, r10, #1 |
| smull r6, r8, r6, r6 |
| ldr r11, [r0, +r10, lsl #2] |
| qadd r14, r14, r7 |
| add r10, r10, #1 |
| smull r11, r7, r11, r11 |
| ldr r6, [r0, +r10, lsl #2] |
| qadd r14, r14, r8 |
| smull r6, r8, r6, r6 |
| add r10, r10, #1 |
| qadd r14, r14, r7 |
| cmp r10, r2 |
| qadd r14, r14, r8 |
| blt L23 |
| |
| L28: |
| qadd r14, r14, r14 |
| str r14, [r3, +r4, lsl #2] |
| add r4, r4, #1 |
| qadd r9, r9, r14 |
| cmp r4, r5 |
| |
| blt L22 |
| |
| L212: |
| str r9, [r12, #0] |
| ldmia sp!, {r4 - r11, pc} |
| |
| @ENDP ; |CalcBandEnergy| |
| |
| .global CalcBandEnergyMS |
| |
| CalcBandEnergyMS: |
| stmdb sp!, {r4 - r11, lr} |
| sub r13, r13, #24 |
| |
| mov r12, #0 |
| mov r3, r3, lsl #16 |
| mov r14, #0 |
| mov r3, r3, asr #16 |
| cmp r3, #0 |
| mov r4, #0 |
| ble L315 |
| |
| L32: |
| mov r5, r4, lsl #1 |
| mov r6, #0 |
| ldrsh r10, [r2, r5] |
| add r5, r2, r5 |
| mov r7, #0 |
| ldrsh r11, [r5, #2] |
| cmp r10, r11 |
| bge L39 |
| |
| str r3, [r13, #4] |
| str r4, [r13, #8] |
| str r12, [r13, #12] |
| str r14, [r13, #16] |
| |
| L33: |
| ldr r8, [r0, +r10, lsl #2] |
| ldr r9, [r1, +r10, lsl #2] |
| mov r8, r8, asr #1 |
| add r10, r10, #1 |
| mov r9, r9, asr #1 |
| |
| ldr r12, [r0, +r10, lsl #2] |
| add r5, r8, r9 |
| ldr r14, [r1, +r10, lsl #2] |
| sub r8, r8, r9 |
| |
| smull r5, r3, r5, r5 |
| mov r12, r12, asr #1 |
| smull r8, r4, r8, r8 |
| mov r14, r14, asr #1 |
| |
| qadd r6, r6, r3 |
| add r5, r12, r14 |
| qadd r7, r7, r4 |
| sub r8, r12, r14 |
| |
| smull r5, r3, r5, r5 |
| add r10, r10, #1 |
| smull r8, r4, r8, r8 |
| |
| qadd r6, r6, r3 |
| qadd r7, r7, r4 |
| |
| ldr r8, [r0, +r10, lsl #2] |
| ldr r9, [r1, +r10, lsl #2] |
| mov r8, r8, asr #1 |
| add r10, r10, #1 |
| mov r9, r9, asr #1 |
| |
| ldr r12, [r0, +r10, lsl #2] |
| add r5, r8, r9 |
| ldr r14, [r1, +r10, lsl #2] |
| sub r8, r8, r9 |
| |
| smull r5, r3, r5, r5 |
| mov r12, r12, asr #1 |
| smull r8, r4, r8, r8 |
| mov r14, r14, asr #1 |
| |
| qadd r6, r6, r3 |
| add r5, r12, r14 |
| qadd r7, r7, r4 |
| sub r8, r12, r14 |
| |
| smull r5, r3, r5, r5 |
| add r10, r10, #1 |
| smull r8, r4, r8, r8 |
| |
| qadd r6, r6, r3 |
| qadd r7, r7, r4 |
| |
| cmp r10, r11 |
| |
| blt L33 |
| |
| ldr r3, [r13, #4] |
| ldr r4, [r13, #8] |
| ldr r12, [r13, #12] |
| ldr r14, [r13, #16] |
| L39: |
| qadd r6, r6, r6 |
| qadd r7, r7, r7 |
| |
| ldr r8, [r13, #60] |
| ldr r9, [r13, #68] |
| |
| qadd r12, r12, r6 |
| qadd r14, r14, r7 |
| |
| str r6, [r8, +r4, lsl #2] |
| str r7, [r9, +r4, lsl #2] |
| |
| add r4, r4, #1 |
| cmp r4, r3 |
| blt L32 |
| |
| L315: |
| ldr r8, [r13, #64] |
| ldr r9, [r13, #72] |
| str r12, [r8, #0] |
| str r14, [r9, #0] |
| |
| add r13, r13, #24 |
| ldmia sp!, {r4 - r11, pc} |
| @ENDP ; |CalcBandEnergyMS| |
| |
| .end |