All pastes #2066418 Raw Edit

Anonymous

public text v1 · immutable
#2066418 ·published 2011-05-22 01:09 UTC
rendered paste body
SECTION_RODATA

v210_mask: times 4 dd 0x3ff

SECTION .text

%macro v210_planar_unpack 1

; decode_words( const uint32_t *src, uint16_t *y, uint16_t *u, uint16_t *v )
cglobal v210_planar_unpack_%1, 4, 4
    mova   m3, [v210_mask]
    movu   m0, [r0]
    psrld  m1, m0, 10
    psrld  m2, m0, 20
    pand   m0, m3
    pand   m1, m3
    pand   m2, m3

    pextrw [r1], m1, 0
    pextrw [r1+2], m0, 2
    pextrw [r1+4], m2, 2
    pextrw [r1+6], m1, 4
    pextrw [r1+8], m0, 6
    pextrw [r1+10], m2, 6

    pextrw [r2], m0, 0
    pextrw [r2+2], m1, 2
    pextrw [r2+4], m2, 4

    pextrw [r3], m2, 0
    pextrw [r3+2], m0, 4
    pextrw [r3+4], m1, 6

    RET
%endmacro

INIT_XMM
v210_planar_unpack sse2
INIT_AVX
v210_planar_unpack avx