;
; jcclrss2-64.asm - colorspace conversion (64-bit SSE2)
;
; x86 SIMD extension for IJG JPEG library
; Copyright (C) 1999-2006, MIYASAKA Masaru.
; Copyright (C) 2009, D. R. Commander.
; 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);
;

; r10 = JDIMENSION img_width
; r11 = JSAMPARRAY input_buf
; r12 = JSAMPIMAGE output_buf
; r13 = JDIMENSION output_row
; r14 = int num_rows

%define wk(i)           rbp-(WK_NUM-(i))*SIZEOF_XMMWORD ; xmmword wk[WK_NUM]
%define WK_NUM          8

        align   16

        global  EXTN(jsimd_rgb_ycc_convert_sse2)

EXTN(jsimd_rgb_ycc_convert_sse2):
        push    rbp
        mov     rax,rsp                         ; rax = original rbp
        sub     rsp, byte 4
        and     rsp, byte (-SIZEOF_XMMWORD)     ; align to 128 bits
        mov     [rsp],rax
        mov     rbp,rsp                         ; rbp = aligned rbp
        lea     rsp, [wk(0)]
        collect_args
        push    rbx

        mov     rcx, r10
        test    rcx,rcx
        jz      near .return

        push    rcx

        mov rsi, r12
        mov rcx, r13
        mov     rdi, JSAMPARRAY [rsi+0*SIZEOF_JSAMPARRAY]
        mov     rbx, JSAMPARRAY [rsi+1*SIZEOF_JSAMPARRAY]
        mov     rdx, JSAMPARRAY [rsi+2*SIZEOF_JSAMPARRAY]
        lea     rdi, [rdi+rcx*SIZEOF_JSAMPROW]
        lea     rbx, [rbx+rcx*SIZEOF_JSAMPROW]
        lea     rdx, [rdx+rcx*SIZEOF_JSAMPROW]

        pop     rcx

        mov rsi, r11
        mov     eax, r14d
        test    rax,rax
        jle     near .return
.rowloop:
        push    rdx
        push    rbx
        push    rdi
        push    rsi
        push    rcx                     ; col

        mov     rsi, JSAMPROW [rsi]     ; inptr
        mov     rdi, JSAMPROW [rdi]     ; outptr0
        mov     rbx, JSAMPROW [rbx]     ; outptr1
        mov     rdx, JSAMPROW [rdx]     ; outptr2

        cmp     rcx, byte SIZEOF_XMMWORD
        jae     near .columnloop

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

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

