Mercurial > libavcodec.hg
comparison armv4l/dsputil_arm_s.S @ 8069:316762ae96a7 libavcodec
ARM: use new macros for assembler function labels
author | mru |
---|---|
date | Mon, 27 Oct 2008 00:25:09 +0000 |
parents | 28d0e7dac45d |
children | 59be7e4941e8 |
comparison
equal
deleted
inserted
replaced
8068:923c713c0c48 | 8069:316762ae96a7 |
---|---|
18 @ License along with FFmpeg; if not, write to the Free Software | 18 @ License along with FFmpeg; if not, write to the Free Software |
19 @ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | 19 @ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
20 @ | 20 @ |
21 | 21 |
22 #include "config.h" | 22 #include "config.h" |
23 #include "asm.S" | |
23 | 24 |
24 #ifndef HAVE_PLD | 25 #ifndef HAVE_PLD |
25 .macro pld reg | 26 .macro pld reg |
26 .endm | 27 .endm |
27 #endif | 28 #endif |
77 add \Rd1, \Rn1, \Rd1, lsr #1 | 78 add \Rd1, \Rn1, \Rd1, lsr #1 |
78 .endm | 79 .endm |
79 | 80 |
80 @ ---------------------------------------------------------------- | 81 @ ---------------------------------------------------------------- |
81 .align 8 | 82 .align 8 |
82 .global put_pixels16_arm | 83 function put_pixels16_arm, export=1 |
83 put_pixels16_arm: | |
84 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 84 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
85 @ block = word aligned, pixles = unaligned | 85 @ block = word aligned, pixles = unaligned |
86 pld [r1] | 86 pld [r1] |
87 stmfd sp!, {r4-r11, lr} @ R14 is also called LR | 87 stmfd sp!, {r4-r11, lr} @ R14 is also called LR |
88 adr r5, 5f | 88 adr r5, 5f |
136 5: | 136 5: |
137 .word 1b | 137 .word 1b |
138 .word 2b | 138 .word 2b |
139 .word 3b | 139 .word 3b |
140 .word 4b | 140 .word 4b |
141 .endfunc | |
141 | 142 |
142 @ ---------------------------------------------------------------- | 143 @ ---------------------------------------------------------------- |
143 .align 8 | 144 .align 8 |
144 .global put_pixels8_arm | 145 function put_pixels8_arm, export=1 |
145 put_pixels8_arm: | |
146 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 146 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
147 @ block = word aligned, pixles = unaligned | 147 @ block = word aligned, pixles = unaligned |
148 pld [r1] | 148 pld [r1] |
149 stmfd sp!, {r4-r5,lr} @ R14 is also called LR | 149 stmfd sp!, {r4-r5,lr} @ R14 is also called LR |
150 adr r5, 5f | 150 adr r5, 5f |
198 5: | 198 5: |
199 .word 1b | 199 .word 1b |
200 .word 2b | 200 .word 2b |
201 .word 3b | 201 .word 3b |
202 .word 4b | 202 .word 4b |
203 .endfunc | |
203 | 204 |
204 @ ---------------------------------------------------------------- | 205 @ ---------------------------------------------------------------- |
205 .align 8 | 206 .align 8 |
206 .global put_pixels8_x2_arm | 207 function put_pixels8_x2_arm, export=1 |
207 put_pixels8_x2_arm: | |
208 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 208 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
209 @ block = word aligned, pixles = unaligned | 209 @ block = word aligned, pixles = unaligned |
210 pld [r1] | 210 pld [r1] |
211 stmfd sp!, {r4-r10,lr} @ R14 is also called LR | 211 stmfd sp!, {r4-r10,lr} @ R14 is also called LR |
212 adr r5, 5f | 212 adr r5, 5f |
268 5: | 268 5: |
269 .word 0xFEFEFEFE | 269 .word 0xFEFEFEFE |
270 .word 2b | 270 .word 2b |
271 .word 3b | 271 .word 3b |
272 .word 4b | 272 .word 4b |
273 | 273 .endfunc |
274 .align 8 | 274 |
275 .global put_no_rnd_pixels8_x2_arm | 275 .align 8 |
276 put_no_rnd_pixels8_x2_arm: | 276 function put_no_rnd_pixels8_x2_arm, export=1 |
277 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 277 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
278 @ block = word aligned, pixles = unaligned | 278 @ block = word aligned, pixles = unaligned |
279 pld [r1] | 279 pld [r1] |
280 stmfd sp!, {r4-r10,lr} @ R14 is also called LR | 280 stmfd sp!, {r4-r10,lr} @ R14 is also called LR |
281 adr r5, 5f | 281 adr r5, 5f |
337 5: | 337 5: |
338 .word 0xFEFEFEFE | 338 .word 0xFEFEFEFE |
339 .word 2b | 339 .word 2b |
340 .word 3b | 340 .word 3b |
341 .word 4b | 341 .word 4b |
342 .endfunc | |
342 | 343 |
343 | 344 |
344 @ ---------------------------------------------------------------- | 345 @ ---------------------------------------------------------------- |
345 .align 8 | 346 .align 8 |
346 .global put_pixels8_y2_arm | 347 function put_pixels8_y2_arm, export=1 |
347 put_pixels8_y2_arm: | |
348 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 348 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
349 @ block = word aligned, pixles = unaligned | 349 @ block = word aligned, pixles = unaligned |
350 pld [r1] | 350 pld [r1] |
351 stmfd sp!, {r4-r11,lr} @ R14 is also called LR | 351 stmfd sp!, {r4-r11,lr} @ R14 is also called LR |
352 adr r5, 5f | 352 adr r5, 5f |
448 5: | 448 5: |
449 .word 0xFEFEFEFE | 449 .word 0xFEFEFEFE |
450 .word 2b | 450 .word 2b |
451 .word 3b | 451 .word 3b |
452 .word 4b | 452 .word 4b |
453 | 453 .endfunc |
454 .align 8 | 454 |
455 .global put_no_rnd_pixels8_y2_arm | 455 .align 8 |
456 put_no_rnd_pixels8_y2_arm: | 456 function put_no_rnd_pixels8_y2_arm, export=1 |
457 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 457 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
458 @ block = word aligned, pixles = unaligned | 458 @ block = word aligned, pixles = unaligned |
459 pld [r1] | 459 pld [r1] |
460 stmfd sp!, {r4-r11,lr} @ R14 is also called LR | 460 stmfd sp!, {r4-r11,lr} @ R14 is also called LR |
461 adr r5, 5f | 461 adr r5, 5f |
556 5: | 556 5: |
557 .word 0xFEFEFEFE | 557 .word 0xFEFEFEFE |
558 .word 2b | 558 .word 2b |
559 .word 3b | 559 .word 3b |
560 .word 4b | 560 .word 4b |
561 .endfunc | |
561 | 562 |
562 @ ---------------------------------------------------------------- | 563 @ ---------------------------------------------------------------- |
563 .macro RND_XY2_IT align | 564 .macro RND_XY2_IT align |
564 @ l1= (a & 0x03030303) + (b & 0x03030303) ?(+ 0x02020202) | 565 @ l1= (a & 0x03030303) + (b & 0x03030303) ?(+ 0x02020202) |
565 @ h1= ((a & 0xFCFCFCFCUL) >> 2) + ((b & 0xFCFCFCFCUL) >> 2) | 566 @ h1= ((a & 0xFCFCFCFCUL) >> 2) + ((b & 0xFCFCFCFCUL) >> 2) |
623 bge 6b | 624 bge 6b |
624 ldmfd sp!, {r4-r11,pc} | 625 ldmfd sp!, {r4-r11,pc} |
625 .endm | 626 .endm |
626 | 627 |
627 .align 8 | 628 .align 8 |
628 .global put_pixels8_xy2_arm | 629 function put_pixels8_xy2_arm, export=1 |
629 put_pixels8_xy2_arm: | |
630 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 630 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
631 @ block = word aligned, pixles = unaligned | 631 @ block = word aligned, pixles = unaligned |
632 pld [r1] | 632 pld [r1] |
633 stmfd sp!, {r4-r11,lr} @ R14 is also called LR | 633 stmfd sp!, {r4-r11,lr} @ R14 is also called LR |
634 adrl r12, 5f | 634 adrl r12, 5f |
657 .word 3b | 657 .word 3b |
658 .word 4b | 658 .word 4b |
659 .word 0x02020202 | 659 .word 0x02020202 |
660 .word 0xFCFCFCFC >> 2 | 660 .word 0xFCFCFCFC >> 2 |
661 .word 0x0F0F0F0F | 661 .word 0x0F0F0F0F |
662 | 662 .endfunc |
663 .align 8 | 663 |
664 .global put_no_rnd_pixels8_xy2_arm | 664 .align 8 |
665 put_no_rnd_pixels8_xy2_arm: | 665 function put_no_rnd_pixels8_xy2_arm, export=1 |
666 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) | 666 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) |
667 @ block = word aligned, pixles = unaligned | 667 @ block = word aligned, pixles = unaligned |
668 pld [r1] | 668 pld [r1] |
669 stmfd sp!, {r4-r11,lr} @ R14 is also called LR | 669 stmfd sp!, {r4-r11,lr} @ R14 is also called LR |
670 adrl r12, 5f | 670 adrl r12, 5f |
693 .word 3b | 693 .word 3b |
694 .word 4b | 694 .word 4b |
695 .word 0x01010101 | 695 .word 0x01010101 |
696 .word 0xFCFCFCFC >> 2 | 696 .word 0xFCFCFCFC >> 2 |
697 .word 0x0F0F0F0F | 697 .word 0x0F0F0F0F |
698 .endfunc |