@/* @ ** 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