1 @/* 2 @ ** Copyright 2003-2010, VisualOn, Inc. 3 @ ** 4 @ ** Licensed under the Apache License, Version 2.0 (the "License"); 5 @ ** you may not use this file except in compliance with the License. 6 @ ** You may obtain a copy of the License at 7 @ ** 8 @ ** http://www.apache.org/licenses/LICENSE-2.0 9 @ ** 10 @ ** Unless required by applicable law or agreed to in writing, software 11 @ ** distributed under the License is distributed on an "AS IS" BASIS, 12 @ ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 @ ** See the License for the specific language governing permissions and 14 @ ** limitations under the License. 15 @ */ 16 17 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 18 @ File: band_nrg_v5.s 19 @ 20 @ Content: CalcBandEnergy and CalcBandEnergyMS function armv5 assemble 21 @ 22 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 23 24 .section .text 25 26 .global CalcBandEnergy 27 28 CalcBandEnergy: 29 stmdb sp!, {r4 - r11, lr} 30 31 mov r2, r2, lsl #16 32 ldr r12, [r13, #36] 33 mov r9, #0 34 mov r5, r2, asr #16 35 mov r4, #0 36 cmp r5, #0 37 ble L212 38 39 L22: 40 mov r2, r4, lsl #1 41 ldrsh r10, [r1, r2] 42 add r11, r1, r2 43 ldrsh r2, [r11, #2] 44 mov r14, #0 45 cmp r10, r2 46 bge L28 47 48 L23: 49 ldr r11, [r0, +r10, lsl #2] 50 add r10, r10, #1 51 ldr r6, [r0, +r10, lsl #2] 52 smull r11, r7, r11, r11 53 add r10, r10, #1 54 smull r6, r8, r6, r6 55 ldr r11, [r0, +r10, lsl #2] 56 qadd r14, r14, r7 57 add r10, r10, #1 58 smull r11, r7, r11, r11 59 ldr r6, [r0, +r10, lsl #2] 60 qadd r14, r14, r8 61 smull r6, r8, r6, r6 62 add r10, r10, #1 63 qadd r14, r14, r7 64 cmp r10, r2 65 qadd r14, r14, r8 66 blt L23 67 68 L28: 69 qadd r14, r14, r14 70 str r14, [r3, +r4, lsl #2] 71 add r4, r4, #1 72 qadd r9, r9, r14 73 cmp r4, r5 74 75 blt L22 76 77 L212: 78 str r9, [r12, #0] 79 ldmia sp!, {r4 - r11, pc} 80 81 @ENDP ; |CalcBandEnergy| 82 83 .global CalcBandEnergyMS 84 85 CalcBandEnergyMS: 86 stmdb sp!, {r4 - r11, lr} 87 sub r13, r13, #24 88 89 mov r12, #0 90 mov r3, r3, lsl #16 91 mov r14, #0 92 mov r3, r3, asr #16 93 cmp r3, #0 94 mov r4, #0 95 ble L315 96 97 L32: 98 mov r5, r4, lsl #1 99 mov r6, #0 100 ldrsh r10, [r2, r5] 101 add r5, r2, r5 102 mov r7, #0 103 ldrsh r11, [r5, #2] 104 cmp r10, r11 105 bge L39 106 107 str r3, [r13, #4] 108 str r4, [r13, #8] 109 str r12, [r13, #12] 110 str r14, [r13, #16] 111 112 L33: 113 ldr r8, [r0, +r10, lsl #2] 114 ldr r9, [r1, +r10, lsl #2] 115 mov r8, r8, asr #1 116 add r10, r10, #1 117 mov r9, r9, asr #1 118 119 ldr r12, [r0, +r10, lsl #2] 120 add r5, r8, r9 121 ldr r14, [r1, +r10, lsl #2] 122 sub r8, r8, r9 123 124 smull r5, r3, r5, r5 125 mov r12, r12, asr #1 126 smull r8, r4, r8, r8 127 mov r14, r14, asr #1 128 129 qadd r6, r6, r3 130 add r5, r12, r14 131 qadd r7, r7, r4 132 sub r8, r12, r14 133 134 smull r5, r3, r5, r5 135 add r10, r10, #1 136 smull r8, r4, r8, r8 137 138 qadd r6, r6, r3 139 qadd r7, r7, r4 140 141 ldr r8, [r0, +r10, lsl #2] 142 ldr r9, [r1, +r10, lsl #2] 143 mov r8, r8, asr #1 144 add r10, r10, #1 145 mov r9, r9, asr #1 146 147 ldr r12, [r0, +r10, lsl #2] 148 add r5, r8, r9 149 ldr r14, [r1, +r10, lsl #2] 150 sub r8, r8, r9 151 152 smull r5, r3, r5, r5 153 mov r12, r12, asr #1 154 smull r8, r4, r8, r8 155 mov r14, r14, asr #1 156 157 qadd r6, r6, r3 158 add r5, r12, r14 159 qadd r7, r7, r4 160 sub r8, r12, r14 161 162 smull r5, r3, r5, r5 163 add r10, r10, #1 164 smull r8, r4, r8, r8 165 166 qadd r6, r6, r3 167 qadd r7, r7, r4 168 169 cmp r10, r11 170 171 blt L33 172 173 ldr r3, [r13, #4] 174 ldr r4, [r13, #8] 175 ldr r12, [r13, #12] 176 ldr r14, [r13, #16] 177 L39: 178 qadd r6, r6, r6 179 qadd r7, r7, r7 180 181 ldr r8, [r13, #60] 182 ldr r9, [r13, #68] 183 184 qadd r12, r12, r6 185 qadd r14, r14, r7 186 187 str r6, [r8, +r4, lsl #2] 188 str r7, [r9, +r4, lsl #2] 189 190 add r4, r4, #1 191 cmp r4, r3 192 blt L32 193 194 L315: 195 ldr r8, [r13, #64] 196 ldr r9, [r13, #72] 197 str r12, [r8, #0] 198 str r14, [r9, #0] 199 200 add r13, r13, #24 201 ldmia sp!, {r4 - r11, pc} 202 @ENDP ; |CalcBandEnergyMS| 203 204 .end 205