* qatar/master: x86: hpel: Move {avg,put}_pixels16_sse2 to hpeldsp configure: Add a comment indicating why uclibc is checked before glibc
Unified · Split
| @@ -3347,6 +3347,7 @@ esac · 3346 unmodified lines | ||
| 3347 | 3347 | |
| 3348 | 3348 | # determine libc flavour |
| 3349 | 3349 | |
| 3350 | +# uclibc defines __GLIBC__, so it needs to be checked before glibc. | |
| 3350 | 3351 | if check_cpp_condition features.h "defined __UCLIBC__"; then |
| 3351 | 3352 | libc_type=uclibc |
| 3352 | 3353 | add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 |
| @@ -648,46 +648,3 @@ BSWAP32_BUF · 647 unmodified lines | ||
| 648 | 648 | |
| 649 | 649 | INIT_XMM ssse3 |
| 650 | 650 | BSWAP32_BUF |
| 651 | − | |
| 652 | −INIT_XMM sse2 | |
| 653 | −; void put_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_size, int h) | |
| 654 | −cglobal put_pixels16, 4,5,4 | |
| 655 | − movsxdifnidn r2, r2d | |
| 656 | − lea r4, [r2*3] | |
| 657 | −.loop: | |
| 658 | − movu m0, [r1] | |
| 659 | − movu m1, [r1+r2] | |
| 660 | − movu m2, [r1+r2*2] | |
| 661 | − movu m3, [r1+r4] | |
| 662 | − lea r1, [r1+r2*4] | |
| 663 | − mova [r0], m0 | |
| 664 | − mova [r0+r2], m1 | |
| 665 | − mova [r0+r2*2], m2 | |
| 666 | − mova [r0+r4], m3 | |
| 667 | − sub r3d, 4 | |
| 668 | − lea r0, [r0+r2*4] | |
| 669 | − jnz .loop | |
| 670 | − REP_RET | |
| 671 | − | |
| 672 | −; void avg_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_size, int h) | |
| 673 | −cglobal avg_pixels16, 4,5,4 | |
| 674 | − movsxdifnidn r2, r2d | |
| 675 | − lea r4, [r2*3] | |
| 676 | −.loop: | |
| 677 | − movu m0, [r1] | |
| 678 | − movu m1, [r1+r2] | |
| 679 | − movu m2, [r1+r2*2] | |
| 680 | − movu m3, [r1+r4] | |
| 681 | − lea r1, [r1+r2*4] | |
| 682 | − pavgb m0, [r0] | |
| 683 | − pavgb m1, [r0+r2] | |
| 684 | − pavgb m2, [r0+r2*2] | |
| 685 | − pavgb m3, [r0+r4] | |
| 686 | − mova [r0], m0 | |
| 687 | − mova [r0+r2], m1 | |
| 688 | − mova [r0+r2*2], m2 | |
| 689 | − mova [r0+r4], m3 | |
| 690 | − sub r3d, 4 | |
| 691 | − lea r0, [r0+r2*4] | |
| 692 | − jnz .loop | |
| 693 | − REP_RET | |
| @@ -469,3 +469,46 @@ INIT_MMX mmxext · 468 unmodified lines | ||
| 469 | 469 | AVG_PIXELS8_XY2 |
| 470 | 470 | INIT_MMX 3dnow |
| 471 | 471 | AVG_PIXELS8_XY2 |
| 472 | + | |
| 473 | +INIT_XMM sse2 | |
| 474 | +; void put_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_size, int h) | |
| 475 | +cglobal put_pixels16, 4,5,4 | |
| 476 | + movsxdifnidn r2, r2d | |
| 477 | + lea r4, [r2*3] | |
| 478 | +.loop: | |
| 479 | + movu m0, [r1] | |
| 480 | + movu m1, [r1+r2] | |
| 481 | + movu m2, [r1+r2*2] | |
| 482 | + movu m3, [r1+r4] | |
| 483 | + lea r1, [r1+r2*4] | |
| 484 | + mova [r0], m0 | |
| 485 | + mova [r0+r2], m1 | |
| 486 | + mova [r0+r2*2], m2 | |
| 487 | + mova [r0+r4], m3 | |
| 488 | + sub r3d, 4 | |
| 489 | + lea r0, [r0+r2*4] | |
| 490 | + jnz .loop | |
| 491 | + REP_RET | |
| 492 | + | |
| 493 | +; void avg_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_size, int h) | |
| 494 | +cglobal avg_pixels16, 4,5,4 | |
| 495 | + movsxdifnidn r2, r2d | |
| 496 | + lea r4, [r2*3] | |
| 497 | +.loop: | |
| 498 | + movu m0, [r1] | |
| 499 | + movu m1, [r1+r2] | |
| 500 | + movu m2, [r1+r2*2] | |
| 501 | + movu m3, [r1+r4] | |
| 502 | + lea r1, [r1+r2*4] | |
| 503 | + pavgb m0, [r0] | |
| 504 | + pavgb m1, [r0+r2] | |
| 505 | + pavgb m2, [r0+r2*2] | |
| 506 | + pavgb m3, [r0+r4] | |
| 507 | + mova [r0], m0 | |
| 508 | + mova [r0+r2], m1 | |
| 509 | + mova [r0+r2*2], m2 | |
| 510 | + mova [r0+r4], m3 | |
| 511 | + sub r3d, 4 | |
| 512 | + lea r0, [r0+r2*4] | |
| 513 | + jnz .loop | |
| 514 | + REP_RET | |