;
; jccolext.asm - colorspace conversion (SSE2)
;
; x86 SIMD extension for IJG JPEG library
; Copyright (C) 1999-2006, MIYASAKA Masaru.
; For conditions of distribution and use, see copyright notice in jsimdext.inc
;
; This file should be assembled with NASM (Netwide Assembler),
; can *not* be assembled with Microsoft's MASM or any compatible
; assembler (including Borland's Turbo Assembler).
; NASM is available from http://nasm.sourceforge.net/ or
; http://sourceforge.net/project/showfiles.php?group_id=6208
;
; [TAB8]

%include "jcolsamp.inc"

; --------------------------------------------------------------------------
;
; Convert some rows of samples to the output colorspace.
;
; GLOBAL(void)
; jsimd_rgb_ycc_convert_sse2 (JDIMENSION img_width,
;                             JSAMPARRAY input_buf, JSAMPIMAGE output_buf,
;                             JDIMENSION output_row, int num_rows);
;

%define img_width(b)    (b)+8           ; JDIMENSION img_width
%define input_buf(b)    (b)+12          ; JSAMPARRAY input_buf
%define output_buf(b)   (b)+16          ; JSAMPIMAGE output_buf
%define output_row(b)   (b)+20          ; JDIMENSION output_row
%define num_rows(b)     (b)+24          ; int num_rows

%define original_ebp    ebp+0
%define wk(i)           ebp-(WK_NUM-(i))*SIZEOF_XMMWORD ; xmmword wk[WK_NUM]
%define WK_NUM          8
%define gotptr          wk(0)-SIZEOF_POINTER    ; void * gotptr

        align   16

        global  EXTN(jsimd_rgb_ycc_convert_sse2) PRIVATE

EXTN(jsimd_rgb_ycc_convert_sse2):
        push    ebp
        mov     eax,esp                         ; eax = original ebp
        sub     esp, byte 4
        and     esp, byte (-SIZEOF_XMMWORD)     ; align to 128 bits
        mov     [esp],eax
        mov     ebp,esp                         ; ebp = aligned ebp
        lea     esp, [wk(0)]
        pushpic eax             ; make a room for GOT address
        push    ebx
;       push    ecx             ; need not be preserved
;       push    edx             ; need not be preserved
        push    esi
        push    edi

        get_GOT ebx                     ; get GOT address
        movpic  POINTER [gotptr], ebx   ; save GOT address

        mov     ecx, JDIMENSION [img_width(eax)]
        test    ecx,ecx
        jz      near .return

        push    ecx

        mov     esi, JSAMPIMAGE [output_buf(eax)]
        mov     ecx, JDIMENSION [output_row(eax)]
        mov     edi, JSAMPARRAY [esi+0*SIZEOF_JSAMPARRAY]
        mov     ebx, JSAMPARRAY [esi+1*SIZEOF_JSAMPARRAY]
        mov     edx, JSAMPARRAY [esi+2*SIZEOF_JSAMPARRAY]
        lea     edi, [edi+ecx*SIZEOF_JSAMPROW]
        lea     ebx, [ebx+ecx*SIZEOF_JSAMPROW]
        lea     edx, [edx+ecx*SIZEOF_JSAMPROW]

        pop     ecx

        mov     esi, JSAMPARRAY [input_buf(eax)]
        mov     eax, INT [num_rows(eax)]
        test    eax,eax
        jle     near .return
        alignx  16,7
.rowloop:
        pushpic eax
        push    edx
        push    ebx
        push    edi
        push    esi
        push    ecx                     ; col

        mov     esi, JSAMPROW [esi]     ; inptr
        mov     edi, JSAMPROW [edi]     ; outptr0
        mov     ebx, JSAMPROW [ebx]     ; outptr1
        mov     edx, JSAMPROW [edx]     ; outptr2
        movpic  eax, POINTER [gotptr]   ; load GOT address (eax)

        cmp     ecx, byte SIZEOF_XMMWORD
        jae     near .columnloop
        alignx  16,7

%if RGB_PIXELSIZE == 3 ; ---------------

.column_ld1:
        push    eax
        push    edx
        lea     ecx,[ecx+ecx*2]         ; imul ecx,RGB_PIXELSIZE
        test    cl, SIZEOF_BYTE
        jz      short .column_ld2
        sub     ecx, byte SIZEOF_BYTE
        movzx   eax, BYTE [esi+ecx]
.column_ld2:
        test    cl, SIZEOF_WORD
        jz      short .column_ld4
        sub     ecx, byte SIZEOF_WORD
        movzx   edx, WORD [esi+ecx]
        shl     eax, WORD_BIT
        or      eax,edx
.column_ld4:
        movd    xmmA,eax
        pop     edx
        pop     eax
        test    cl, SIZEOF_DWORD
        jz      short .column_ld8
        sub     ecx, byte SIZEOF_DWORD
        movd    xmmF, XMM_DWORD [esi+ecx]
        pslldq  xmmA, SIZEOF_DWORD
        por     xmmA,xmmF
.column_ld8:
        test    cl, SIZEOF_MMWORD
        jz      short .column_ld16
        sub     ecx, byte SIZEOF_MMWORD
        movq    xmmB, XMM_MMWORD [esi+ecx]
        pslldq  xmmA, SIZEOF_MMWORD
        por     xmmA,xmmB
.column_ld16:
        test    cl, SIZEOF_XMMWORD
        jz      short .column_ld32
        movdqa  xmmF,xmmA
        movdqu  xmmA, XMMWORD [esi+0*SIZEOF_XMMWORD]
        mov     ecx, SIZEOF_XMMWORD
        jmp     short .rgb_ycc_cnv
.column_ld32:
        test    cl, 2*SIZEOF_XMMWORD
        mov     ecx, SIZEOF_XMMWORD
        jz      short .rgb_ycc_cnv
        movdqa  xmmB,xmmA
        movdqu  xmmA, XMMWORD [esi+0*SIZEOF_XMMWORD]
        movdqu  xmmF, XMMWORD [esi+1*SIZEOF_XMMWORD]
        jmp     short .rgb_ycc_cnv
        alignx  16,7

.columnloop:
        movdqu  xmmA, XMMWORD [esi+0*SIZEOF_XMMWORD]
        movdqu  xmmF, XMMWORD [esi+1*SIZEOF_XMMWORD]
        movdqu  xmmB, XMMWORD [esi+2*SIZEOF_XMMWORD]

.rgb_ycc_cnv:
        ; xmmA=(00 10 20 01 11 21 02 12 22 03 13 23 04 14 24 05)
        ; xmmF=(15 25 06 16 26 07 17 27 08 18 28 09 19 29 0A 1A)
        ; xmmB=(2A 0B 1B 2B 0C 1C 2C 0D 1D 2D 0E 1E 2E 0F 1F 2F)

        movdqa    xmmG,xmmA
        pslldq    xmmA,8        ; xmmA=(-- -- -- -- -- -- -- -- 00 10 20 01 11 21 02 12)
        psrldq    xmmG,8        ; xmmG=(22 03 13 23 04 14 24 05 -- -- -- -- -- -- -- --)

        punpckhbw xmmA,xmmF     ; xmmA=(00 08 10 18 20 28 01 09 11 19 21 29 02 0A 12 1A)
        pslldq    xmmF,8        ; xmmF=(-- -- -- -- -- -- -- -- 15 25 06 16 26 07 17 27)

        punpcklbw xmmG,xmmB     ; xmmG=(22 2A 03 0B 13 1B 23 2B 04 0C 14 1C 24 2C 05 0D)
        punpckhbw xmmF,xmmB     ; xmmF=(15 1D 25 2D 06 0E 16 1E 26 2E 07 0F 17 1F 27 2F)

        movdqa    xmmD,xmmA
        pslldq    xmmA,8        ; xmmA=(-- -- -- -- -- -- -- -- 00 08 10 18 20 28 01 09)
        psrldq    xmmD,8        ; xmmD=(11 19 21 29 02 0A 12 1A -- -- -- -- -- -- -- --)

        punpckhbw xmmA,xmmG     ; xmmA=(00 04 08 0C 10 14 18 1C 20 24 28 2C 01 05 09 0D)
        pslldq    xmmG,8        ; xmmG=(-- -- -- -- -- -- -- -- 22 2A 03 0B 13 1B 23 2B)

        punpcklbw xmmD,xmmF     ; xmmD=(11 15 19 1D 21 25 29 2D 02 06 0A 0E 12 16 1A 1E)
        punpckhbw xmmG,xmmF     ; xmmG=(22 26 2A 2E 03 07 0B 0F 13 17 1B 1F 23 27 2B 2F)

        movdqa    xmmE,xmmA
        pslldq    xmmA,8        ; xmmA=(-- -- -- -- -- -- -- -- 00 04 08 0C 10 14 18 1C)
        psrldq    xmmE,8        ; xmmE=(20 24 28 2C 01 05 09 0D -- -- -- -- -- -- -- --)

        punpckhbw xmmA,xmmD     ; xmmA=(00 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A 1C 1E)
        pslldq    xmmD,8        ; xmmD=(-- -- -- -- -- -- -- -- 11 15 19 1D 21 25 29 2D)

        punpcklbw xmmE,xmmG     ; xmmE=(20 22 24 26 28 2A 2C 2E 01 03 05 07 09 0B 0D 0F)
        punpckhbw xmmD,xmmG     ; xmmD=(11 13 15 17 19 1B 1D 1F 21 23 25 27 29 2B 2D 2F)

        pxor      xmmH,xmmH

        movdqa    xmmC,xmmA
        punpcklbw xmmA,xmmH     ; xmmA=(00 02 04 06 08 0A 0C 0E)
        punpckhbw xmmC,xmmH     ; xmmC=(10 12 14 16 18 1A 1C 1E)

        movdqa    xmmB,xmmE
        punpcklbw xmmE,xmmH     ; xmmE=(20 22 24 26 28 2A 2C 2E)
        punpckhbw xmmB,xmmH     ; xmmB=(01 03 05 07 09 0B 0D 0F)

        movdqa    xmmF,xmmD
        punpcklbw xmmD,xmmH     ; xmmD=(11 13 15 17 19 1B 1D 1F)
        punpckhbw xmmF,xmmH     ; xmmF=(21 23 25 27 29 2B 2D 2F)

%else ; RGB_PIXELSIZE == 4 ; -----------

.column_ld1:
        test    cl, SIZEOF_XMMWORD/16
        jz      short .column_ld2
        sub     ecx, byte SIZEOF_XMMWORD/16
        movd    xmmA, XMM_DWORD [esi+ecx*RGB_PIXELSIZE]
.column_ld2:
        test    cl, SIZEOF_XMMWORD/8
        jz      short .column_ld4
        sub     ecx, byte SIZEOF_XMMWORD/8
        movq    xmmE, XMM_MMWORD [esi+ecx*RGB_PIXELSIZE]
        pslldq  xmmA, SIZEOF_MMWORD
        por     xmmA,xmmE
.column_ld4:
        test    cl, SIZEOF_XMMWORD/4
        jz      short .column_ld8
        sub     ecx, byte SIZEOF_XMMWORD/4
        movdqa  xmmE,xmmA
        movdqu  xmmA, XMMWORD [esi+ecx*RGB_PIXELSIZE]
.column_ld8:
        test    cl, SIZEOF_XMMWORD/2
        mov     ecx, SIZEOF_XMMWORD
        jz      short .rgb_ycc_cnv
        movdqa  xmmF,xmmA
        movdqa  xmmH,xmmE
        movdqu  xmmA, XMMWORD [esi+0*SIZEOF_XMMWORD]
        movdqu  xmmE, XMMWORD [esi+1*SIZEOF_XMMWORD]
        jmp     short .rgb_ycc_cnv
        alignx  16,7

.columnloop:
        movdqu  xmmA, XMMWORD [esi+0*SIZEOF_XMMWORD]
        movdqu  xmmE, XMMWORD [esi+1*SIZEOF_XMMWORD]
        movdqu  xmmF, XMMWORD [esi+2*SIZEOF_XMMWORD]
        movdqu  xmmH, XMMWORD [esi+3*SIZEOF_XMMWORD]

.rgb_ycc_cnv:
        ; xmmA=(00 10 20 30 01 11 21 31 02 12 22 32 03 13 23 33)
        ; xmmE=(04 14 24 34 05 15 25 35 06 16 26 36 07 17 27 37)
        ; xmmF=(08 18 28 38 09 19 29 39 0A 1A 2A 3A 0B 1B 2B 3B)
        ; xmmH=(0C 1C 2C 3C 0D 1D 2D 3D 0E 1E 2E 3E 0F 1F 2F 3F)

        movdqa    xmmD,xmmA
        punpcklbw xmmA,xmmE     ; xmmA=(00 04 10 14 20 24 30 34 01 05 11 15 21 25 31 35)
        punpckhbw xmmD,xmmE     ; xmmD=(02 06 12 16 22 26 32 36 03 07 13 17 23 27 33 37)

        movdqa    xmmC,xmmF
        punpcklbw xmmF,xmmH     ; xmmF=(08 0C 18 1C 28 2C 38 3C 09 0D 19 1D 29 2D 39 3D)
        punpckhbw xmmC,xmmH     ; xmmC=(0A 0E 1A 1E 2A 2E 3A 3E 0B 0F 1B 1F 2B 2F 3B 3F)

        movdqa    xmmB,xmmA
        punpcklwd xmmA,xmmF     ; xmmA=(00 04 08 0C 10 14 18 1C 20 24 28 2C 30 34 38 3C)
        punpckhwd xmmB,xmmF     ; xmmB=(01 05 09 0D 11 15 19 1D 21 25 29 2D 31 35 39 3D)

        movdqa    xmmG,xmmD
        punpcklwd xmmD,xmmC     ; xmmD=(02 06 0A 0E 12 16 1A 1E 22 26 2A 2E 32 36 3A 3E)
        punpckhwd xmmG,xmmC     ; xmmG=(03 07 0B 0F 13 17 1B 1F 23 27 2B 2F 33 37 3B 3F)

        movdqa    xmmE,xmmA
        punpcklbw xmmA,xmmD     ; xmmA=(00 02 04 06 08 0A 0C 0E 10 12 14 16 18 1A 1C 1E)
        punpckhbw xmmE,xmmD     ; xmmE=(20 22 24 26 28 2A 2C 2E 30 32 34 36 38 3A 3C 3E)

        movdqa    xmmH,xmmB
        punpcklbw xmmB,xmmG     ; xmmB=(01 03 05 07 09 0B 0D 0F 11 13 15 17 19 1B 1D 1F)
        punpckhbw xmmH,xmmG     ; xmmH=(21 23 25 27 29 2B 2D 2F 31 33 35 37 39 3B 3D 3F)

        pxor      xmmF,xmmF

        movdqa    xmmC,xmmA
        punpcklbw xmmA,xmmF     ; xmmA=(00 02 04 06 08 0A 0C 0E)
        punpckhbw xmmC,xmmF     ; xmmC=(10 12 14 16 18 1A 1C 1E)

        movdqa    xmmD,xmmB
        punpcklbw xmmB,xmmF     ; xmmB=(01 03 05 07 09 0B 0D 0F)
        punpckhbw xmmD,xmmF     ; xmmD=(11 13 15 17 19 1B 1D 1F)

        movdqa    xmmG,xmmE
        punpcklbw xmmE,xmmF     ; xmmE=(20 22 24 26 28 2A 2C 2E)
        punpckhbw xmmG,xmmF     ; xmmG=(30 32 34 36 38 3A 3C 3E)

        punpcklbw xmmF,xmmH
        punpckhbw xmmH,xmmH
        psrlw     xmmF,BYTE_BIT ; xmmF=(21 23 25 27 29 2B 2D 2F)
        psrlw     xmmH,BYTE_BIT ; xmmH=(31 33 35 37 39 3B 3D 3F)

%endif ; RGB_PIXELSIZE ; ---------------

        ; xmm0=R(02468ACE)=RE, xmm2=G(02468ACE)=GE, xmm4=B(02468ACE)=BE
        ; xmm1=R(13579BDF)=RO, xmm3=G(13579BDF)=GO, xmm5=B(13579BDF)=BO

        ; (Original)
        ; Y  =  0.29900 * R + 0.58700 * G + 0.11400 * B
        ; Cb = -0.16874 * R - 0.33126 * G + 0.50000 * B + CENTERJSAMPLE
        ; Cr =  0.50000 * R - 0.41869 * G - 0.08131 * B + CENTERJSAMPLE
        ;
        ; (This implementation)
        ; Y  =  0.29900 * R + 0.33700 * G + 0.11400 * B + 0.25000 * G
        ; Cb = -0.16874 * R - 0.33126 * G + 0.50000 * B + CENTERJSAMPLE
        ; Cr =  0.50000 * R - 0.41869 * G - 0.08131 * B + CENTERJSAMPLE

        movdqa    XMMWORD [wk(0)], xmm0 ; wk(0)=RE
        movdqa    XMMWORD [wk(1)], xmm1 ; wk(1)=RO
        movdqa    XMMWORD [wk(2)], xmm4 ; wk(2)=BE
        movdqa    XMMWORD [wk(3)], xmm5 ; wk(3)=BO

        movdqa    xmm6,xmm1
        punpcklwd xmm1,xmm3
        punpckhwd xmm6,xmm3
        movdqa    xmm7,xmm1
        movdqa    xmm4,xmm6
        pmaddwd   xmm1,[GOTOFF(eax,PW_F0299_F0337)] ; xmm1=ROL*FIX(0.299)+GOL*FIX(0.337)
        pmaddwd   xmm6,[GOTOFF(eax,PW_F0299_F0337)] ; xmm6=ROH*FIX(0.299)+GOH*FIX(0.337)
        pmaddwd   xmm7,[GOTOFF(eax,PW_MF016_MF033)] ; xmm7=ROL*-FIX(0.168)+GOL*-FIX(0.331)
        pmaddwd   xmm4,[GOTOFF(eax,PW_MF016_MF033)] ; xmm4=ROH*-FIX(0.168)+GOH*-FIX(0.331)

        movdqa    XMMWORD [wk(4)], xmm1 ; wk(4)=ROL*FIX(0.299)+GOL*FIX(0.337)
        movdqa    XMMWORD [wk(5)], xmm6 ; wk(5)=ROH*FIX(0.299)+GOH*FIX(0.337)

        pxor      xmm1,xmm1
        pxor      xmm6,xmm6
        punpcklwd xmm1,xmm5             ; xmm1=BOL
        punpckhwd xmm6,xmm5             ; xmm6=BOH
        psrld     xmm1,1                ; xmm1=BOL*FIX(0.500)
        psrld     xmm6,1                ; xmm6=BOH*FIX(0.500)

        movdqa    xmm5,[GOTOFF(eax,PD_ONEHALFM1_CJ)] ; xmm5=[PD_ONEHALFM1_CJ]

        paddd     xmm7,xmm1
        paddd     xmm4,xmm6
        paddd     xmm7,xmm5
        paddd     xmm4,xmm5
        psrld     xmm7,SCALEBITS        ; xmm7=CbOL
        psrld     xmm4,SCALEBITS        ; xmm4=CbOH
        packssdw  xmm7,xmm4             ; xmm7=CbO

        movdqa    xmm1, XMMWORD [wk(2)] ; xmm1=BE

        movdqa    xmm6,xmm0
        punpcklwd xmm0,xmm2
        punpckhwd xmm6,xmm2
        movdqa    xmm5,xmm0
        movdqa    xmm4,xmm6
        pmaddwd   xmm0,[GOTOFF(eax,PW_F0299_F0337)] ; xmm0=REL*FIX(0.299)+GEL*FIX(0.337)
        pmaddwd   xmm6,[GOTOFF(eax,PW_F0299_F0337)] ; xmm6=REH*FIX(0.299)+GEH*FIX(0.337)
        pmaddwd   xmm5,[GOTOFF(eax,PW_MF016_MF033)] ; xmm5=REL*-FIX(0.168)+GEL*-FIX(0.331)
        pmaddwd   xmm4,[GOTOFF(eax,PW_MF016_MF033)] ; xmm4=REH*-FIX(0.168)+GEH*-FIX(0.331)

        movdqa    XMMWORD [wk(6)], xmm0 ; wk(6)=REL*FIX(0.299)+GEL*FIX(0.337)
        movdqa    XMMWORD [wk(7)], xmm6 ; wk(7)=REH*FIX(0.299)+GEH*FIX(0.337)

        pxor      xmm0,xmm0
        pxor      xmm6,xmm6
        punpcklwd xmm0,xmm1             ; xmm0=BEL
        punpckhwd xmm6,xmm1             ; xmm6=BEH
        psrld     xmm0,1                ; xmm0=BEL*FIX(0.500)
        psrld     xmm6,1                ; xmm6=BEH*FIX(0.500)

        movdqa    xmm1,[GOTOFF(eax,PD_ONEHALFM1_CJ)] ; xmm1=[PD_ONEHALFM1_CJ]

        paddd     xmm5,xmm0
        paddd     xmm4,xmm6
        paddd     xmm5,xmm1
        paddd     xmm4,xmm1
        psrld     xmm5,SCALEBITS        ; xmm5=CbEL
        psrld     xmm4,SCALEBITS        ; xmm4=CbEH
        packssdw  xmm5,xmm4             ; xmm5=CbE

        psllw     xmm7,BYTE_BIT
        por       xmm5,xmm7             ; xmm5=Cb
        movdqa    XMMWORD [ebx], xmm5   ; Save Cb

        movdqa    xmm0, XMMWORD [wk(3)] ; xmm0=BO
        movdqa    xmm6, XMMWORD [wk(2)] ; xmm6=BE
        movdqa    xmm1, XMMWORD [wk(1)] ; xmm1=RO

        movdqa    xmm4,xmm0
        punpcklwd xmm0,xmm3
        punpckhwd xmm4,xmm3
        movdqa    xmm7,xmm0
        movdqa    xmm5,xmm4
        pmaddwd   xmm0,[GOTOFF(eax,PW_F0114_F0250)] ; xmm0=BOL*FIX(0.114)+GOL*FIX(0.250)
        pmaddwd   xmm4,[GOTOFF(eax,PW_F0114_F0250)] ; xmm4=BOH*FIX(0.114)+GOH*FIX(0.250)
        pmaddwd   xmm7,[GOTOFF(eax,PW_MF008_MF041)] ; xmm7=BOL*-FIX(0.081)+GOL*-FIX(0.418)
        pmaddwd   xmm5,[GOTOFF(eax,PW_MF008_MF041)] ; xmm5=BOH*-FIX(0.081)+GOH*-FIX(0.418)

        movdqa    xmm3,[GOTOFF(eax,PD_ONEHALF)] ; xmm3=[PD_ONEHALF]

        paddd     xmm0, XMMWORD [wk(4)]
        paddd     xmm4, XMMWORD [wk(5)]
        paddd     xmm0,xmm3
        paddd     xmm4,xmm3
        psrld     xmm0,SCALEBITS        ; xmm0=YOL
        psrld     xmm4,SCALEBITS        ; xmm4=YOH
        packssdw  xmm0,xmm4             ; xmm0=YO

        pxor      xmm3,xmm3
        pxor      xmm4,xmm4
        punpcklwd xmm3,xmm1             ; xmm3=ROL
        punpckhwd xmm4,xmm1             ; xmm4=ROH
        psrld     xmm3,1                ; xmm3=ROL*FIX(0.500)
        psrld     xmm4,1                ; xmm4=ROH*FIX(0.500)

        movdqa    xmm1,[GOTOFF(eax,PD_ONEHALFM1_CJ)] ; xmm1=[PD_ONEHALFM1_CJ]

        paddd     xmm7,xmm3
        paddd     xmm5,xmm4
        paddd     xmm7,xmm1
        paddd     xmm5,xmm1
        psrld     xmm7,SCALEBITS        ; xmm7=CrOL
        psrld     xmm5,SCALEBITS        ; xmm5=CrOH
        packssdw  xmm7,xmm5             ; xmm7=CrO

        movdqa    xmm3, XMMWORD [wk(0)] ; xmm3=RE

        movdqa    xmm4,xmm6
        punpcklwd xmm6,xmm2
        punpckhwd xmm4,xmm2
        movdqa    xmm1,xmm6
        movdqa    xmm5,xmm4
        pmaddwd   xmm6,[GOTOFF(eax,PW_F0114_F0250)] ; xmm6=BEL*FIX(0.114)+GEL*FIX(0.250)
        pmaddwd   xmm4,[GOTOFF(eax,PW_F0114_F0250)] ; xmm4=BEH*FIX(0.114)+GEH*FIX(0.250)
        pmaddwd   xmm1,[GOTOFF(eax,PW_MF008_MF041)] ; xmm1=BEL*-FIX(0.081)+GEL*-FIX(0.418)
        pmaddwd   xmm5,[GOTOFF(eax,PW_MF008_MF041)] ; xmm5=BEH*-FIX(0.081)+GEH*-FIX(0.418)

        movdqa    xmm2,[GOTOFF(eax,PD_ONEHALF)] ; xmm2=[PD_ONEHALF]

        paddd     xmm6, XMMWORD [wk(6)]
        paddd     xmm4, XMMWORD [wk(7)]
        paddd     xmm6,xmm2
        paddd     xmm4,xmm2
        psrld     xmm6,SCALEBITS        ; xmm6=YEL
        psrld     xmm4,SCALEBITS        ; xmm4=YEH
        packssdw  xmm6,xmm4             ; xmm6=YE

        psllw     xmm0,BYTE_BIT
        por       xmm6,xmm0             ; xmm6=Y
        movdqa    XMMWORD [edi], xmm6   ; Save Y

        pxor      xmm2,xmm2
        pxor      xmm4,xmm4
        punpcklwd xmm2,xmm3             ; xmm2=REL
        punpckhwd xmm4,xmm3             ; xmm4=REH
        psrld     xmm2,1                ; xmm2=REL*FIX(0.500)
        psrld     xmm4,1                ; xmm4=REH*FIX(0.500)

        movdqa    xmm0,[GOTOFF(eax,PD_ONEHALFM1_CJ)] ; xmm0=[PD_ONEHALFM1_CJ]

        paddd     xmm1,xmm2
        paddd     xmm5,xmm4
        paddd     xmm1,xmm0
        paddd     xmm5,xmm0
        psrld     xmm1,SCALEBITS        ; xmm1=CrEL
        psrld     xmm5,SCALEBITS        ; xmm5=CrEH
        packssdw  xmm1,xmm5             ; xmm1=CrE

        psllw     xmm7,BYTE_BIT
        por       xmm1,xmm7             ; xmm1=Cr
        movdqa    XMMWORD [edx], xmm1   ; Save Cr

        sub     ecx, byte SIZEOF_XMMWORD
        add     esi, byte RGB_PIXELSIZE*SIZEOF_XMMWORD  ; inptr
        add     edi, byte SIZEOF_XMMWORD                ; outptr0
        add     ebx, byte SIZEOF_XMMWORD                ; outptr1
        add     edx, byte SIZEOF_XMMWORD                ; outptr2
        cmp     ecx, byte SIZEOF_XMMWORD
        jae     near .columnloop
        test    ecx,ecx
        jnz     near .column_ld1

        pop     ecx                     ; col
        pop     esi
        pop     edi
        pop     ebx
        pop     edx
        poppic  eax

        add     esi, byte SIZEOF_JSAMPROW       ; input_buf
        add     edi, byte SIZEOF_JSAMPROW
        add     ebx, byte SIZEOF_JSAMPROW
        add     edx, byte SIZEOF_JSAMPROW
        dec     eax                             ; num_rows
        jg      near .rowloop

.return:
        pop     edi
        pop     esi
;       pop     edx             ; need not be preserved
;       pop     ecx             ; need not be preserved
        pop     ebx
        mov     esp,ebp         ; esp <- aligned ebp
        pop     esp             ; esp <- original ebp
        pop     ebp
        ret

; For some reason, the OS X linker does not honor the request to align the
; segment unless we do this.
        align   16
