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