summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Mahone <andrew.mahone@gmail.com>2009-07-13 04:50:02 +0000
committerAndrew Mahone <andrew.mahone@gmail.com>2009-07-13 04:50:02 +0000
commitf35db90efac68d17e413dae3e90c13f432ae0740 (patch)
tree1406c5b4875111df6e558377e88cf20ffc467de1
parent15dc0750be8322d157bc6429dc35e11018d6ff5e (diff)
downloadrockbox-f35db90efac68d17e413dae3e90c13f432ae0740.tar.gz
rockbox-f35db90efac68d17e413dae3e90c13f432ae0740.zip
Reorder some operands to increase frequency of multiply early termination on TDMI targets, reorder some operations to try to reduce stalls.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21834 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--apps/codecs/lib/mdct_arm.S110
1 files changed, 55 insertions, 55 deletions
diff --git a/apps/codecs/lib/mdct_arm.S b/apps/codecs/lib/mdct_arm.S
index d082b4e932..bacc049f6b 100644
--- a/apps/codecs/lib/mdct_arm.S
+++ b/apps/codecs/lib/mdct_arm.S
@@ -80,9 +80,9 @@ mdct_butterfly_16:
80 rsb r3, r2, r3, asl #1 @ (x1 - x9) - (x0 - x8) 80 rsb r3, r2, r3, asl #1 @ (x1 - x9) - (x0 - x8)
81 81
82 ldr r12, =cPI2_8 82 ldr r12, =cPI2_8
83 smull r8, r5, r2, r12 83 smull r8, r5, r12, r2
84 smull r8, r6, r12, r3
84 mov r5, r5, asl #1 85 mov r5, r5, asl #1
85 smull r8, r6, r3, r12
86 mov r6, r6, asl #1 86 mov r6, r6, asl #1
87 87
88 stmia r0!, {r5, r6, r10, r11} 88 stmia r0!, {r5, r6, r10, r11}
@@ -103,9 +103,9 @@ mdct_butterfly_16:
103 sub r2, r2, r3 @ (x12 - x4) - (x13 - x5) 103 sub r2, r2, r3 @ (x12 - x4) - (x13 - x5)
104 add r3, r2, r3, asl #1 @ (x12 - x4) + (x13 - x5) 104 add r3, r2, r3, asl #1 @ (x12 - x4) + (x13 - x5)
105 105
106 smull r8, r5, r2, r12 106 smull r8, r5, r12, r2
107 smull r8, r6, r12, r3
107 mov r5, r5, asl #1 108 mov r5, r5, asl #1
108 smull r8, r6, r3, r12
109 mov r6, r6, asl #1 109 mov r6, r6, asl #1
110 @ no stmia here, r5, r6, r10, r11 are passed to mdct_butterfly_8 110 @ no stmia here, r5, r6, r10, r11 are passed to mdct_butterfly_8
111 111
@@ -138,11 +138,11 @@ mdct_butterfly_32:
138 138
139 ldr r12, =cPI1_8 139 ldr r12, =cPI1_8
140 ldr lr, =cPI3_8 140 ldr lr, =cPI3_8
141 smull r10, r6, r2, r12 141 smull r10, r6, r12, r2
142 smlal r10, r6, r3, lr
143 rsb r2, r2, #0 142 rsb r2, r2, #0
144 smull r10, r7, r3, r12 143 smlal r10, r6, lr, r3
145 smlal r10, r7, r2, lr 144 smull r10, r7, r12, r3
145 smlal r10, r7, lr, r2
146 mov r6, r6, asl #1 146 mov r6, r6, asl #1
147 mov r7, r7, asl #1 147 mov r7, r7, asl #1
148 148
@@ -151,8 +151,8 @@ mdct_butterfly_32:
151 151
152 ldr r11, =cPI2_8 152 ldr r11, =cPI2_8
153 smull r10, r8, r4, r11 153 smull r10, r8, r4, r11
154 mov r8, r8, asl #1
155 smull r10, r9, r5, r11 154 smull r10, r9, r5, r11
155 mov r8, r8, asl #1
156 mov r9, r9, asl #1 156 mov r9, r9, asl #1
157 157
158 stmia r0!, {r6, r7, r8, r9} 158 stmia r0!, {r6, r7, r8, r9}
@@ -170,11 +170,11 @@ mdct_butterfly_32:
170 170
171 stmia r1!, {r6, r7, r8, r9} 171 stmia r1!, {r6, r7, r8, r9}
172 172
173 smull r10, r6, r2, lr 173 smull r10, r6, lr, r2
174 smlal r10, r6, r3, r12
175 rsb r2, r2, #0 174 rsb r2, r2, #0
176 smull r10, r7, r3, lr 175 smlal r10, r6, r12, r3
177 smlal r10, r7, r2, r12 176 smull r10, r7, lr, r3
177 smlal r10, r7, r12, r2
178 mov r6, r6, asl #1 178 mov r6, r6, asl #1
179 mov r7, r7, asl #1 179 mov r7, r7, asl #1
180 180
@@ -195,11 +195,11 @@ mdct_butterfly_32:
195 195
196 stmia r1!, {r6, r7, r8, r9} 196 stmia r1!, {r6, r7, r8, r9}
197 197
198 smull r10, r7, r2, r12 198 smull r10, r7, lr, r3
199 smlal r10, r7, r3, lr
200 rsb r3, r3, #0 199 rsb r3, r3, #0
201 smull r10, r6, r3, r12 200 smlal r10, r7, r12, r2
202 smlal r10, r6, r2, lr 201 smull r10, r6, r12, r3
202 smlal r10, r6, lr, r2
203 mov r6, r6, asl #1 203 mov r6, r6, asl #1
204 mov r7, r7, asl #1 204 mov r7, r7, asl #1
205 205
@@ -207,9 +207,9 @@ mdct_butterfly_32:
207 add r5, r4, r5, asl #1 @ (x26 - x10) + (x27 - x11) 207 add r5, r4, r5, asl #1 @ (x26 - x10) + (x27 - x11)
208 208
209 ldr r11, =cPI2_8 209 ldr r11, =cPI2_8
210 smull r10, r8, r4, r11 210 smull r10, r8, r11, r4
211 smull r10, r9, r11, r5
211 mov r8, r8, asl #1 212 mov r8, r8, asl #1
212 smull r10, r9, r5, r11
213 mov r9, r9, asl #1 213 mov r9, r9, asl #1
214 214
215 stmia r0!, {r6, r7, r8, r9} 215 stmia r0!, {r6, r7, r8, r9}
@@ -227,11 +227,11 @@ mdct_butterfly_32:
227 227
228 stmia r1, {r6, r7, r8, r9} 228 stmia r1, {r6, r7, r8, r9}
229 229
230 smull r10, r7, r2, lr 230 smull r10, r7, r12, r3
231 smlal r10, r7, r3, r12
232 rsb r3, r3, #0 231 rsb r3, r3, #0
233 smull r10, r6, r3, lr 232 smlal r10, r7, lr, r2
234 smlal r10, r6, r2, r12 233 smull r10, r6, lr, r3
234 smlal r10, r6, r12, r2
235 mov r6, r6, asl #1 235 mov r6, r6, asl #1
236 mov r7, r7, asl #1 236 mov r7, r7, asl #1
237 237
@@ -270,11 +270,11 @@ mdct_butterfly_generic_loop:
270 stmdb r0!, {r6, r7, r8, r9} 270 stmdb r0!, {r6, r7, r8, r9}
271 271
272 ldmia r2, {r6, r7} 272 ldmia r2, {r6, r7}
273 smull r5, r8, r14, r6 273 smull r5, r8, r6, r14
274 smlal r5, r8, r12, r7
275 rsb r14, r14, #0 274 rsb r14, r14, #0
276 smull r5, r9, r12, r6 275 smlal r5, r8, r7, r12
277 smlal r5, r9, r14, r7 276 smull r5, r9, r6, r12
277 smlal r5, r9, r7, r14
278 278
279 mov r8, r8, asl #1 279 mov r8, r8, asl #1
280 mov r9, r9, asl #1 280 mov r9, r9, asl #1
@@ -282,11 +282,11 @@ mdct_butterfly_generic_loop:
282 add r2, r2, r3, asl #2 282 add r2, r2, r3, asl #2
283 283
284 ldmia r2, {r6, r7} 284 ldmia r2, {r6, r7}
285 smull r5, r8, r11, r6 285 smull r5, r8, r6, r11
286 smlal r5, r8, r10, r7
287 rsb r11, r11, #0 286 rsb r11, r11, #0
288 smull r5, r9, r10, r6 287 smlal r5, r8, r7, r10
289 smlal r5, r9, r11, r7 288 smull r5, r9, r6, r10
289 smlal r5, r9, r7, r11
290 290
291 mov r8, r8, asl #1 291 mov r8, r8, asl #1
292 mov r9, r9, asl #1 292 mov r9, r9, asl #1
@@ -313,11 +313,11 @@ mdct_butterfly_generic_loop:
313 stmdb r0!, {r6, r7, r8, r9} 313 stmdb r0!, {r6, r7, r8, r9}
314 314
315 ldmia r2, {r6, r7} 315 ldmia r2, {r6, r7}
316 smull r5, r9, r14, r6 316 smull r5, r9, r6, r14
317 smlal r5, r9, r12, r7
318 rsb r14, r14, #0 317 rsb r14, r14, #0
319 smull r5, r8, r12, r6 318 smlal r5, r9, r7, r12
320 smlal r5, r8, r14, r7 319 smull r5, r8, r6, r12
320 smlal r5, r8, r7, r14
321 321
322 mov r8, r8, asl #1 322 mov r8, r8, asl #1
323 mov r9, r9, asl #1 323 mov r9, r9, asl #1
@@ -325,11 +325,11 @@ mdct_butterfly_generic_loop:
325 sub r2, r2, r3, asl #2 325 sub r2, r2, r3, asl #2
326 326
327 ldmia r2, {r6, r7} 327 ldmia r2, {r6, r7}
328 smull r5, r9, r11, r6 328 smull r5, r9, r6, r11
329 smlal r5, r9, r10, r7
330 rsb r11, r11, #0 329 rsb r11, r11, #0
331 smull r5, r8, r10, r6 330 smlal r5, r9, r7, r10
332 smlal r5, r8, r11, r7 331 smull r5, r8, r6, r10
332 smlal r5, r8, r7, r11
333 333
334 mov r8, r8, asl #1 334 mov r8, r8, asl #1
335 mov r9, r9, asl #1 335 mov r9, r9, asl #1
@@ -356,11 +356,11 @@ mdct_butterfly_generic_loop:
356 stmdb r0!, {r6, r7, r8, r9} 356 stmdb r0!, {r6, r7, r8, r9}
357 357
358 ldmia r2, {r6, r7} 358 ldmia r2, {r6, r7}
359 smull r5, r8, r12, r6 359 smull r5, r8, r6, r12
360 smlal r5, r8, r14, r7
361 rsb r12, r12, #0 360 rsb r12, r12, #0
362 smull r5, r9, r14, r6 361 smlal r5, r8, r7, r14
363 smlal r5, r9, r12, r7 362 smull r5, r9, r6, r14
363 smlal r5, r9, r7, r12
364 364
365 mov r8, r8, asl #1 365 mov r8, r8, asl #1
366 mov r9, r9, asl #1 366 mov r9, r9, asl #1
@@ -368,11 +368,11 @@ mdct_butterfly_generic_loop:
368 add r2, r2, r3, asl #2 368 add r2, r2, r3, asl #2
369 369
370 ldmia r2, {r6, r7} 370 ldmia r2, {r6, r7}
371 smull r5, r8, r10, r6 371 smull r5, r8, r6, r10
372 smlal r5, r8, r11, r7
373 rsb r10, r10, #0 372 rsb r10, r10, #0
374 smull r5, r9, r11, r6 373 smlal r5, r8, r7, r11
375 smlal r5, r9, r10, r7 374 smull r5, r9, r6, r11
375 smlal r5, r9, r7, r10
376 376
377 mov r8, r8, asl #1 377 mov r8, r8, asl #1
378 mov r9, r9, asl #1 378 mov r9, r9, asl #1
@@ -399,11 +399,11 @@ mdct_butterfly_generic_loop:
399 stmdb r0!, {r6, r7, r8, r9} 399 stmdb r0!, {r6, r7, r8, r9}
400 400
401 ldmia r2, {r6, r7} 401 ldmia r2, {r6, r7}
402 smull r5, r9, r12, r6 402 smull r5, r9, r6, r12
403 smlal r5, r9, r14, r7 403 smlal r5, r9, r7, r14
404 rsb r12, r12, #0 404 rsb r12, r12, #0
405 smull r5, r8, r14, r6 405 smull r5, r8, r6, r14
406 smlal r5, r8, r12, r7 406 smlal r5, r8, r7, r12
407 407
408 mov r8, r8, asl #1 408 mov r8, r8, asl #1
409 mov r9, r9, asl #1 409 mov r9, r9, asl #1
@@ -411,11 +411,11 @@ mdct_butterfly_generic_loop:
411 sub r2, r2, r3, asl #2 411 sub r2, r2, r3, asl #2
412 412
413 ldmia r2, {r6, r7} 413 ldmia r2, {r6, r7}
414 smull r5, r9, r10, r6 414 smull r5, r9, r6, r10
415 smlal r5, r9, r11, r7
416 rsb r10, r10, #0 415 rsb r10, r10, #0
417 smull r5, r8, r11, r6 416 smlal r5, r9, r7, r11
418 smlal r5, r8, r10, r7 417 smull r5, r8, r6, r11
418 smlal r5, r8, r7, r10
419 419
420 mov r8, r8, asl #1 420 mov r8, r8, asl #1
421 mov r9, r9, asl #1 421 mov r9, r9, asl #1