.columnloop:
        movdqu  xmmA, XMMWORD [rsi+0*SIZEOF_XMMWORD]
        movdqu  xmmF, XMMWORD [rsi+1*SIZEOF_XMMWORD]
        movdqu  xmmB, XMMWORD [rsi+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     rcx, byte SIZEOF_XMMWORD/16
        movd    xmmA, XMM_DWORD [rsi+rcx*RGB_PIXELSIZE]
.column_ld2:
        test    cl, SIZEOF_XMMWORD/8
        jz      short .column_ld4
        sub     rcx, byte SIZEOF_XMMWORD/8
        movq    xmmE, XMM_MMWORD [rsi+rcx*RGB_PIXELSIZE]
        pslldq  xmmA, SIZEOF_MMWORD
        por     xmmA,xmmE
.column_ld4:
        test    cl, SIZEOF_XMMWORD/4
        jz      short .column_ld8
        sub     rcx, byte SIZEOF_XMMWORD/4
        movdqa  xmmE,xmmA
        movdqu  xmmA, XMMWORD [rsi+rcx*RGB_PIXELSIZE]
.column_ld8:
        test    cl, SIZEOF_XMMWORD/2
        mov     rcx, SIZEOF_XMMWORD
        jz      short .rgb_ycc_cnv
        movdqa  xmmF,xmmA
        movdqa  xmmH,xmmE
        movdqu  xmmA, XMMWORD [rsi+0*SIZEOF_XMMWORD]
        movdqu  xmmE, XMMWORD [rsi+1*SIZEOF_XMMWORD]
        jmp     short .rgb_ycc_cnv

.columnloop:
        movdqu  xmmA, XMMWORD [rsi+0*SIZEOF_XMMWORD]
        movdqu  xmmE, XMMWORD [rsi+1*SIZEOF_XMMWORD]
        movdqu  xmmF, XMMWORD [rsi+2*SIZEOF_XMMWORD]
        movdqu  xmmH, XMMWORD [rsi+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,[rel PW_F0299_F0337] ; xmm1=ROL*FIX(0.299)+GOL*FIX(0.337)
        pmaddwd   xmm6,[rel PW_F0299_F0337] ; xmm6=ROH*FIX(0.299)+GOH*FIX(0.337)
        pmaddwd   xmm7,[rel PW_MF016_MF033] ; xmm7=ROL*-FIX(0.168)+GOL*-FIX(0.331)
        pmaddwd   xmm4,[rel 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,[rel 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,[rel PW_F0299_F0337] ; xmm0=REL*FIX(0.299)+GEL*FIX(0.337)
        pmaddwd   xmm6,[rel PW_F0299_F0337] ; xmm6=REH*FIX(0.299)+GEH*FIX(0.337)
        pmaddwd   xmm5,[rel PW_MF016_MF033] ; xmm5=REL*-FIX(0.168)+GEL*-FIX(0.331)
        pmaddwd   xmm4,[rel 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,[rel 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 [rbx], 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,[rel PW_F0114_F0250] ; xmm0=BOL*FIX(0.114)+GOL*FIX(0.250)
        pmaddwd   xmm4,[rel PW_F0114_F0250] ; xmm4=BOH*FIX(0.114)+GOH*FIX(0.250)
        pmaddwd   xmm7,[rel PW_MF008_MF041] ; xmm7=BOL*-FIX(0.081)+GOL*-FIX(0.418)
        pmaddwd   xmm5,[rel PW_MF008_MF041] ; xmm5=BOH*-FIX(0.081)+GOH*-FIX(0.418)

        movdqa    xmm3,[rel 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,[rel 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,[rel PW_F0114_F0250] ; xmm6=BEL*FIX(0.114)+GEL*FIX(0.250)
        pmaddwd   xmm4,[rel PW_F0114_F0250] ; xmm4=BEH*FIX(0.114)+GEH*FIX(0.250)
        pmaddwd   xmm1,[rel PW_MF008_MF041] ; xmm1=BEL*-FIX(0.081)+GEL*-FIX(0.418)
        pmaddwd   xmm5,[rel PW_MF008_MF041] ; xmm5=BEH*-FIX(0.081)+GEH*-FIX(0.418)

        movdqa    xmm2,[rel 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 [rdi], 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,[rel 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 [rdx], xmm1   ; Save Cr

        sub     rcx, byte SIZEOF_XMMWORD
        add     rsi, byte RGB_PIXELSIZE*SIZEOF_XMMWORD  ; inptr
        add     rdi, byte SIZEOF_XMMWORD                ; outptr0
        add     rbx, byte SIZEOF_XMMWORD                ; outptr1
        add     rdx, byte SIZEOF_XMMWORD                ; outptr2
        cmp     rcx, byte SIZEOF_XMMWORD
        jae     near .columnloop
        test    rcx,rcx
        jnz     near .column_ld1

        pop     rcx                     ; col
        pop     rsi
        pop     rdi
        pop     rbx
        pop     rdx

        add     rsi, byte SIZEOF_JSAMPROW       ; input_buf
        add     rdi, byte SIZEOF_JSAMPROW
        add     rbx, byte SIZEOF_JSAMPROW
        add     rdx, byte SIZEOF_JSAMPROW
        dec     rax                             ; num_rows
        jg      near .rowloop

.return:
        pop     rbx
        uncollect_args
        mov     rsp,rbp         ; rsp <- aligned rbp
        pop     rsp             ; rsp <- original rbp
        pop     rbp
        ret

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