root / trunk / data / ffmpeg_ / assembler.diff
| Revision 290, 16.4 kB (checked in by saurik, 7 months ago) |
|---|
-
libavcodec/armv4l/dsputil_arm_s.S
diff -ru ffmpeg-export-2008-02-26/libavcodec/armv4l/dsputil_arm_s.S ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/dsputil_arm_s.S
old new 72 72 73 73 @ ---------------------------------------------------------------- 74 74 .align 8 75 .global put_pixels16_arm76 put_pixels16_arm:75 .global _put_pixels16_arm 76 _put_pixels16_arm: 77 77 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) 78 78 @ block = word aligned, pixles = unaligned 79 79 pld [r1] … … 134 134 135 135 @ ---------------------------------------------------------------- 136 136 .align 8 137 .global put_pixels8_arm138 put_pixels8_arm:137 .global _put_pixels8_arm 138 _put_pixels8_arm: 139 139 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) 140 140 @ block = word aligned, pixles = unaligned 141 141 pld [r1] … … 196 196 197 197 @ ---------------------------------------------------------------- 198 198 .align 8 199 .global put_pixels8_x2_arm200 put_pixels8_x2_arm:199 .global _put_pixels8_x2_arm 200 _put_pixels8_x2_arm: 201 201 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) 202 202 @ block = word aligned, pixles = unaligned 203 203 pld [r1] … … 265 265 .word 4b 266 266 267 267 .align 8 268 .global put_no_rnd_pixels8_x2_arm269 put_no_rnd_pixels8_x2_arm:268 .global _put_no_rnd_pixels8_x2_arm 269 _put_no_rnd_pixels8_x2_arm: 270 270 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) 271 271 @ block = word aligned, pixles = unaligned 272 272 pld [r1] … … 336 336 337 337 @ ---------------------------------------------------------------- 338 338 .align 8 339 .global put_pixels8_y2_arm340 put_pixels8_y2_arm:339 .global _put_pixels8_y2_arm 340 _put_pixels8_y2_arm: 341 341 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) 342 342 @ block = word aligned, pixles = unaligned 343 343 pld [r1] … … 445 445 .word 4b 446 446 447 447 .align 8 448 .global put_no_rnd_pixels8_y2_arm449 put_no_rnd_pixels8_y2_arm:448 .global _put_no_rnd_pixels8_y2_arm 449 _put_no_rnd_pixels8_y2_arm: 450 450 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) 451 451 @ block = word aligned, pixles = unaligned 452 452 pld [r1] … … 618 618 .endm 619 619 620 620 .align 8 621 .global put_pixels8_xy2_arm622 put_pixels8_xy2_arm:621 .global _put_pixels8_xy2_arm 622 _put_pixels8_xy2_arm: 623 623 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) 624 624 @ block = word aligned, pixles = unaligned 625 625 pld [r1] … … 654 654 .word 0x0F0F0F0F 655 655 656 656 .align 8 657 .global put_no_rnd_pixels8_xy2_arm658 put_no_rnd_pixels8_xy2_arm:657 .global _put_no_rnd_pixels8_xy2_arm 658 _put_no_rnd_pixels8_xy2_arm: 659 659 @ void func(uint8_t *block, const uint8_t *pixels, int line_size, int h) 660 660 @ block = word aligned, pixles = unaligned 661 661 pld [r1] -
libavcodec/armv4l/jrevdct_arm.S
diff -ru ffmpeg-export-2008-02-26/libavcodec/armv4l/jrevdct_arm.S ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/jrevdct_arm.S
old new 54 54 .text 55 55 .align 56 56 57 .global j_rev_dct_ARM58 j_rev_dct_ARM:57 .global _j_rev_dct_ARM 58 _j_rev_dct_ARM: 59 59 stmdb sp!, { r4 - r12, lr } @ all callee saved regs 60 60 61 61 sub sp, sp, #4 @ reserve some space on the stack -
libavcodec/armv4l/simple_idct_arm.S
diff -ru ffmpeg-export-2008-02-26/libavcodec/armv4l/simple_idct_arm.S ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/simple_idct_arm.S
old new 54 54 55 55 .text 56 56 .align 57 .global simple_idct_ARM57 .global _simple_idct_ARM 58 58 59 simple_idct_ARM:59 _simple_idct_ARM: 60 60 @@ void simple_idct_ARM(int16_t *block) 61 61 @@ save stack for reg needed (take all of them), 62 62 @@ R0-R3 are scratch regs, so no need to save them, but R0 contains the pointer to block -
libavcodec/armv4l/simple_idct_armv5te.S
diff -ru ffmpeg-export-2008-02-26/libavcodec/armv4l/simple_idct_armv5te.S ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/simple_idct_armv5te.S
old new 42 42 w57: .long W57 43 43 44 44 .align 45 .type idct_row_armv5te, %function46 .func idct_row_armv5te47 idct_row_armv5te:45 @.type idct_row_armv5te, %function 46 @.func idct_row_armv5te 47 _idct_row_armv5te: 48 48 str lr, [sp, #-4]! 49 49 50 50 ldrd v1, [a1, #8] … … 148 148 strd a3, [a1, #8] 149 149 150 150 ldr pc, [sp], #4 151 .endfunc151 @.endfunc 152 152 153 153 .macro idct_col 154 154 ldr a4, [a1] /* a4 = col[1:0] */ … … 263 263 .endm 264 264 265 265 .align 266 .type idct_col_armv5te, %function267 .func idct_col_armv5te268 idct_col_armv5te:266 @.type idct_col_armv5te, %function 267 @.func idct_col_armv5te 268 _idct_col_armv5te: 269 269 str lr, [sp, #-4]! 270 270 271 271 idct_col … … 335 335 str a2, [a1, #(16*4)] 336 336 337 337 ldr pc, [sp], #4 338 .endfunc338 @.endfunc 339 339 340 340 .align 341 .type idct_col_put_armv5te, %function342 .func idct_col_put_armv5te343 idct_col_put_armv5te:341 @.type idct_col_put_armv5te, %function 342 @.func idct_col_put_armv5te 343 _idct_col_put_armv5te: 344 344 str lr, [sp, #-4]! 345 345 346 346 idct_col … … 455 455 strh a2, [v2, -lr] 456 456 457 457 ldr pc, [sp], #4 458 .endfunc458 @.endfunc 459 459 460 460 .align 461 .type idct_col_add_armv5te, %function462 .func idct_col_add_armv5te463 idct_col_add_armv5te:461 @.type idct_col_add_armv5te, %function 462 @.func idct_col_add_armv5te 463 _idct_col_add_armv5te: 464 464 str lr, [sp, #-4]! 465 465 466 466 idct_col … … 608 608 strh a2, [v2] 609 609 610 610 ldr pc, [sp], #4 611 .endfunc611 @.endfunc 612 612 613 613 .align 614 .global simple_idct_armv5te615 .type simple_idct_armv5te, %function616 .func simple_idct_armv5te617 simple_idct_armv5te:614 .global _simple_idct_armv5te 615 @.type simple_idct_armv5te, %function 616 @.func simple_idct_armv5te 617 _simple_idct_armv5te: 618 618 stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, lr} 619 619 620 bl idct_row_armv5te620 bl _idct_row_armv5te 621 621 add a1, a1, #16 622 bl idct_row_armv5te622 bl _idct_row_armv5te 623 623 add a1, a1, #16 624 bl idct_row_armv5te624 bl _idct_row_armv5te 625 625 add a1, a1, #16 626 bl idct_row_armv5te626 bl _idct_row_armv5te 627 627 add a1, a1, #16 628 bl idct_row_armv5te628 bl _idct_row_armv5te 629 629 add a1, a1, #16 630 bl idct_row_armv5te630 bl _idct_row_armv5te 631 631 add a1, a1, #16 632 bl idct_row_armv5te632 bl _idct_row_armv5te 633 633 add a1, a1, #16 634 bl idct_row_armv5te634 bl _idct_row_armv5te 635 635 636 636 sub a1, a1, #(16*7) 637 637 638 bl idct_col_armv5te638 bl _idct_col_armv5te 639 639 add a1, a1, #4 640 bl idct_col_armv5te640 bl _idct_col_armv5te 641 641 add a1, a1, #4 642 bl idct_col_armv5te642 bl _idct_col_armv5te 643 643 add a1, a1, #4 644 bl idct_col_armv5te644 bl _idct_col_armv5te 645 645 646 646 ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} 647 .endfunc647 @.endfunc 648 648 649 649 .align 650 .global simple_idct_add_armv5te651 .type simple_idct_add_armv5te, %function652 .func simple_idct_add_armv5te653 simple_idct_add_armv5te:650 .global _simple_idct_add_armv5te 651 @.type simple_idct_add_armv5te, %function 652 @.func simple_idct_add_armv5te 653 _simple_idct_add_armv5te: 654 654 stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} 655 655 656 656 mov a1, a3 657 657 658 bl idct_row_armv5te658 bl _idct_row_armv5te 659 659 add a1, a1, #16 660 bl idct_row_armv5te660 bl _idct_row_armv5te 661 661 add a1, a1, #16 662 bl idct_row_armv5te662 bl _idct_row_armv5te 663 663 add a1, a1, #16 664 bl idct_row_armv5te664 bl _idct_row_armv5te 665 665 add a1, a1, #16 666 bl idct_row_armv5te666 bl _idct_row_armv5te 667 667 add a1, a1, #16 668 bl idct_row_armv5te668 bl _idct_row_armv5te 669 669 add a1, a1, #16 670 bl idct_row_armv5te670 bl _idct_row_armv5te 671 671 add a1, a1, #16 672 bl idct_row_armv5te672 bl _idct_row_armv5te 673 673 674 674 sub a1, a1, #(16*7) 675 675 676 bl idct_col_add_armv5te676 bl _idct_col_add_armv5te 677 677 add a1, a1, #4 678 bl idct_col_add_armv5te678 bl _idct_col_add_armv5te 679 679 add a1, a1, #4 680 bl idct_col_add_armv5te680 bl _idct_col_add_armv5te 681 681 add a1, a1, #4 682 bl idct_col_add_armv5te682 bl _idct_col_add_armv5te 683 683 684 684 add sp, sp, #8 685 685 ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} 686 .endfunc686 @.endfunc 687 687 688 688 .align 689 .global simple_idct_put_armv5te690 .type simple_idct_put_armv5te, %function691 .func simple_idct_put_armv5te692 simple_idct_put_armv5te:689 .global _simple_idct_put_armv5te 690 @.type simple_idct_put_armv5te, %function 691 @.func simple_idct_put_armv5te 692 _simple_idct_put_armv5te: 693 693 stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} 694 694 695 695 mov a1, a3 696 696 697 bl idct_row_armv5te697 bl _idct_row_armv5te 698 698 add a1, a1, #16 699 bl idct_row_armv5te699 bl _idct_row_armv5te 700 700 add a1, a1, #16 701 bl idct_row_armv5te701 bl _idct_row_armv5te 702 702 add a1, a1, #16 703 bl idct_row_armv5te703 bl _idct_row_armv5te 704 704 add a1, a1, #16 705 bl idct_row_armv5te705 bl _idct_row_armv5te 706 706 add a1, a1, #16 707 bl idct_row_armv5te707 bl _idct_row_armv5te 708 708 add a1, a1, #16 709 bl idct_row_armv5te709 bl _idct_row_armv5te 710 710 add a1, a1, #16 711 bl idct_row_armv5te711 bl _idct_row_armv5te 712 712 713 713 sub a1, a1, #(16*7) 714 714 715 bl idct_col_put_armv5te715 bl _idct_col_put_armv5te 716 716 add a1, a1, #4 717 bl idct_col_put_armv5te717 bl _idct_col_put_armv5te 718 718 add a1, a1, #4 719 bl idct_col_put_armv5te719 bl _idct_col_put_armv5te 720 720 add a1, a1, #4 721 bl idct_col_put_armv5te721 bl _idct_col_put_armv5te 722 722 723 723 add sp, sp, #8 724 724 ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} 725 .endfunc725 @.endfunc -
libavcodec/armv4l/simple_idct_armv6.S
diff -ru ffmpeg-export-2008-02-26/libavcodec/armv4l/simple_idct_armv6.S ffmpeg-export-2008-02-26+iPhone/libavcodec/armv4l/simple_idct_armv6.S
old new 191 191 a2 = dest 192 192 */ 193 193 .align 194 .type idct_row_armv6, %function195 .func idct_row_armv6196 idct_row_armv6:194 @.type idct_row_armv6, %function 195 @.func idct_row_armv6 196 _idct_row_armv6: 197 197 str lr, [sp, #-4]! 198 198 199 199 ldr lr, [a1, #12] /* lr = row[7,5] */ … … 238 238 strh a3, [a2, #(16*5)] 239 239 strh a3, [a2, #(16*7)] 240 240 ldr pc, [sp], #4 241 .endfunc241 @.endfunc 242 242 243 243 /* 244 244 Compute IDCT of single column, read as row. … … 246 246 a2 = dest 247 247 */ 248 248 .align 249 .type idct_col_armv6, %function250 .func idct_col_armv6251 idct_col_armv6:249 @.type idct_col_armv6, %function 250 @.func idct_col_armv6 251 _idct_col_armv6: 252 252 stmfd sp!, {a2, lr} 253 253 254 254 ldr a3, [a1] /* a3 = row[2,0] */ … … 268 268 strh v5, [a2, #(16*7)] 269 269 270 270 ldr pc, [sp], #4 271 .endfunc271 @.endfunc 272 272 273 273 /* 274 274 Compute IDCT of single column, read as row, store saturated 8-bit. … … 277 277 a3 = line size 278 278 */ 279 279 .align 280 .type idct_col_put_armv6, %function281 .func idct_col_put_armv6282 idct_col_put_armv6:280 @.type idct_col_put_armv6, %function 281 @.func idct_col_put_armv6 282 _idct_col_put_armv6: 283 283 stmfd sp!, {a2, a3, lr} 284 284 285 285 ldr a3, [a1] /* a3 = row[2,0] */ … … 301 301 sub a2, a2, a3, lsl #3 302 302 303 303 ldr pc, [sp], #4 304 .endfunc304 @.endfunc 305 305 306 306 /* 307 307 Compute IDCT of single column, read as row, add/store saturated 8-bit. … … 310 310 a3 = line size 311 311 */ 312 312 .align 313 .type idct_col_add_armv6, %function314 .func idct_col_add_armv6315 idct_col_add_armv6:313 @.type idct_col_add_armv6, %function 314 @.func idct_col_add_armv6 315 _idct_col_add_armv6: 316 316 stmfd sp!, {a2, a3, lr} 317 317 318 318 ldr a3, [a1] /* a3 = row[2,0] */ … … 359 359 sub a2, a2, a3, lsl #3 360 360 361 361 ldr pc, [sp], #4 362 .endfunc362 @.endfunc 363 363 364 364 /* 365 365 Compute 8 IDCT row transforms. … … 394 394 .endm 395 395 396 396 .align 397 .global ff_simple_idct_armv6398 .type ff_simple_idct_armv6, %function399 .func ff_simple_idct_armv6397 .global _ff_simple_idct_armv6 398 @.type ff_simple_idct_armv6, %function 399 @.func ff_simple_idct_armv6 400 400 /* void ff_simple_idct_armv6(DCTELEM *data); */ 401 ff_simple_idct_armv6:401 _ff_simple_idct_armv6: 402 402 stmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, lr} 403 403 sub sp, sp, #128 404 404 405 405 mov a2, sp 406 idct_rows idct_row_armv6, 2406 idct_rows _idct_row_armv6, 2 407 407 mov a2, a1 408 408 mov a1, sp 409 idct_rows idct_col_armv6, 2409 idct_rows _idct_col_armv6, 2 410 410 411 411 add sp, sp, #128 412 412 ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} 413 .endfunc413 @.endfunc 414 414 415 415 .align 416 .global ff_simple_idct_add_armv6417 .type ff_simple_idct_add_armv6, %function418 .func ff_simple_idct_add_armv6416 .global _ff_simple_idct_add_armv6 417 @.type ff_simple_idct_add_armv6, %function 418 @.func ff_simple_idct_add_armv6 419 419 /* ff_simple_idct_add_armv6(uint8_t *dest, int line_size, DCTELEM *data); */ 420 ff_simple_idct_add_armv6:420 _ff_simple_idct_add_armv6: 421 421 stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} 422 422 sub sp, sp, #128 423 423 424 424 mov a1, a3 425 425 mov a2, sp 426 idct_rows idct_row_armv6, 2426 idct_rows _idct_row_armv6, 2 427 427 mov a1, sp 428 428 ldr a2, [sp, #128] 429 429 ldr a3, [sp, #(128+4)] 430 idct_rows idct_col_add_armv6, 1430 idct_rows _idct_col_add_armv6, 1 431 431 432 432 add sp, sp, #(128+8) 433 433 ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} 434 .endfunc434 @.endfunc 435 435 436 436 .align 437 .global ff_simple_idct_put_armv6438 .type ff_simple_idct_put_armv6, %function439 .func ff_simple_idct_put_armv6437 .global _ff_simple_idct_put_armv6 438 @.type ff_simple_idct_put_armv6, %function 439 @.func ff_simple_idct_put_armv6 440 440 /* ff_simple_idct_put_armv6(uint8_t *dest, int line_size, DCTELEM *data); */ 441 ff_simple_idct_put_armv6:441 _ff_simple_idct_put_armv6: 442 442 stmfd sp!, {a1, a2, v1, v2, v3, v4, v5, v6, v7, fp, lr} 443 443 sub sp, sp, #128 444 444 445 445 mov a1, a3 446 446 mov a2, sp 447 idct_rows idct_row_armv6, 2447 idct_rows _idct_row_armv6, 2 448 448 mov a1, sp 449 449 ldr a2, [sp, #128] 450 450 ldr a3, [sp, #(128+4)] 451 idct_rows idct_col_put_armv6, 1451 idct_rows _idct_col_put_armv6, 1 452 452 453 453 add sp, sp, #(128+8) 454 454 ldmfd sp!, {v1, v2, v3, v4, v5, v6, v7, fp, pc} 455 .endfunc455 @.endfunc
Note: See TracBrowser
for help on using the browser.
