Mercurial > libavcodec.hg
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 |