comparison arm/dsputil_armv6.S @ 11443:361a5fcb4393 libavcodec

ARM: set size of asm functions in object files
author mru
date Tue, 09 Mar 2010 16:17:56 +0000
parents cbf3161706f4
children
comparison
equal deleted inserted replaced
11442:fe32d9ba1c86 11443:361a5fcb4393
30 bl ff_\type\()_pixels8\subp\()_armv6 30 bl ff_\type\()_pixels8\subp\()_armv6
31 pop {r0-r3, lr} 31 pop {r0-r3, lr}
32 add r0, r0, #8 32 add r0, r0, #8
33 add r1, r1, #8 33 add r1, r1, #8
34 b ff_\type\()_pixels8\subp\()_armv6 34 b ff_\type\()_pixels8\subp\()_armv6
35 .endfunc 35 endfunc
36 .endm 36 .endm
37 37
38 call_2x_pixels avg 38 call_2x_pixels avg
39 call_2x_pixels put, _x2 39 call_2x_pixels put, _x2
40 call_2x_pixels put, _y2 40 call_2x_pixels put, _y2
59 strd r8, r9, [r0], r2 59 strd r8, r9, [r0], r2
60 bne 1b 60 bne 1b
61 61
62 pop {r4-r11} 62 pop {r4-r11}
63 bx lr 63 bx lr
64 .endfunc 64 endfunc
65 65
66 function ff_put_pixels8_armv6, export=1 66 function ff_put_pixels8_armv6, export=1
67 push {r4-r7} 67 push {r4-r7}
68 1: 68 1:
69 ldr r5, [r1, #4] 69 ldr r5, [r1, #4]
75 strd r6, r7, [r0], r2 75 strd r6, r7, [r0], r2
76 bne 1b 76 bne 1b
77 77
78 pop {r4-r7} 78 pop {r4-r7}
79 bx lr 79 bx lr
80 .endfunc 80 endfunc
81 81
82 function ff_put_pixels8_x2_armv6, export=1 82 function ff_put_pixels8_x2_armv6, export=1
83 push {r4-r11, lr} 83 push {r4-r11, lr}
84 mov r12, #1 84 mov r12, #1
85 orr r12, r12, r12, lsl #8 85 orr r12, r12, r12, lsl #8
116 uadd8 r9, r9, r6 116 uadd8 r9, r9, r6
117 strd r8, r9, [r0], r2 117 strd r8, r9, [r0], r2
118 bne 1b 118 bne 1b
119 119
120 pop {r4-r11, pc} 120 pop {r4-r11, pc}
121 .endfunc 121 endfunc
122 122
123 function ff_put_pixels8_y2_armv6, export=1 123 function ff_put_pixels8_y2_armv6, export=1
124 push {r4-r11} 124 push {r4-r11}
125 mov r12, #1 125 mov r12, #1
126 orr r12, r12, r12, lsl #8 126 orr r12, r12, r12, lsl #8
155 strd r10, r11, [r0], r2 155 strd r10, r11, [r0], r2
156 bne 1b 156 bne 1b
157 157
158 pop {r4-r11} 158 pop {r4-r11}
159 bx lr 159 bx lr
160 .endfunc 160 endfunc
161 161
162 function ff_put_pixels8_x2_no_rnd_armv6, export=1 162 function ff_put_pixels8_x2_no_rnd_armv6, export=1
163 push {r4-r9, lr} 163 push {r4-r9, lr}
164 1: 164 1:
165 subs r3, r3, #2 165 subs r3, r3, #2
183 stm r0, {r8,r9} 183 stm r0, {r8,r9}
184 add r0, r0, r2 184 add r0, r0, r2
185 bne 1b 185 bne 1b
186 186
187 pop {r4-r9, pc} 187 pop {r4-r9, pc}
188 .endfunc 188 endfunc
189 189
190 function ff_put_pixels8_y2_no_rnd_armv6, export=1 190 function ff_put_pixels8_y2_no_rnd_armv6, export=1
191 push {r4-r9, lr} 191 push {r4-r9, lr}
192 ldr r4, [r1] 192 ldr r4, [r1]
193 ldr r5, [r1, #4] 193 ldr r5, [r1, #4]
208 stm r0, {r12,r14} 208 stm r0, {r12,r14}
209 add r0, r0, r2 209 add r0, r0, r2
210 bne 1b 210 bne 1b
211 211
212 pop {r4-r9, pc} 212 pop {r4-r9, pc}
213 .endfunc 213 endfunc
214 214
215 function ff_avg_pixels8_armv6, export=1 215 function ff_avg_pixels8_armv6, export=1
216 pld [r1, r2] 216 pld [r1, r2]
217 push {r4-r10, lr} 217 push {r4-r10, lr}
218 mov lr, #1 218 mov lr, #1
258 uadd8 r6, r6, r8 258 uadd8 r6, r6, r8
259 uadd8 r7, r7, r12 259 uadd8 r7, r7, r12
260 strd r6, r7, [r0], r2 260 strd r6, r7, [r0], r2
261 261
262 pop {r4-r10, pc} 262 pop {r4-r10, pc}
263 .endfunc 263 endfunc
264 264
265 function ff_add_pixels_clamped_armv6, export=1 265 function ff_add_pixels_clamped_armv6, export=1
266 push {r4-r8,lr} 266 push {r4-r8,lr}
267 mov r3, #8 267 mov r3, #8
268 1: 268 1:
285 orr r7, r4, lr, lsl #8 285 orr r7, r4, lr, lsl #8
286 subs r3, r3, #1 286 subs r3, r3, #1
287 strd r6, r7, [r1], r2 287 strd r6, r7, [r1], r2
288 bgt 1b 288 bgt 1b
289 pop {r4-r8,pc} 289 pop {r4-r8,pc}
290 .endfunc 290 endfunc
291 291
292 function ff_get_pixels_armv6, export=1 292 function ff_get_pixels_armv6, export=1
293 pld [r1, r2] 293 pld [r1, r2]
294 push {r4-r8, lr} 294 push {r4-r8, lr}
295 mov lr, #8 295 mov lr, #8
307 pkhtb r12, r8, r12, asr #16 307 pkhtb r12, r8, r12, asr #16
308 stm r0!, {r5,r6,r7,r12} 308 stm r0!, {r5,r6,r7,r12}
309 bgt 1b 309 bgt 1b
310 310
311 pop {r4-r8, pc} 311 pop {r4-r8, pc}
312 .endfunc 312 endfunc
313 313
314 function ff_diff_pixels_armv6, export=1 314 function ff_diff_pixels_armv6, export=1
315 pld [r1, r3] 315 pld [r1, r3]
316 pld [r2, r3] 316 pld [r2, r3]
317 push {r4-r9, lr} 317 push {r4-r9, lr}
340 pkhtb r9, r5, r9, asr #16 340 pkhtb r9, r5, r9, asr #16
341 stm r0!, {r4,r6,r8,r9} 341 stm r0!, {r4,r6,r8,r9}
342 bgt 1b 342 bgt 1b
343 343
344 pop {r4-r9, pc} 344 pop {r4-r9, pc}
345 .endfunc 345 endfunc
346 346
347 function ff_pix_abs16_armv6, export=1 347 function ff_pix_abs16_armv6, export=1
348 ldr r0, [sp] 348 ldr r0, [sp]
349 push {r4-r9, lr} 349 push {r4-r9, lr}
350 mov r12, #0 350 mov r12, #0
369 ldr r8, [r2] 369 ldr r8, [r2]
370 b 1b 370 b 1b
371 2: 371 2:
372 add r0, r12, lr 372 add r0, r12, lr
373 pop {r4-r9, pc} 373 pop {r4-r9, pc}
374 .endfunc 374 endfunc
375 375
376 function ff_pix_abs16_x2_armv6, export=1 376 function ff_pix_abs16_x2_armv6, export=1
377 ldr r12, [sp] 377 ldr r12, [sp]
378 push {r4-r11, lr} 378 push {r4-r11, lr}
379 mov r0, #0 379 mov r0, #0
424 add r2, r2, r3 424 add r2, r2, r3
425 usada8 r0, r5, r9, r0 425 usada8 r0, r5, r9, r0
426 bgt 1b 426 bgt 1b
427 427
428 pop {r4-r11, pc} 428 pop {r4-r11, pc}
429 .endfunc 429 endfunc
430 430
431 .macro usad_y2 p0, p1, p2, p3, n0, n1, n2, n3 431 .macro usad_y2 p0, p1, p2, p3, n0, n1, n2, n3
432 ldr \n0, [r2] 432 ldr \n0, [r2]
433 eor \n1, \p0, \n0 433 eor \n1, \p0, \n0
434 uhadd8 \p0, \p0, \n0 434 uhadd8 \p0, \p0, \n0
482 subs r12, r12, #2 482 subs r12, r12, #2
483 usad_y2 r8, r9, r10, r11, r4, r5, r6, r7 483 usad_y2 r8, r9, r10, r11, r4, r5, r6, r7
484 bgt 1b 484 bgt 1b
485 485
486 pop {r4-r11, pc} 486 pop {r4-r11, pc}
487 .endfunc 487 endfunc
488 488
489 function ff_pix_abs8_armv6, export=1 489 function ff_pix_abs8_armv6, export=1
490 pld [r2, r3] 490 pld [r2, r3]
491 ldr r12, [sp] 491 ldr r12, [sp]
492 push {r4-r9, lr} 492 push {r4-r9, lr}
512 2: 512 2:
513 usada8 r0, r8, r6, r0 513 usada8 r0, r8, r6, r0
514 usada8 lr, r9, r7, lr 514 usada8 lr, r9, r7, lr
515 add r0, r0, lr 515 add r0, r0, lr
516 pop {r4-r9, pc} 516 pop {r4-r9, pc}
517 .endfunc 517 endfunc
518 518
519 function ff_sse16_armv6, export=1 519 function ff_sse16_armv6, export=1
520 ldr r12, [sp] 520 ldr r12, [sp]
521 push {r4-r9, lr} 521 push {r4-r9, lr}
522 mov r0, #0 522 mov r0, #0
563 subs r12, r12, #1 563 subs r12, r12, #1
564 smlad r0, r5, r5, r0 564 smlad r0, r5, r5, r0
565 bgt 1b 565 bgt 1b
566 566
567 pop {r4-r9, pc} 567 pop {r4-r9, pc}
568 .endfunc 568 endfunc
569 569
570 function ff_pix_norm1_armv6, export=1 570 function ff_pix_norm1_armv6, export=1
571 push {r4-r6, lr} 571 push {r4-r6, lr}
572 mov r12, #16 572 mov r12, #16
573 mov lr, #0 573 mov lr, #0
593 smlad lr, r5, r5, lr 593 smlad lr, r5, r5, lr
594 bgt 1b 594 bgt 1b
595 595
596 mov r0, lr 596 mov r0, lr
597 pop {r4-r6, pc} 597 pop {r4-r6, pc}
598 .endfunc 598 endfunc
599 599
600 function ff_pix_sum_armv6, export=1 600 function ff_pix_sum_armv6, export=1
601 push {r4-r7, lr} 601 push {r4-r7, lr}
602 mov r12, #16 602 mov r12, #16
603 mov r2, #0 603 mov r2, #0
618 bgt 1b 618 bgt 1b
619 2: 619 2:
620 usada8 r3, r7, lr, r3 620 usada8 r3, r7, lr, r3
621 add r0, r2, r3 621 add r0, r2, r3
622 pop {r4-r7, pc} 622 pop {r4-r7, pc}
623 .endfunc 623 endfunc