* 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 | # determine libc flavour | 3348 | # determine libc flavour |
| 3349 | 3349 | ||
| 3350 | # uclibc defines __GLIBC__, so it needs to be checked before glibc. | ||
| 3350 | if check_cpp_condition features.h "defined __UCLIBC__"; then | 3351 | if check_cpp_condition features.h "defined __UCLIBC__"; then |
| 3351 | libc_type=uclibc | 3352 | libc_type=uclibc |
| 3352 | add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 | 3353 | add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 |
| @@ -648,46 +648,3 @@ BSWAP32_BUF · 647 unmodified lines | |||
| 648 | 648 | ||
| 649 | INIT_XMM ssse3 | 649 | INIT_XMM ssse3 |
| 650 | BSWAP32_BUF | 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 | AVG_PIXELS8_XY2 | 469 | AVG_PIXELS8_XY2 |
| 470 | INIT_MMX 3dnow | 470 | INIT_MMX 3dnow |
| 471 | AVG_PIXELS8_XY2 | 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 | ||