* 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 |