* qatar/master:
x86: hpel: Move {avg,put}_pixels16_sse2 to hpeldsp
configure: Add a comment indicating why uclibc is checked before glibc
Merged-by: Michael Niedermayer <michaelni@gmx.at>
tags/n1.2
| @@ -3347,6 +3347,7 @@ esac | |||||
| # determine libc flavour | # determine libc flavour | ||||
| # uclibc defines __GLIBC__, so it needs to be checked before glibc. | |||||
| if check_cpp_condition features.h "defined __UCLIBC__"; then | if check_cpp_condition features.h "defined __UCLIBC__"; then | ||||
| libc_type=uclibc | libc_type=uclibc | ||||
| add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 | add_cppflags -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 | ||||
| @@ -648,46 +648,3 @@ BSWAP32_BUF | |||||
| INIT_XMM ssse3 | INIT_XMM ssse3 | ||||
| BSWAP32_BUF | BSWAP32_BUF | ||||
| INIT_XMM sse2 | |||||
| ; void put_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_size, int h) | |||||
| cglobal put_pixels16, 4,5,4 | |||||
| movsxdifnidn r2, r2d | |||||
| lea r4, [r2*3] | |||||
| .loop: | |||||
| movu m0, [r1] | |||||
| movu m1, [r1+r2] | |||||
| movu m2, [r1+r2*2] | |||||
| movu m3, [r1+r4] | |||||
| lea r1, [r1+r2*4] | |||||
| mova [r0], m0 | |||||
| mova [r0+r2], m1 | |||||
| mova [r0+r2*2], m2 | |||||
| mova [r0+r4], m3 | |||||
| sub r3d, 4 | |||||
| lea r0, [r0+r2*4] | |||||
| jnz .loop | |||||
| REP_RET | |||||
| ; void avg_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_size, int h) | |||||
| cglobal avg_pixels16, 4,5,4 | |||||
| movsxdifnidn r2, r2d | |||||
| lea r4, [r2*3] | |||||
| .loop: | |||||
| movu m0, [r1] | |||||
| movu m1, [r1+r2] | |||||
| movu m2, [r1+r2*2] | |||||
| movu m3, [r1+r4] | |||||
| lea r1, [r1+r2*4] | |||||
| pavgb m0, [r0] | |||||
| pavgb m1, [r0+r2] | |||||
| pavgb m2, [r0+r2*2] | |||||
| pavgb m3, [r0+r4] | |||||
| mova [r0], m0 | |||||
| mova [r0+r2], m1 | |||||
| mova [r0+r2*2], m2 | |||||
| mova [r0+r4], m3 | |||||
| sub r3d, 4 | |||||
| lea r0, [r0+r2*4] | |||||
| jnz .loop | |||||
| REP_RET | |||||
| @@ -469,3 +469,46 @@ INIT_MMX mmxext | |||||
| AVG_PIXELS8_XY2 | AVG_PIXELS8_XY2 | ||||
| INIT_MMX 3dnow | INIT_MMX 3dnow | ||||
| AVG_PIXELS8_XY2 | AVG_PIXELS8_XY2 | ||||
| INIT_XMM sse2 | |||||
| ; void put_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_size, int h) | |||||
| cglobal put_pixels16, 4,5,4 | |||||
| movsxdifnidn r2, r2d | |||||
| lea r4, [r2*3] | |||||
| .loop: | |||||
| movu m0, [r1] | |||||
| movu m1, [r1+r2] | |||||
| movu m2, [r1+r2*2] | |||||
| movu m3, [r1+r4] | |||||
| lea r1, [r1+r2*4] | |||||
| mova [r0], m0 | |||||
| mova [r0+r2], m1 | |||||
| mova [r0+r2*2], m2 | |||||
| mova [r0+r4], m3 | |||||
| sub r3d, 4 | |||||
| lea r0, [r0+r2*4] | |||||
| jnz .loop | |||||
| REP_RET | |||||
| ; void avg_pixels16_sse2(uint8_t *block, const uint8_t *pixels, int line_size, int h) | |||||
| cglobal avg_pixels16, 4,5,4 | |||||
| movsxdifnidn r2, r2d | |||||
| lea r4, [r2*3] | |||||
| .loop: | |||||
| movu m0, [r1] | |||||
| movu m1, [r1+r2] | |||||
| movu m2, [r1+r2*2] | |||||
| movu m3, [r1+r4] | |||||
| lea r1, [r1+r2*4] | |||||
| pavgb m0, [r0] | |||||
| pavgb m1, [r0+r2] | |||||
| pavgb m2, [r0+r2*2] | |||||
| pavgb m3, [r0+r4] | |||||
| mova [r0], m0 | |||||
| mova [r0+r2], m1 | |||||
| mova [r0+r2*2], m2 | |||||
| mova [r0+r4], m3 | |||||
| sub r3d, 4 | |||||
| lea r0, [r0+r2*4] | |||||
| jnz .loop | |||||
| REP_RET | |||||