1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
@/*
@ ** 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
|