mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-03-03 14:32:16 +02:00
x86: hpel: Move {avg,put}_pixels16_sse2 to hpeldsp
This commit is contained in:
parent
197252f1c5
commit
52acd79165
@ -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
|
|
||||||
|
@ -463,3 +463,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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user