;
; jdcolext.asm - colorspace conversion (SSE2)
;
; Copyright 2009, 2012 Pierre Ossman <ossman@cendio.se> for Cendio AB
; Copyright (C) 2012, D. R. Commander.
;
; Based on the 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_ycc_rgb_convert_sse2 (JDIMENSION out_width,
;                             JSAMPIMAGE input_buf, JDIMENSION input_row,
;                             JSAMPARRAY output_buf, int num_rows)
;

%define out_width(b)    (b)+8           ; JDIMENSION out_width
%define input_buf(b)    (b)+12          ; JSAMPIMAGE input_buf
%define input_row(b)    (b)+16          ; JDIMENSION input_row
%define output_buf(b)   (b)+20          ; JSAMPARRAY output_buf
%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          2
%define gotptr          wk(0)-SIZEOF_POINTER    ; void * gotptr

        align   16
        global  EXTN(jsimd_ycc_rgb_convert_sse2) PRIVATE

EXTN(jsimd_ycc_rgb_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 [out_width(eax)]        ; num_cols
        test    ecx,ecx
        jz      near .return

        push    ecx

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

        pop     ecx

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

        mov     esi, JSAMPROW [esi]     ; inptr0
        mov     ebx, JSAMPROW [ebx]     ; inptr1
        mov     edx, JSAMPROW [edx]     ; inptr2
        mov     edi, JSAMPROW [edi]     ; outptr
        movpic  eax, POINTER [gotptr]   ; load GOT address (eax)
        alignx  16,7
.columnloop:

        movdqa  xmm5, XMMWORD [ebx]     ; xmm5=Cb(0123456789ABCDEF)
        movdqa  xmm1, XMMWORD [edx]     ; xmm1=Cr(0123456789ABCDEF)

        pcmpeqw xmm4,xmm4
        pcmpeqw xmm7,xmm7
        psrlw   xmm4,BYTE_BIT
        psllw   xmm7,7                  ; xmm7={0xFF80 0xFF80 0xFF80 0xFF80 ..}
        movdqa  xmm0,xmm4               ; xmm0=xmm4={0xFF 0x00 0xFF 0x00 ..}

        pand    xmm4,xmm5               ; xmm4=Cb(02468ACE)=CbE
        psrlw   xmm5,BYTE_BIT           ; xmm5=Cb(13579BDF)=CbO
        pand    xmm0,xmm1               ; xmm0=Cr(02468ACE)=CrE
        psrlw   xmm1,BYTE_BIT           ; xmm1=Cr(13579BDF)=CrO

        paddw   xmm4,xmm7
        paddw   xmm5,xmm7
        paddw   xmm0,xmm7
        paddw   xmm1,xmm7

        ; (Original)
        ; R = Y                + 1.40200 * Cr
        ; G = Y - 0.34414 * Cb - 0.71414 * Cr
        ; B = Y + 1.77200 * Cb
        ;
        ; (This implementation)
        ; R = Y                + 0.40200 * Cr + Cr
        ; G = Y - 0.34414 * Cb + 0.28586 * Cr - Cr
        ; B = Y - 0.22800 * Cb + Cb + Cb

        movdqa  xmm2,xmm4               ; xmm2=CbE
        movdqa  xmm3,xmm5               ; xmm3=CbO
        paddw   xmm4,xmm4               ; xmm4=2*CbE
        paddw   xmm5,xmm5               ; xmm5=2*CbO
        movdqa  xmm6,xmm0               ; xmm6=CrE
        movdqa  xmm7,xmm1               ; xmm7=CrO
        paddw   xmm0,xmm0               ; xmm0=2*CrE
        paddw   xmm1,xmm1               ; xmm1=2*CrO

        pmulhw  xmm4,[GOTOFF(eax,PW_MF0228)]    ; xmm4=(2*CbE * -FIX(0.22800))
        pmulhw  xmm5,[GOTOFF(eax,PW_MF0228)]    ; xmm5=(2*CbO * -FIX(0.22800))
        pmulhw  xmm0,[GOTOFF(eax,PW_F0402)]     ; xmm0=(2*CrE * FIX(0.40200))
        pmulhw  xmm1,[GOTOFF(eax,PW_F0402)]     ; xmm1=(2*CrO * FIX(0.40200))

        paddw   xmm4,[GOTOFF(eax,PW_ONE)]
        paddw   xmm5,[GOTOFF(eax,PW_ONE)]
        psraw   xmm4,1                  ; xmm4=(CbE * -FIX(0.22800))
        psraw   xmm5,1                  ; xmm5=(CbO * -FIX(0.22800))
        paddw   xmm0,[GOTOFF(eax,PW_ONE)]
        paddw   xmm1,[GOTOFF(eax,PW_ONE)]
        psraw   xmm0,1                  ; xmm0=(CrE * FIX(0.40200))
        psraw   xmm1,1                  ; xmm1=(CrO * FIX(0.40200))

        paddw   xmm4,xmm2
        paddw   xmm5,xmm3
        paddw   xmm4,xmm2               ; xmm4=(CbE * FIX(1.77200))=(B-Y)E
        paddw   xmm5,xmm3               ; xmm5=(CbO * FIX(1.77200))=(B-Y)O
        paddw   xmm0,xmm6               ; xmm0=(CrE * FIX(1.40200))=(R-Y)E
        paddw   xmm1,xmm7               ; xmm1=(CrO * FIX(1.40200))=(R-Y)O

        movdqa  XMMWORD [wk(0)], xmm4   ; wk(0)=(B-Y)E
        movdqa  XMMWORD [wk(1)], xmm5   ; wk(1)=(B-Y)O

        movdqa    xmm4,xmm2
        movdqa    xmm5,xmm3
        punpcklwd xmm2,xmm6
        punpckhwd xmm4,xmm6
        pmaddwd   xmm2,[GOTOFF(eax,PW_MF0344_F0285)]
        pmaddwd   xmm4,[GOTOFF(eax,PW_MF0344_F0285)]
        punpcklwd xmm3,xmm7
        punpckhwd xmm5,xmm7
        pmaddwd   xmm3,[GOTOFF(eax,PW_MF0344_F0285)]
        pmaddwd   xmm5,[GOTOFF(eax,PW_MF0344_F0285)]

        paddd     xmm2,[GOTOFF(eax,PD_ONEHALF)]
        paddd     xmm4,[GOTOFF(eax,PD_ONEHALF)]
        psrad     xmm2,SCALEBITS
        psrad     xmm4,SCALEBITS
        paddd     xmm3,[GOTOFF(eax,PD_ONEHALF)]
        paddd     xmm5,[GOTOFF(eax,PD_ONEHALF)]
        psrad     xmm3,SCALEBITS
        psrad     xmm5,SCALEBITS

        packssdw  xmm2,xmm4     ; xmm2=CbE*-FIX(0.344)+CrE*FIX(0.285)
        packssdw  xmm3,xmm5     ; xmm3=CbO*-FIX(0.344)+CrO*FIX(0.285)
        psubw     xmm2,xmm6     ; xmm2=CbE*-FIX(0.344)+CrE*-FIX(0.714)=(G-Y)E
        psubw     xmm3,xmm7     ; xmm3=CbO*-FIX(0.344)+CrO*-FIX(0.714)=(G-Y)O

        movdqa    xmm5, XMMWORD [esi]   ; xmm5=Y(0123456789ABCDEF)

        pcmpeqw   xmm4,xmm4
        psrlw     xmm4,BYTE_BIT         ; xmm4={0xFF 0x00 0xFF 0x00 ..}
        pand      xmm4,xmm5             ; xmm4=Y(02468ACE)=YE
        psrlw     xmm5,BYTE_BIT         ; xmm5=Y(13579BDF)=YO

        paddw     xmm0,xmm4             ; xmm0=((R-Y)E+YE)=RE=R(02468ACE)
        paddw     xmm1,xmm5             ; xmm1=((R-Y)O+YO)=RO=R(13579BDF)
        packuswb  xmm0,xmm0             ; xmm0=R(02468ACE********)
        packuswb  xmm1,xmm1             ; xmm1=R(13579BDF********)

        paddw     xmm2,xmm4             ; xmm2=((G-Y)E+YE)=GE=G(02468ACE)
        paddw     xmm3,xmm5             ; xmm3=((G-Y)O+YO)=GO=G(13579BDF)
        packuswb  xmm2,xmm2             ; xmm2=G(02468ACE********)
        packuswb  xmm3,xmm3             ; xmm3=G(13579BDF********)

        paddw     xmm4, XMMWORD [wk(0)] ; xmm4=(YE+(B-Y)E)=BE=B(02468ACE)
        paddw     xmm5, XMMWORD [wk(1)] ; xmm5=(YO+(B-Y)O)=BO=B(13579BDF)
        packuswb  xmm4,xmm4             ; xmm4=B(02468ACE********)
        packuswb  xmm5,xmm5             ; xmm5=B(13579BDF********)

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

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

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

        movdqa    xmmG,xmmA
        movdqa    xmmH,xmmA
        punpcklwd xmmA,xmmE     ; xmmA=(00 10 20 01 02 12 22 03 04 14 24 05 06 16 26 07)
        punpckhwd xmmG,xmmE     ; xmmG=(08 18 28 09 0A 1A 2A 0B 0C 1C 2C 0D 0E 1E 2E 0F)

        psrldq    xmmH,2        ; xmmH=(02 12 04 14 06 16 08 18 0A 1A 0C 1C 0E 1E -- --)
        psrldq    xmmE,2        ; xmmE=(22 03 24 05 26 07 28 09 2A 0B 2C 0D 2E 0F -- --)

        movdqa    xmmC,xmmD
        movdqa    xmmB,xmmD
        punpcklwd xmmD,xmmH     ; xmmD=(11 21 02 12 13 23 04 14 15 25 06 16 17 27 08 18)
        punpckhwd xmmC,xmmH     ; xmmC=(19 29 0A 1A 1B 2B 0C 1C 1D 2D 0E 1E 1F 2F -- --)

        psrldq    xmmB,2        ; xmmB=(13 23 15 25 17 27 19 29 1B 2B 1D 2D 1F 2F -- --)

        movdqa    xmmF,xmmE
        punpcklwd xmmE,xmmB     ; xmmE=(22 03 13 23 24 05 15 25 26 07 17 27 28 09 19 29)
        punpckhwd xmmF,xmmB     ; xmmF=(2A 0B 1B 2B 2C 0D 1D 2D 2E 0F 1F 2F -- -- -- --)

        pshufd    xmmH,xmmA,0x4E; xmmH=(04 14 24 05 06 16 26 07 00 10 20 01 02 12 22 03)
        movdqa    xmmB,xmmE
        punpckldq xmmA,xmmD     ; xmmA=(00 10 20 01 11 21 02 12 02 12 22 03 13 23 04 14)
        punpckldq xmmE,xmmH     ; xmmE=(22 03 13 23 04 14 24 05 24 05 15 25 06 16 26 07)
        punpckhdq xmmD,xmmB     ; xmmD=(15 25 06 16 26 07 17 27 17 27 08 18 28 09 19 29)

        pshufd    xmmH,xmmG,0x4E; xmmH=(0C 1C 2C 0D 0E 1E 2E 0F 08 18 28 09 0A 1A 2A 0B)
        movdqa    xmmB,xmmF
        punpckldq xmmG,xmmC     ; xmmG=(08 18 28 09 19 29 0A 1A 0A 1A 2A 0B 1B 2B 0C 1C)
        punpckldq xmmF,xmmH     ; xmmF=(2A 0B 1B 2B 0C 1C 2C 0D 2C 0D 1D 2D 0E 1E 2E 0F)
        punpckhdq xmmC,xmmB     ; xmmC=(1D 2D 0E 1E 2E 0F 1F 2F 1F 2F -- -- -- -- -- --)

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

        cmp     ecx, byte SIZEOF_XMMWORD
        jb      short .column_st32

        test    edi, SIZEOF_XMMWORD-1
        jnz     short .out1
        ; --(aligned)-------------------
        movntdq XMMWORD [edi+0*SIZEOF_XMMWORD], xmmA
        movntdq XMMWORD [edi+1*SIZEOF_XMMWORD], xmmD
        movntdq XMMWORD [edi+2*SIZEOF_XMMWORD], xmmF
        jmp     short .out0
.out1:  ; --(unaligned)-----------------
        movdqu  XMMWORD [edi+0*SIZEOF_XMMWORD], xmmA
        movdqu  XMMWORD [edi+1*SIZEOF_XMMWORD], xmmD
        movdqu  XMMWORD [edi+2*SIZEOF_XMMWORD], xmmF
.out0:
        add     edi, byte RGB_PIXELSIZE*SIZEOF_XMMWORD  ; outptr
        sub     ecx, byte SIZEOF_XMMWORD
        jz      near .nextrow

        add     esi, byte SIZEOF_XMMWORD        ; inptr0
        add     ebx, byte SIZEOF_XMMWORD        ; inptr1
        add     edx, byte SIZEOF_XMMWORD        ; inptr2
        jmp     near .columnloop
        alignx  16,7

.column_st32:
        lea     ecx, [ecx+ecx*2]                ; imul ecx, RGB_PIXELSIZE
        cmp     ecx, byte 2*SIZEOF_XMMWORD
        jb      short .column_st16
        movdqu  XMMWORD [edi+0*SIZEOF_XMMWORD], xmmA
        movdqu  XMMWORD [edi+1*SIZEOF_XMMWORD], xmmD
        add     edi, byte 2*SIZEOF_XMMWORD      ; outptr
        movdqa  xmmA,xmmF
        sub     ecx, byte 2*SIZEOF_XMMWORD
        jmp     short .column_st15
.column_st16:
        cmp     ecx, byte SIZEOF_XMMWORD
        jb      short .column_st15
        movdqu  XMMWORD [edi+0*SIZEOF_XMMWORD], xmmA
        add     edi, byte SIZEOF_XMMWORD        ; outptr
        movdqa  xmmA,xmmD
        sub     ecx, byte SIZEOF_XMMWORD
.column_st15:
        ; Store the lower 8 bytes of xmmA to the output when it has enough
        ; space.
        cmp     ecx, byte SIZEOF_MMWORD
        jb      short .column_st7
        movq    XMM_MMWORD [edi], xmmA
        add     edi, byte SIZEOF_MMWORD
        sub     ecx, byte SIZEOF_MMWORD
        psrldq  xmmA, SIZEOF_MMWORD
.column_st7:
        ; Store the lower 4 bytes of xmmA to the output when it has enough
        ; space.
        cmp     ecx, byte SIZEOF_DWORD
        jb      short .column_st3
        movd    XMM_DWORD [edi], xmmA
        add     edi, byte SIZEOF_DWORD
        sub     ecx, byte SIZEOF_DWORD
        psrldq  xmmA, SIZEOF_DWORD
.column_st3:
        ; Store the lower 2 bytes of eax to the output when it has enough
        ; space.
        movd    eax, xmmA
        cmp     ecx, byte SIZEOF_WORD
        jb      short .column_st1
        mov     WORD [edi], ax
        add     edi, byte SIZEOF_WORD
        sub     ecx, byte SIZEOF_WORD
        shr     eax, 16
.column_st1:
        ; Store the lower 1 byte of eax to the output when it has enough
        ; space.
        test    ecx, ecx
        jz      short .nextrow
        mov     BYTE [edi], al

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

%ifdef RGBX_FILLER_0XFF
        pcmpeqb   xmm6,xmm6             ; xmm6=XE=X(02468ACE********)
        pcmpeqb   xmm7,xmm7             ; xmm7=XO=X(13579BDF********)
%else
        pxor      xmm6,xmm6             ; xmm6=XE=X(02468ACE********)
        pxor      xmm7,xmm7             ; xmm7=XO=X(13579BDF********)
%endif
        ; xmmA=(00 02 04 06 08 0A 0C 0E **), xmmB=(01 03 05 07 09 0B 0D 0F **)
        ; xmmC=(10 12 14 16 18 1A 1C 1E **), xmmD=(11 13 15 17 19 1B 1D 1F **)
        ; xmmE=(20 22 24 26 28 2A 2C 2E **), xmmF=(21 23 25 27 29 2B 2D 2F **)
        ; xmmG=(30 32 34 36 38 3A 3C 3E **), xmmH=(31 33 35 37 39 3B 3D 3F **)

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

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

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

        cmp     ecx, byte SIZEOF_XMMWORD
        jb      short .column_st32

        test    edi, SIZEOF_XMMWORD-1
        jnz     short .out1
        ; --(aligned)-------------------
        movntdq XMMWORD [edi+0*SIZEOF_XMMWORD], xmmA
        movntdq XMMWORD [edi+1*SIZEOF_XMMWORD], xmmD
        movntdq XMMWORD [edi+2*SIZEOF_XMMWORD], xmmC
        movntdq XMMWORD [edi+3*SIZEOF_XMMWORD], xmmH
        jmp     short .out0
.out1:  ; --(unaligned)-----------------
        movdqu  XMMWORD [edi+0*SIZEOF_XMMWORD], xmmA
        movdqu  XMMWORD [edi+1*SIZEOF_XMMWORD], xmmD
        movdqu  XMMWORD [edi+2*SIZEOF_XMMWORD], xmmC
        movdqu  XMMWORD [edi+3*SIZEOF_XMMWORD], xmmH
.out0:
        add     edi, byte RGB_PIXELSIZE*SIZEOF_XMMWORD  ; outptr
        sub     ecx, byte SIZEOF_XMMWORD
        jz      near .nextrow

        add     esi, byte SIZEOF_XMMWORD        ; inptr0
        add     ebx, byte SIZEOF_XMMWORD        ; inptr1
        add     edx, byte SIZEOF_XMMWORD        ; inptr2
        jmp     near .columnloop
        alignx  16,7

.column_st32:
        cmp     ecx, byte SIZEOF_XMMWORD/2
        jb      short .column_st16
        movdqu  XMMWORD [edi+0*SIZEOF_XMMWORD], xmmA
        movdqu  XMMWORD [edi+1*SIZEOF_XMMWORD], xmmD
        add     edi, byte 2*SIZEOF_XMMWORD      ; outptr
        movdqa  xmmA,xmmC
        movdqa  xmmD,xmmH
        sub     ecx, byte SIZEOF_XMMWORD/2
.column_st16:
        cmp     ecx, byte SIZEOF_XMMWORD/4
        jb      short .column_st15
        movdqu  XMMWORD [edi+0*SIZEOF_XMMWORD], xmmA
        add     edi, byte SIZEOF_XMMWORD        ; outptr
        movdqa  xmmA,xmmD
        sub     ecx, byte SIZEOF_XMMWORD/4
.column_st15:
        ; Store two pixels (8 bytes) of xmmA to the output when it has enough
        ; space.
        cmp     ecx, byte SIZEOF_XMMWORD/8
        jb      short .column_st7
        movq    XMM_MMWORD [edi], xmmA
        add     edi, byte SIZEOF_XMMWORD/8*4
        sub     ecx, byte SIZEOF_XMMWORD/8
        psrldq  xmmA, SIZEOF_XMMWORD/8*4
.column_st7:
        ; Store one pixel (4 bytes) of xmmA to the output when it has enough
        ; space.
        test    ecx, ecx
        jz      short .nextrow
        movd    XMM_DWORD [edi], xmmA

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

        alignx  16,7

.nextrow:
        pop     ecx
        pop     esi
        pop     ebx
        pop     edx
        pop     edi
        pop     eax

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

        sfence          ; flush the write buffer

.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
