Mercurial > libavcodec.hg
comparison arm/dsputil_arm.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 | a6ff6fb10ff5 |
children |
comparison
equal
deleted
inserted
replaced
11442:fe32d9ba1c86 | 11443:361a5fcb4393 |
---|---|
34 subs r2, r2, #1 | 34 subs r2, r2, #1 |
35 pld [r0] | 35 pld [r0] |
36 add r0, r0, r1 | 36 add r0, r0, r1 |
37 bne ff_prefetch_arm | 37 bne ff_prefetch_arm |
38 bx lr | 38 bx lr |
39 .endfunc | 39 endfunc |
40 #endif | 40 #endif |
41 | 41 |
42 .macro ALIGN_QWORD_D shift, Rd0, Rd1, Rd2, Rd3, Rn0, Rn1, Rn2, Rn3, Rn4 | 42 .macro ALIGN_QWORD_D shift, Rd0, Rd1, Rd2, Rd3, Rn0, Rn1, Rn2, Rn3, Rn4 |
43 mov \Rd0, \Rn0, lsr #(\shift * 8) | 43 mov \Rd0, \Rn0, lsr #(\shift * 8) |
44 mov \Rd1, \Rn1, lsr #(\shift * 8) | 44 mov \Rd1, \Rn1, lsr #(\shift * 8) |
149 subs r3, r3, #1 | 149 subs r3, r3, #1 |
150 stm r0, {r9-r12} | 150 stm r0, {r9-r12} |
151 add r0, r0, r2 | 151 add r0, r0, r2 |
152 bne 4b | 152 bne 4b |
153 pop {r4-r11,pc} | 153 pop {r4-r11,pc} |
154 .endfunc | 154 endfunc |
155 | 155 |
156 @ ---------------------------------------------------------------- | 156 @ ---------------------------------------------------------------- |
157 .align 5 | 157 .align 5 |
158 function ff_put_pixels8_arm, export=1 | 158 function ff_put_pixels8_arm, export=1 |
159 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 159 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
201 subs r3, r3, #1 | 201 subs r3, r3, #1 |
202 stm r0, {r4-r5} | 202 stm r0, {r4-r5} |
203 add r0, r0, r2 | 203 add r0, r0, r2 |
204 bne 4b | 204 bne 4b |
205 pop {r4-r5,pc} | 205 pop {r4-r5,pc} |
206 .endfunc | 206 endfunc |
207 | 207 |
208 @ ---------------------------------------------------------------- | 208 @ ---------------------------------------------------------------- |
209 .align 5 | 209 .align 5 |
210 function ff_put_pixels8_x2_arm, export=1 | 210 function ff_put_pixels8_x2_arm, export=1 |
211 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 211 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
261 subs r3, r3, #1 | 261 subs r3, r3, #1 |
262 stm r0, {r8-r9} | 262 stm r0, {r8-r9} |
263 add r0, r0, r2 | 263 add r0, r0, r2 |
264 bne 4b | 264 bne 4b |
265 pop {r4-r10,pc} | 265 pop {r4-r10,pc} |
266 .endfunc | 266 endfunc |
267 | 267 |
268 .align 5 | 268 .align 5 |
269 function ff_put_no_rnd_pixels8_x2_arm, export=1 | 269 function ff_put_no_rnd_pixels8_x2_arm, export=1 |
270 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 270 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
271 @ block = word aligned, pixles = unaligned | 271 @ block = word aligned, pixles = unaligned |
320 subs r3, r3, #1 | 320 subs r3, r3, #1 |
321 stm r0, {r8-r9} | 321 stm r0, {r8-r9} |
322 add r0, r0, r2 | 322 add r0, r0, r2 |
323 bne 4b | 323 bne 4b |
324 pop {r4-r10,pc} | 324 pop {r4-r10,pc} |
325 .endfunc | 325 endfunc |
326 | 326 |
327 | 327 |
328 @ ---------------------------------------------------------------- | 328 @ ---------------------------------------------------------------- |
329 .align 5 | 329 .align 5 |
330 function ff_put_pixels8_y2_arm, export=1 | 330 function ff_put_pixels8_y2_arm, export=1 |
420 RND_AVG32 r10, r11, r7, r8, r4, r5, r12 | 420 RND_AVG32 r10, r11, r7, r8, r4, r5, r12 |
421 stm r0, {r10-r11} | 421 stm r0, {r10-r11} |
422 add r0, r0, r2 | 422 add r0, r0, r2 |
423 bne 6b | 423 bne 6b |
424 pop {r4-r11,pc} | 424 pop {r4-r11,pc} |
425 .endfunc | 425 endfunc |
426 | 426 |
427 .align 5 | 427 .align 5 |
428 function ff_put_no_rnd_pixels8_y2_arm, export=1 | 428 function ff_put_no_rnd_pixels8_y2_arm, export=1 |
429 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 429 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
430 @ block = word aligned, pixles = unaligned | 430 @ block = word aligned, pixles = unaligned |
518 NO_RND_AVG32 r10, r11, r7, r8, r4, r5, r12 | 518 NO_RND_AVG32 r10, r11, r7, r8, r4, r5, r12 |
519 stm r0, {r10-r11} | 519 stm r0, {r10-r11} |
520 add r0, r0, r2 | 520 add r0, r0, r2 |
521 bne 6b | 521 bne 6b |
522 pop {r4-r11,pc} | 522 pop {r4-r11,pc} |
523 .endfunc | 523 endfunc |
524 | 524 |
525 .ltorg | 525 .ltorg |
526 | 526 |
527 @ ---------------------------------------------------------------- | 527 @ ---------------------------------------------------------------- |
528 .macro RND_XY2_IT align, rnd | 528 .macro RND_XY2_IT align, rnd |
601 2: RND_XY2_EXPAND 1, lsl | 601 2: RND_XY2_EXPAND 1, lsl |
602 .align 5 | 602 .align 5 |
603 3: RND_XY2_EXPAND 2, lsl | 603 3: RND_XY2_EXPAND 2, lsl |
604 .align 5 | 604 .align 5 |
605 4: RND_XY2_EXPAND 3, lsl | 605 4: RND_XY2_EXPAND 3, lsl |
606 .endfunc | 606 endfunc |
607 | 607 |
608 .align 5 | 608 .align 5 |
609 function ff_put_no_rnd_pixels8_xy2_arm, export=1 | 609 function ff_put_no_rnd_pixels8_xy2_arm, export=1 |
610 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 610 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
611 @ block = word aligned, pixles = unaligned | 611 @ block = word aligned, pixles = unaligned |
617 2: RND_XY2_EXPAND 1, lsr | 617 2: RND_XY2_EXPAND 1, lsr |
618 .align 5 | 618 .align 5 |
619 3: RND_XY2_EXPAND 2, lsr | 619 3: RND_XY2_EXPAND 2, lsr |
620 .align 5 | 620 .align 5 |
621 4: RND_XY2_EXPAND 3, lsr | 621 4: RND_XY2_EXPAND 3, lsr |
622 .endfunc | 622 endfunc |
623 | 623 |
624 .align 5 | 624 .align 5 |
625 @ void ff_add_pixels_clamped_arm(int16_t *block, uint8_t *dest, int stride) | 625 @ void ff_add_pixels_clamped_arm(int16_t *block, uint8_t *dest, int stride) |
626 function ff_add_pixels_clamped_arm, export=1 | 626 function ff_add_pixels_clamped_arm, export=1 |
627 push {r4-r10} | 627 push {r4-r10} |
707 add r1, r1, r2 | 707 add r1, r1, r2 |
708 bne 1b | 708 bne 1b |
709 | 709 |
710 pop {r4-r10} | 710 pop {r4-r10} |
711 bx lr | 711 bx lr |
712 .endfunc | 712 endfunc |