;
; jidctint.asm - accurate integer IDCT (64-bit SSE2)
;
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
; Copyright 2009 D. R. Commander
;
; Based on
; 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
;
; This file contains a slow-but-accurate integer implementation of the
; inverse DCT (Discrete Cosine Transform). The following code is based
; directly on the IJG's original jidctint.c; see the jidctint.c for
; more details.
;
; [TAB8]

%include "jsimdext.inc"
%include "jdct.inc"

; --------------------------------------------------------------------------

%define CONST_BITS      13
%define PASS1_BITS      2

%define DESCALE_P1      (CONST_BITS-PASS1_BITS)
%define DESCALE_P2      (CONST_BITS+PASS1_BITS+3)

%if CONST_BITS == 13
F_0_298 equ      2446           ; FIX(0.298631336)
F_0_390 equ      3196           ; FIX(0.390180644)
F_0_541 equ      4433           ; FIX(0.541196100)
F_0_765 equ      6270           ; FIX(0.765366865)
F_0_899 equ      7373           ; FIX(0.899976223)
F_1_175 equ      9633           ; FIX(1.175875602)
F_1_501 equ     12299           ; FIX(1.501321110)
F_1_847 equ     15137           ; FIX(1.847759065)
F_1_961 equ     16069           ; FIX(1.961570560)
F_2_053 equ     16819           ; FIX(2.053119869)
F_2_562 equ     20995           ; FIX(2.562915447)
F_3_072 equ     25172           ; FIX(3.072711026)
%else
; NASM cannot do compile-time arithmetic on floating-point constants.
%define DESCALE(x,n)  (((x)+(1<<((n)-1)))>>(n))
F_0_298 equ     DESCALE( 320652955,30-CONST_BITS)       ; FIX(0.298631336)
F_0_390 equ     DESCALE( 418953276,30-CONST_BITS)       ; FIX(0.390180644)
F_0_541 equ     DESCALE( 581104887,30-CONST_BITS)       ; FIX(0.541196100)
F_0_765 equ     DESCALE( 821806413,30-CONST_BITS)       ; FIX(0.765366865)
F_0_899 equ     DESCALE( 966342111,30-CONST_BITS)       ; FIX(0.899976223)
F_1_175 equ     DESCALE(1262586813,30-CONST_BITS)       ; FIX(1.175875602)
F_1_501 equ     DESCALE(1612031267,30-CONST_BITS)       ; FIX(1.501321110)
F_1_847 equ     DESCALE(1984016188,30-CONST_BITS)       ; FIX(1.847759065)
F_1_961 equ     DESCALE(2106220350,30-CONST_BITS)       ; FIX(1.961570560)
F_2_053 equ     DESCALE(2204520673,30-CONST_BITS)       ; FIX(2.053119869)
F_2_562 equ     DESCALE(2751909506,30-CONST_BITS)       ; FIX(2.562915447)
F_3_072 equ     DESCALE(3299298341,30-CONST_BITS)       ; FIX(3.072711026)
%endif

; --------------------------------------------------------------------------
        SECTION SEG_CONST

        alignz  16
        global  EXTN(jconst_idct_islow_sse2)

EXTN(jconst_idct_islow_sse2):

PW_F130_F054    times 4 dw  (F_0_541+F_0_765), F_0_541
PW_F054_MF130   times 4 dw  F_0_541, (F_0_541-F_1_847)
PW_MF078_F117   times 4 dw  (F_1_175-F_1_961), F_1_175
PW_F117_F078    times 4 dw  F_1_175, (F_1_175-F_0_390)
PW_MF060_MF089  times 4 dw  (F_0_298-F_0_899),-F_0_899
PW_MF089_F060   times 4 dw -F_0_899, (F_1_501-F_0_899)
PW_MF050_MF256  times 4 dw  (F_2_053-F_2_562),-F_2_562
PW_MF256_F050   times 4 dw -F_2_562, (F_3_072-F_2_562)
PD_DESCALE_P1   times 4 dd  1 << (DESCALE_P1-1)
PD_DESCALE_P2   times 4 dd  1 << (DESCALE_P2-1)
PB_CENTERJSAMP  times 16 db CENTERJSAMPLE

        alignz  16

; --------------------------------------------------------------------------
        SECTION SEG_TEXT
        BITS    64
;
; Perform dequantization and inverse DCT on one block of coefficients.
;
; GLOBAL(void)
; jsimd_idct_islow_sse2 (void *dct_table, JCOEFPTR coef_block,
;                        JSAMPARRAY output_buf, JDIMENSION output_col)
;

; r10 = jpeg_component_info *compptr
; r11 = JCOEFPTR coef_block
; r12 = JSAMPARRAY output_buf
; r13 = JDIMENSION output_col

%define original_rbp    rbp+0
%define wk(i)           rbp-(WK_NUM-(i))*SIZEOF_XMMWORD ; xmmword wk[WK_NUM]
%define WK_NUM          12

        align   16
        global  EXTN(jsimd_idct_islow_sse2)

EXTN(jsimd_idct_islow_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

        ; ---- Pass 1: process columns from input.

        mov     rdx, r10                ; quantptr
        mov     rsi, r11                ; inptr

%ifndef NO_ZERO_COLUMN_TEST_ISLOW_SSE2
        mov     eax, DWORD [DWBLOCK(1,0,rsi,SIZEOF_JCOEF)]
        or      eax, DWORD [DWBLOCK(2,0,rsi,SIZEOF_JCOEF)]
        jnz     near .columnDCT

        movdqa  xmm0, XMMWORD [XMMBLOCK(1,0,rsi,SIZEOF_JCOEF)]
        movdqa  xmm1, XMMWORD [XMMBLOCK(2,0,rsi,SIZEOF_JCOEF)]
        por     xmm0, XMMWORD [XMMBLOCK(3,0,rsi,SIZEOF_JCOEF)]
        por     xmm1, XMMWORD [XMMBLOCK(4,0,rsi,SIZEOF_JCOEF)]
        por     xmm0, XMMWORD [XMMBLOCK(5,0,rsi,SIZEOF_JCOEF)]
        por     xmm1, XMMWORD [XMMBLOCK(6,0,rsi,SIZEOF_JCOEF)]
        por     xmm0, XMMWORD [XMMBLOCK(7,0,rsi,SIZEOF_JCOEF)]
        por     xmm1,xmm0
        packsswb xmm1,xmm1
        packsswb xmm1,xmm1
        movd    eax,xmm1
        test    rax,rax
        jnz     short .columnDCT

        ; -- AC terms all zero

        movdqa  xmm5, XMMWORD [XMMBLOCK(0,0,rsi,SIZEOF_JCOEF)]
        pmullw  xmm5, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]

        psllw   xmm5,PASS1_BITS

        movdqa    xmm4,xmm5             ; xmm5=in0=(00 01 02 03 04 05 06 07)
        punpcklwd xmm5,xmm5             ; xmm5=(00 00 01 01 02 02 03 03)
        punpckhwd xmm4,xmm4             ; xmm4=(04 04 05 05 06 06 07 07)

        pshufd  xmm7,xmm5,0x00          ; xmm7=col0=(00 00 00 00 00 00 00 00)
        pshufd  xmm6,xmm5,0x55          ; xmm6=col1=(01 01 01 01 01 01 01 01)
        pshufd  xmm1,xmm5,0xAA          ; xmm1=col2=(02 02 02 02 02 02 02 02)
        pshufd  xmm5,xmm5,0xFF          ; xmm5=col3=(03 03 03 03 03 03 03 03)
        pshufd  xmm0,xmm4,0x00          ; xmm0=col4=(04 04 04 04 04 04 04 04)
        pshufd  xmm3,xmm4,0x55          ; xmm3=col5=(05 05 05 05 05 05 05 05)
        pshufd  xmm2,xmm4,0xAA          ; xmm2=col6=(06 06 06 06 06 06 06 06)
        pshufd  xmm4,xmm4,0xFF          ; xmm4=col7=(07 07 07 07 07 07 07 07)

        movdqa  XMMWORD [wk(8)], xmm6   ; wk(8)=col1
        movdqa  XMMWORD [wk(9)], xmm5   ; wk(9)=col3
        movdqa  XMMWORD [wk(10)], xmm3  ; wk(10)=col5
        movdqa  XMMWORD [wk(11)], xmm4  ; wk(11)=col7
        jmp     near .column_end
%endif
.columnDCT:

        ; -- Even part

        movdqa  xmm0, XMMWORD [XMMBLOCK(0,0,rsi,SIZEOF_JCOEF)]
        movdqa  xmm1, XMMWORD [XMMBLOCK(2,0,rsi,SIZEOF_JCOEF)]
        pmullw  xmm0, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  xmm1, XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
        movdqa  xmm2, XMMWORD [XMMBLOCK(4,0,rsi,SIZEOF_JCOEF)]
        movdqa  xmm3, XMMWORD [XMMBLOCK(6,0,rsi,SIZEOF_JCOEF)]
        pmullw  xmm2, XMMWORD [XMMBLOCK(4,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  xmm3, XMMWORD [XMMBLOCK(6,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]

        ; (Original)
        ; z1 = (z2 + z3) * 0.541196100;
        ; tmp2 = z1 + z3 * -1.847759065;
        ; tmp3 = z1 + z2 * 0.765366865;
        ;
        ; (This implementation)
        ; tmp2 = z2 * 0.541196100 + z3 * (0.541196100 - 1.847759065);
        ; tmp3 = z2 * (0.541196100 + 0.765366865) + z3 * 0.541196100;

        movdqa    xmm4,xmm1             ; xmm1=in2=z2
        movdqa    xmm5,xmm1
        punpcklwd xmm4,xmm3             ; xmm3=in6=z3
        punpckhwd xmm5,xmm3
        movdqa    xmm1,xmm4
        movdqa    xmm3,xmm5
        pmaddwd   xmm4,[rel PW_F130_F054]       ; xmm4=tmp3L
        pmaddwd   xmm5,[rel PW_F130_F054]       ; xmm5=tmp3H
        pmaddwd   xmm1,[rel PW_F054_MF130]      ; xmm1=tmp2L
        pmaddwd   xmm3,[rel PW_F054_MF130]      ; xmm3=tmp2H

        movdqa    xmm6,xmm0
        paddw     xmm0,xmm2             ; xmm0=in0+in4
        psubw     xmm6,xmm2             ; xmm6=in0-in4

        pxor      xmm7,xmm7
        pxor      xmm2,xmm2
        punpcklwd xmm7,xmm0             ; xmm7=tmp0L
        punpckhwd xmm2,xmm0             ; xmm2=tmp0H
        psrad     xmm7,(16-CONST_BITS)  ; psrad xmm7,16 & pslld xmm7,CONST_BITS
        psrad     xmm2,(16-CONST_BITS)  ; psrad xmm2,16 & pslld xmm2,CONST_BITS

        movdqa  xmm0,xmm7
        paddd   xmm7,xmm4               ; xmm7=tmp10L
        psubd   xmm0,xmm4               ; xmm0=tmp13L
        movdqa  xmm4,xmm2
        paddd   xmm2,xmm5               ; xmm2=tmp10H
        psubd   xmm4,xmm5               ; xmm4=tmp13H

        movdqa  XMMWORD [wk(0)], xmm7   ; wk(0)=tmp10L
        movdqa  XMMWORD [wk(1)], xmm2   ; wk(1)=tmp10H
        movdqa  XMMWORD [wk(2)], xmm0   ; wk(2)=tmp13L
        movdqa  XMMWORD [wk(3)], xmm4   ; wk(3)=tmp13H

        pxor      xmm5,xmm5
        pxor      xmm7,xmm7
        punpcklwd xmm5,xmm6             ; xmm5=tmp1L
        punpckhwd xmm7,xmm6             ; xmm7=tmp1H
        psrad     xmm5,(16-CONST_BITS)  ; psrad xmm5,16 & pslld xmm5,CONST_BITS
        psrad     xmm7,(16-CONST_BITS)  ; psrad xmm7,16 & pslld xmm7,CONST_BITS

        movdqa  xmm2,xmm5
        paddd   xmm5,xmm1               ; xmm5=tmp11L
        psubd   xmm2,xmm1               ; xmm2=tmp12L
        movdqa  xmm0,xmm7
        paddd   xmm7,xmm3               ; xmm7=tmp11H
        psubd   xmm0,xmm3               ; xmm0=tmp12H

        movdqa  XMMWORD [wk(4)], xmm5   ; wk(4)=tmp11L
        movdqa  XMMWORD [wk(5)], xmm7   ; wk(5)=tmp11H
        movdqa  XMMWORD [wk(6)], xmm2   ; wk(6)=tmp12L
        movdqa  XMMWORD [wk(7)], xmm0   ; wk(7)=tmp12H

        ; -- Odd part

        movdqa  xmm4, XMMWORD [XMMBLOCK(1,0,rsi,SIZEOF_JCOEF)]
        movdqa  xmm6, XMMWORD [XMMBLOCK(3,0,rsi,SIZEOF_JCOEF)]
        pmullw  xmm4, XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  xmm6, XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
        movdqa  xmm1, XMMWORD [XMMBLOCK(5,0,rsi,SIZEOF_JCOEF)]
        movdqa  xmm3, XMMWORD [XMMBLOCK(7,0,rsi,SIZEOF_JCOEF)]
        pmullw  xmm1, XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  xmm3, XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_ISLOW_MULT_TYPE)]

        movdqa  xmm5,xmm6
        movdqa  xmm7,xmm4
        paddw   xmm5,xmm3               ; xmm5=z3
        paddw   xmm7,xmm1               ; xmm7=z4

        ; (Original)
        ; z5 = (z3 + z4) * 1.175875602;
        ; z3 = z3 * -1.961570560;  z4 = z4 * -0.390180644;
        ; z3 += z5;  z4 += z5;
        ;
        ; (This implementation)
        ; z3 = z3 * (1.175875602 - 1.961570560) + z4 * 1.175875602;
        ; z4 = z3 * 1.175875602 + z4 * (1.175875602 - 0.390180644);

        movdqa    xmm2,xmm5
        movdqa    xmm0,xmm5
        punpcklwd xmm2,xmm7
        punpckhwd xmm0,xmm7
        movdqa    xmm5,xmm2
        movdqa    xmm7,xmm0
        pmaddwd   xmm2,[rel PW_MF078_F117]      ; xmm2=z3L
        pmaddwd   xmm0,[rel PW_MF078_F117]      ; xmm0=z3H
        pmaddwd   xmm5,[rel PW_F117_F078]       ; xmm5=z4L
        pmaddwd   xmm7,[rel PW_F117_F078]       ; xmm7=z4H

        movdqa  XMMWORD [wk(10)], xmm2  ; wk(10)=z3L
        movdqa  XMMWORD [wk(11)], xmm0  ; wk(11)=z3H

        ; (Original)
        ; z1 = tmp0 + tmp3;  z2 = tmp1 + tmp2;
        ; tmp0 = tmp0 * 0.298631336;  tmp1 = tmp1 * 2.053119869;
        ; tmp2 = tmp2 * 3.072711026;  tmp3 = tmp3 * 1.501321110;
        ; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
        ; tmp0 += z1 + z3;  tmp1 += z2 + z4;
        ; tmp2 += z2 + z3;  tmp3 += z1 + z4;
        ;
        ; (This implementation)
        ; tmp0 = tmp0 * (0.298631336 - 0.899976223) + tmp3 * -0.899976223;
        ; tmp1 = tmp1 * (2.053119869 - 2.562915447) + tmp2 * -2.562915447;
        ; tmp2 = tmp1 * -2.562915447 + tmp2 * (3.072711026 - 2.562915447);
        ; tmp3 = tmp0 * -0.899976223 + tmp3 * (1.501321110 - 0.899976223);
        ; tmp0 += z3;  tmp1 += z4;
        ; tmp2 += z3;  tmp3 += z4;

        movdqa    xmm2,xmm3
        movdqa    xmm0,xmm3
        punpcklwd xmm2,xmm4
        punpckhwd xmm0,xmm4
        movdqa    xmm3,xmm2
        movdqa    xmm4,xmm0
        pmaddwd   xmm2,[rel PW_MF060_MF089]     ; xmm2=tmp0L
        pmaddwd   xmm0,[rel PW_MF060_MF089]     ; xmm0=tmp0H
        pmaddwd   xmm3,[rel PW_MF089_F060]      ; xmm3=tmp3L
        pmaddwd   xmm4,[rel PW_MF089_F060]      ; xmm4=tmp3H

        paddd   xmm2, XMMWORD [wk(10)]  ; xmm2=tmp0L
        paddd   xmm0, XMMWORD [wk(11)]  ; xmm0=tmp0H
        paddd   xmm3,xmm5               ; xmm3=tmp3L
        paddd   xmm4,xmm7               ; xmm4=tmp3H

        movdqa  XMMWORD [wk(8)], xmm2   ; wk(8)=tmp0L
        movdqa  XMMWORD [wk(9)], xmm0   ; wk(9)=tmp0H

        movdqa    xmm2,xmm1
        movdqa    xmm0,xmm1
        punpcklwd xmm2,xmm6
        punpckhwd xmm0,xmm6
        movdqa    xmm1,xmm2
        movdqa    xmm6,xmm0
        pmaddwd   xmm2,[rel PW_MF050_MF256]     ; xmm2=tmp1L
        pmaddwd   xmm0,[rel PW_MF050_MF256]     ; xmm0=tmp1H
        pmaddwd   xmm1,[rel PW_MF256_F050]      ; xmm1=tmp2L
        pmaddwd   xmm6,[rel PW_MF256_F050]      ; xmm6=tmp2H

        paddd   xmm2,xmm5               ; xmm2=tmp1L
        paddd   xmm0,xmm7               ; xmm0=tmp1H
        paddd   xmm1, XMMWORD [wk(10)]  ; xmm1=tmp2L
        paddd   xmm6, XMMWORD [wk(11)]  ; xmm6=tmp2H

        movdqa  XMMWORD [wk(10)], xmm2  ; wk(10)=tmp1L
        movdqa  XMMWORD [wk(11)], xmm0  ; wk(11)=tmp1H

        ; -- Final output stage

        movdqa  xmm5, XMMWORD [wk(0)]   ; xmm5=tmp10L
        movdqa  xmm7, XMMWORD [wk(1)]   ; xmm7=tmp10H

        movdqa  xmm2,xmm5
        movdqa  xmm0,xmm7
        paddd   xmm5,xmm3               ; xmm5=data0L
        paddd   xmm7,xmm4               ; xmm7=data0H
        psubd   xmm2,xmm3               ; xmm2=data7L
        psubd   xmm0,xmm4               ; xmm0=data7H

        movdqa  xmm3,[rel PD_DESCALE_P1]        ; xmm3=[rel PD_DESCALE_P1]

        paddd   xmm5,xmm3
        paddd   xmm7,xmm3
        psrad   xmm5,DESCALE_P1
        psrad   xmm7,DESCALE_P1
        paddd   xmm2,xmm3
        paddd   xmm0,xmm3
        psrad   xmm2,DESCALE_P1
        psrad   xmm0,DESCALE_P1

        packssdw  xmm5,xmm7             ; xmm5=data0=(00 01 02 03 04 05 06 07)
        packssdw  xmm2,xmm0             ; xmm2=data7=(70 71 72 73 74 75 76 77)

        movdqa  xmm4, XMMWORD [wk(4)]   ; xmm4=tmp11L
        movdqa  xmm3, XMMWORD [wk(5)]   ; xmm3=tmp11H

        movdqa  xmm7,xmm4
        movdqa  xmm0,xmm3
        paddd   xmm4,xmm1               ; xmm4=data1L
        paddd   xmm3,xmm6               ; xmm3=data1H
        psubd   xmm7,xmm1               ; xmm7=data6L
        psubd   xmm0,xmm6               ; xmm0=data6H

        movdqa  xmm1,[rel PD_DESCALE_P1]        ; xmm1=[rel PD_DESCALE_P1]

        paddd   xmm4,xmm1
        paddd   xmm3,xmm1
        psrad   xmm4,DESCALE_P1
        psrad   xmm3,DESCALE_P1
        paddd   xmm7,xmm1
        paddd   xmm0,xmm1
        psrad   xmm7,DESCALE_P1
        psrad   xmm0,DESCALE_P1

        packssdw  xmm4,xmm3             ; xmm4=data1=(10 11 12 13 14 15 16 17)
        packssdw  xmm7,xmm0             ; xmm7=data6=(60 61 62 63 64 65 66 67)

        movdqa    xmm6,xmm5             ; transpose coefficients(phase 1)
        punpcklwd xmm5,xmm4             ; xmm5=(00 10 01 11 02 12 03 13)
        punpckhwd xmm6,xmm4             ; xmm6=(04 14 05 15 06 16 07 17)
        movdqa    xmm1,xmm7             ; transpose coefficients(phase 1)
        punpcklwd xmm7,xmm2             ; xmm7=(60 70 61 71 62 72 63 73)
        punpckhwd xmm1,xmm2             ; xmm1=(64 74 65 75 66 76 67 77)

        movdqa  xmm3, XMMWORD [wk(6)]   ; xmm3=tmp12L
        movdqa  xmm0, XMMWORD [wk(7)]   ; xmm0=tmp12H
        movdqa  xmm4, XMMWORD [wk(10)]  ; xmm4=tmp1L
        movdqa  xmm2, XMMWORD [wk(11)]  ; xmm2=tmp1H

        movdqa  XMMWORD [wk(0)], xmm5   ; wk(0)=(00 10 01 11 02 12 03 13)
        movdqa  XMMWORD [wk(1)], xmm6   ; wk(1)=(04 14 05 15 06 16 07 17)
        movdqa  XMMWORD [wk(4)], xmm7   ; wk(4)=(60 70 61 71 62 72 63 73)
        movdqa  XMMWORD [wk(5)], xmm1   ; wk(5)=(64 74 65 75 66 76 67 77)

        movdqa  xmm5,xmm3
        movdqa  xmm6,xmm0
        paddd   xmm3,xmm4               ; xmm3=data2L
        paddd   xmm0,xmm2               ; xmm0=data2H
        psubd   xmm5,xmm4               ; xmm5=data5L
        psubd   xmm6,xmm2               ; xmm6=data5H

        movdqa  xmm7,[rel PD_DESCALE_P1]        ; xmm7=[rel PD_DESCALE_P1]

        paddd   xmm3,xmm7
        paddd   xmm0,xmm7
        psrad   xmm3,DESCALE_P1
        psrad   xmm0,DESCALE_P1
        paddd   xmm5,xmm7
        paddd   xmm6,xmm7
        psrad   xmm5,DESCALE_P1
        psrad   xmm6,DESCALE_P1

        packssdw  xmm3,xmm0             ; xmm3=data2=(20 21 22 23 24 25 26 27)
        packssdw  xmm5,xmm6             ; xmm5=data5=(50 51 52 53 54 55 56 57)

        movdqa  xmm1, XMMWORD [wk(2)]   ; xmm1=tmp13L
        movdqa  xmm4, XMMWORD [wk(3)]   ; xmm4=tmp13H
        movdqa  xmm2, XMMWORD [wk(8)]   ; xmm2=tmp0L
        movdqa  xmm7, XMMWORD [wk(9)]   ; xmm7=tmp0H

        movdqa  xmm0,xmm1
        movdqa  xmm6,xmm4
        paddd   xmm1,xmm2               ; xmm1=data3L
        paddd   xmm4,xmm7               ; xmm4=data3H
        psubd   xmm0,xmm2               ; xmm0=data4L
        psubd   xmm6,xmm7               ; xmm6=data4H

        movdqa  xmm2,[rel PD_DESCALE_P1]        ; xmm2=[rel PD_DESCALE_P1]

        paddd   xmm1,xmm2
        paddd   xmm4,xmm2
        psrad   xmm1,DESCALE_P1
        psrad   xmm4,DESCALE_P1
        paddd   xmm0,xmm2
        paddd   xmm6,xmm2
        psrad   xmm0,DESCALE_P1
        psrad   xmm6,DESCALE_P1

        packssdw  xmm1,xmm4             ; xmm1=data3=(30 31 32 33 34 35 36 37)
        packssdw  xmm0,xmm6             ; xmm0=data4=(40 41 42 43 44 45 46 47)

        movdqa  xmm7, XMMWORD [wk(0)]   ; xmm7=(00 10 01 11 02 12 03 13)
        movdqa  xmm2, XMMWORD [wk(1)]   ; xmm2=(04 14 05 15 06 16 07 17)

        movdqa    xmm4,xmm3             ; transpose coefficients(phase 1)
        punpcklwd xmm3,xmm1             ; xmm3=(20 30 21 31 22 32 23 33)
        punpckhwd xmm4,xmm1             ; xmm4=(24 34 25 35 26 36 27 37)
        movdqa    xmm6,xmm0             ; transpose coefficients(phase 1)
        punpcklwd xmm0,xmm5             ; xmm0=(40 50 41 51 42 52 43 53)
        punpckhwd xmm6,xmm5             ; xmm6=(44 54 45 55 46 56 47 57)

        movdqa    xmm1,xmm7             ; transpose coefficients(phase 2)
        punpckldq xmm7,xmm3             ; xmm7=(00 10 20 30 01 11 21 31)
        punpckhdq xmm1,xmm3             ; xmm1=(02 12 22 32 03 13 23 33)
        movdqa    xmm5,xmm2             ; transpose coefficients(phase 2)
        punpckldq xmm2,xmm4             ; xmm2=(04 14 24 34 05 15 25 35)
        punpckhdq xmm5,xmm4             ; xmm5=(06 16 26 36 07 17 27 37)

        movdqa  xmm3, XMMWORD [wk(4)]   ; xmm3=(60 70 61 71 62 72 63 73)
        movdqa  xmm4, XMMWORD [wk(5)]   ; xmm4=(64 74 65 75 66 76 67 77)

        movdqa  XMMWORD [wk(6)], xmm2   ; wk(6)=(04 14 24 34 05 15 25 35)
        movdqa  XMMWORD [wk(7)], xmm5   ; wk(7)=(06 16 26 36 07 17 27 37)

        movdqa    xmm2,xmm0             ; transpose coefficients(phase 2)
        punpckldq xmm0,xmm3             ; xmm0=(40 50 60 70 41 51 61 71)
        punpckhdq xmm2,xmm3             ; xmm2=(42 52 62 72 43 53 63 73)
        movdqa    xmm5,xmm6             ; transpose coefficients(phase 2)
        punpckldq xmm6,xmm4             ; xmm6=(44 54 64 74 45 55 65 75)
        punpckhdq xmm5,xmm4             ; xmm5=(46 56 66 76 47 57 67 77)

        movdqa     xmm3,xmm7            ; transpose coefficients(phase 3)
        punpcklqdq xmm7,xmm0            ; xmm7=col0=(00 10 20 30 40 50 60 70)
        punpckhqdq xmm3,xmm0            ; xmm3=col1=(01 11 21 31 41 51 61 71)
        movdqa     xmm4,xmm1            ; transpose coefficients(phase 3)
        punpcklqdq xmm1,xmm2            ; xmm1=col2=(02 12 22 32 42 52 62 72)
        punpckhqdq xmm4,xmm2            ; xmm4=col3=(03 13 23 33 43 53 63 73)

        movdqa  xmm0, XMMWORD [wk(6)]   ; xmm0=(04 14 24 34 05 15 25 35)
        movdqa  xmm2, XMMWORD [wk(7)]   ; xmm2=(06 16 26 36 07 17 27 37)

        movdqa  XMMWORD [wk(8)], xmm3   ; wk(8)=col1
        movdqa  XMMWORD [wk(9)], xmm4   ; wk(9)=col3

        movdqa     xmm3,xmm0            ; transpose coefficients(phase 3)
        punpcklqdq xmm0,xmm6            ; xmm0=col4=(04 14 24 34 44 54 64 74)
        punpckhqdq xmm3,xmm6            ; xmm3=col5=(05 15 25 35 45 55 65 75)
        movdqa     xmm4,xmm2            ; transpose coefficients(phase 3)
        punpcklqdq xmm2,xmm5            ; xmm2=col6=(06 16 26 36 46 56 66 76)
        punpckhqdq xmm4,xmm5            ; xmm4=col7=(07 17 27 37 47 57 67 77)

        movdqa  XMMWORD [wk(10)], xmm3  ; wk(10)=col5
        movdqa  XMMWORD [wk(11)], xmm4  ; wk(11)=col7
.column_end:

        ; -- Prefetch the next coefficient block

        prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 0*32]
        prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 1*32]
        prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 2*32]
        prefetchnta [rsi + DCTSIZE2*SIZEOF_JCOEF + 3*32]

        ; ---- Pass 2: process rows from work array, store into output array.

        mov     rax, [original_rbp]
        mov     rdi, r12        ; (JSAMPROW *)
        mov     eax, r13d

        ; -- Even part

        ; xmm7=col0, xmm1=col2, xmm0=col4, xmm2=col6

        ; (Original)
        ; z1 = (z2 + z3) * 0.541196100;
        ; tmp2 = z1 + z3 * -1.847759065;
        ; tmp3 = z1 + z2 * 0.765366865;
        ;
        ; (This implementation)
        ; tmp2 = z2 * 0.541196100 + z3 * (0.541196100 - 1.847759065);
        ; tmp3 = z2 * (0.541196100 + 0.765366865) + z3 * 0.541196100;

        movdqa    xmm6,xmm1             ; xmm1=in2=z2
        movdqa    xmm5,xmm1
        punpcklwd xmm6,xmm2             ; xmm2=in6=z3
        punpckhwd xmm5,xmm2
        movdqa    xmm1,xmm6
        movdqa    xmm2,xmm5
        pmaddwd   xmm6,[rel PW_F130_F054]       ; xmm6=tmp3L
        pmaddwd   xmm5,[rel PW_F130_F054]       ; xmm5=tmp3H
        pmaddwd   xmm1,[rel PW_F054_MF130]      ; xmm1=tmp2L
        pmaddwd   xmm2,[rel PW_F054_MF130]      ; xmm2=tmp2H

        movdqa    xmm3,xmm7
        paddw     xmm7,xmm0             ; xmm7=in0+in4
        psubw     xmm3,xmm0             ; xmm3=in0-in4

        pxor      xmm4,xmm4
        pxor      xmm0,xmm0
        punpcklwd xmm4,xmm7             ; xmm4=tmp0L
        punpckhwd xmm0,xmm7             ; xmm0=tmp0H
        psrad     xmm4,(16-CONST_BITS)  ; psrad xmm4,16 & pslld xmm4,CONST_BITS
        psrad     xmm0,(16-CONST_BITS)  ; psrad xmm0,16 & pslld xmm0,CONST_BITS

        movdqa  xmm7,xmm4
        paddd   xmm4,xmm6               ; xmm4=tmp10L
        psubd   xmm7,xmm6               ; xmm7=tmp13L
        movdqa  xmm6,xmm0
        paddd   xmm0,xmm5               ; xmm0=tmp10H
        psubd   xmm6,xmm5               ; xmm6=tmp13H

        movdqa  XMMWORD [wk(0)], xmm4   ; wk(0)=tmp10L
        movdqa  XMMWORD [wk(1)], xmm0   ; wk(1)=tmp10H
        movdqa  XMMWORD [wk(2)], xmm7   ; wk(2)=tmp13L
        movdqa  XMMWORD [wk(3)], xmm6   ; wk(3)=tmp13H

        pxor      xmm5,xmm5
        pxor      xmm4,xmm4
        punpcklwd xmm5,xmm3             ; xmm5=tmp1L
        punpckhwd xmm4,xmm3             ; xmm4=tmp1H
        psrad     xmm5,(16-CONST_BITS)  ; psrad xmm5,16 & pslld xmm5,CONST_BITS
        psrad     xmm4,(16-CONST_BITS)  ; psrad xmm4,16 & pslld xmm4,CONST_BITS

        movdqa  xmm0,xmm5
        paddd   xmm5,xmm1               ; xmm5=tmp11L
        psubd   xmm0,xmm1               ; xmm0=tmp12L
        movdqa  xmm7,xmm4
        paddd   xmm4,xmm2               ; xmm4=tmp11H
        psubd   xmm7,xmm2               ; xmm7=tmp12H

        movdqa  XMMWORD [wk(4)], xmm5   ; wk(4)=tmp11L
        movdqa  XMMWORD [wk(5)], xmm4   ; wk(5)=tmp11H
        movdqa  XMMWORD [wk(6)], xmm0   ; wk(6)=tmp12L
        movdqa  XMMWORD [wk(7)], xmm7   ; wk(7)=tmp12H

        ; -- Odd part

        movdqa  xmm6, XMMWORD [wk(9)]   ; xmm6=col3
        movdqa  xmm3, XMMWORD [wk(8)]   ; xmm3=col1
        movdqa  xmm1, XMMWORD [wk(11)]  ; xmm1=col7
        movdqa  xmm2, XMMWORD [wk(10)]  ; xmm2=col5

        movdqa  xmm5,xmm6
        movdqa  xmm4,xmm3
        paddw   xmm5,xmm1               ; xmm5=z3
        paddw   xmm4,xmm2               ; xmm4=z4

        ; (Original)
        ; z5 = (z3 + z4) * 1.175875602;
        ; z3 = z3 * -1.961570560;  z4 = z4 * -0.390180644;
        ; z3 += z5;  z4 += z5;
        ;
        ; (This implementation)
        ; z3 = z3 * (1.175875602 - 1.961570560) + z4 * 1.175875602;
        ; z4 = z3 * 1.175875602 + z4 * (1.175875602 - 0.390180644);

        movdqa    xmm0,xmm5
        movdqa    xmm7,xmm5
        punpcklwd xmm0,xmm4
        punpckhwd xmm7,xmm4
        movdqa    xmm5,xmm0
        movdqa    xmm4,xmm7
        pmaddwd   xmm0,[rel PW_MF078_F117]      ; xmm0=z3L
        pmaddwd   xmm7,[rel PW_MF078_F117]      ; xmm7=z3H
        pmaddwd   xmm5,[rel PW_F117_F078]       ; xmm5=z4L
        pmaddwd   xmm4,[rel PW_F117_F078]       ; xmm4=z4H

        movdqa  XMMWORD [wk(10)], xmm0  ; wk(10)=z3L
        movdqa  XMMWORD [wk(11)], xmm7  ; wk(11)=z3H

        ; (Original)
        ; z1 = tmp0 + tmp3;  z2 = tmp1 + tmp2;
        ; tmp0 = tmp0 * 0.298631336;  tmp1 = tmp1 * 2.053119869;
        ; tmp2 = tmp2 * 3.072711026;  tmp3 = tmp3 * 1.501321110;
        ; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
        ; tmp0 += z1 + z3;  tmp1 += z2 + z4;
        ; tmp2 += z2 + z3;  tmp3 += z1 + z4;
        ;
        ; (This implementation)
        ; tmp0 = tmp0 * (0.298631336 - 0.899976223) + tmp3 * -0.899976223;
        ; tmp1 = tmp1 * (2.053119869 - 2.562915447) + tmp2 * -2.562915447;
        ; tmp2 = tmp1 * -2.562915447 + tmp2 * (3.072711026 - 2.562915447);
        ; tmp3 = tmp0 * -0.899976223 + tmp3 * (1.501321110 - 0.899976223);
        ; tmp0 += z3;  tmp1 += z4;
        ; tmp2 += z3;  tmp3 += z4;

        movdqa    xmm0,xmm1
        movdqa    xmm7,xmm1
        punpcklwd xmm0,xmm3
        punpckhwd xmm7,xmm3
        movdqa    xmm1,xmm0
        movdqa    xmm3,xmm7
        pmaddwd   xmm0,[rel PW_MF060_MF089]     ; xmm0=tmp0L
        pmaddwd   xmm7,[rel PW_MF060_MF089]     ; xmm7=tmp0H
        pmaddwd   xmm1,[rel PW_MF089_F060]      ; xmm1=tmp3L
        pmaddwd   xmm3,[rel PW_MF089_F060]      ; xmm3=tmp3H

        paddd   xmm0, XMMWORD [wk(10)]  ; xmm0=tmp0L
        paddd   xmm7, XMMWORD [wk(11)]  ; xmm7=tmp0H
        paddd   xmm1,xmm5               ; xmm1=tmp3L
        paddd   xmm3,xmm4               ; xmm3=tmp3H

        movdqa  XMMWORD [wk(8)], xmm0   ; wk(8)=tmp0L
        movdqa  XMMWORD [wk(9)], xmm7   ; wk(9)=tmp0H

        movdqa    xmm0,xmm2
        movdqa    xmm7,xmm2
        punpcklwd xmm0,xmm6
        punpckhwd xmm7,xmm6
        movdqa    xmm2,xmm0
        movdqa    xmm6,xmm7
        pmaddwd   xmm0,[rel PW_MF050_MF256]     ; xmm0=tmp1L
        pmaddwd   xmm7,[rel PW_MF050_MF256]     ; xmm7=tmp1H
        pmaddwd   xmm2,[rel PW_MF256_F050]      ; xmm2=tmp2L
        pmaddwd   xmm6,[rel PW_MF256_F050]      ; xmm6=tmp2H

        paddd   xmm0,xmm5               ; xmm0=tmp1L
        paddd   xmm7,xmm4               ; xmm7=tmp1H
        paddd   xmm2, XMMWORD [wk(10)]  ; xmm2=tmp2L
        paddd   xmm6, XMMWORD [wk(11)]  ; xmm6=tmp2H

        movdqa  XMMWORD [wk(10)], xmm0  ; wk(10)=tmp1L
        movdqa  XMMWORD [wk(11)], xmm7  ; wk(11)=tmp1H

        ; -- Final output stage

        movdqa  xmm5, XMMWORD [wk(0)]   ; xmm5=tmp10L
        movdqa  xmm4, XMMWORD [wk(1)]   ; xmm4=tmp10H

        movdqa  xmm0,xmm5
        movdqa  xmm7,xmm4
        paddd   xmm5,xmm1               ; xmm5=data0L
        paddd   xmm4,xmm3               ; xmm4=data0H
        psubd   xmm0,xmm1               ; xmm0=data7L
        psubd   xmm7,xmm3               ; xmm7=data7H

        movdqa  xmm1,[rel PD_DESCALE_P2]        ; xmm1=[rel PD_DESCALE_P2]

        paddd   xmm5,xmm1
        paddd   xmm4,xmm1
        psrad   xmm5,DESCALE_P2
        psrad   xmm4,DESCALE_P2
        paddd   xmm0,xmm1
        paddd   xmm7,xmm1
        psrad   xmm0,DESCALE_P2
        psrad   xmm7,DESCALE_P2

        packssdw  xmm5,xmm4             ; xmm5=data0=(00 10 20 30 40 50 60 70)
        packssdw  xmm0,xmm7             ; xmm0=data7=(07 17 27 37 47 57 67 77)

        movdqa  xmm3, XMMWORD [wk(4)]   ; xmm3=tmp11L
        movdqa  xmm1, XMMWORD [wk(5)]   ; xmm1=tmp11H

        movdqa  xmm4,xmm3
        movdqa  xmm7,xmm1
        paddd   xmm3,xmm2               ; xmm3=data1L
        paddd   xmm1,xmm6               ; xmm1=data1H
        psubd   xmm4,xmm2               ; xmm4=data6L
        psubd   xmm7,xmm6               ; xmm7=data6H

        movdqa  xmm2,[rel PD_DESCALE_P2]        ; xmm2=[rel PD_DESCALE_P2]

        paddd   xmm3,xmm2
        paddd   xmm1,xmm2
        psrad   xmm3,DESCALE_P2
        psrad   xmm1,DESCALE_P2
        paddd   xmm4,xmm2
        paddd   xmm7,xmm2
        psrad   xmm4,DESCALE_P2
        psrad   xmm7,DESCALE_P2

        packssdw  xmm3,xmm1             ; xmm3=data1=(01 11 21 31 41 51 61 71)
        packssdw  xmm4,xmm7             ; xmm4=data6=(06 16 26 36 46 56 66 76)

        packsswb  xmm5,xmm4             ; xmm5=(00 10 20 30 40 50 60 70 06 16 26 36 46 56 66 76)
        packsswb  xmm3,xmm0             ; xmm3=(01 11 21 31 41 51 61 71 07 17 27 37 47 57 67 77)

        movdqa  xmm6, XMMWORD [wk(6)]   ; xmm6=tmp12L
        movdqa  xmm2, XMMWORD [wk(7)]   ; xmm2=tmp12H
        movdqa  xmm1, XMMWORD [wk(10)]  ; xmm1=tmp1L
        movdqa  xmm7, XMMWORD [wk(11)]  ; xmm7=tmp1H

        movdqa  XMMWORD [wk(0)], xmm5   ; wk(0)=(00 10 20 30 40 50 60 70 06 16 26 36 46 56 66 76)
        movdqa  XMMWORD [wk(1)], xmm3   ; wk(1)=(01 11 21 31 41 51 61 71 07 17 27 37 47 57 67 77)

        movdqa  xmm4,xmm6
        movdqa  xmm0,xmm2
        paddd   xmm6,xmm1               ; xmm6=data2L
        paddd   xmm2,xmm7               ; xmm2=data2H
        psubd   xmm4,xmm1               ; xmm4=data5L
        psubd   xmm0,xmm7               ; xmm0=data5H

        movdqa  xmm5,[rel PD_DESCALE_P2]        ; xmm5=[rel PD_DESCALE_P2]

        paddd   xmm6,xmm5
        paddd   xmm2,xmm5
        psrad   xmm6,DESCALE_P2
        psrad   xmm2,DESCALE_P2
        paddd   xmm4,xmm5
        paddd   xmm0,xmm5
        psrad   xmm4,DESCALE_P2
        psrad   xmm0,DESCALE_P2

        packssdw  xmm6,xmm2             ; xmm6=data2=(02 12 22 32 42 52 62 72)
        packssdw  xmm4,xmm0             ; xmm4=data5=(05 15 25 35 45 55 65 75)

        movdqa  xmm3, XMMWORD [wk(2)]   ; xmm3=tmp13L
        movdqa  xmm1, XMMWORD [wk(3)]   ; xmm1=tmp13H
        movdqa  xmm7, XMMWORD [wk(8)]   ; xmm7=tmp0L
        movdqa  xmm5, XMMWORD [wk(9)]   ; xmm5=tmp0H

        movdqa  xmm2,xmm3
        movdqa  xmm0,xmm1
        paddd   xmm3,xmm7               ; xmm3=data3L
        paddd   xmm1,xmm5               ; xmm1=data3H
        psubd   xmm2,xmm7               ; xmm2=data4L
        psubd   xmm0,xmm5               ; xmm0=data4H

        movdqa  xmm7,[rel PD_DESCALE_P2]        ; xmm7=[rel PD_DESCALE_P2]

        paddd   xmm3,xmm7
        paddd   xmm1,xmm7
        psrad   xmm3,DESCALE_P2
        psrad   xmm1,DESCALE_P2
        paddd   xmm2,xmm7
        paddd   xmm0,xmm7
        psrad   xmm2,DESCALE_P2
        psrad   xmm0,DESCALE_P2

        movdqa    xmm5,[rel PB_CENTERJSAMP]     ; xmm5=[rel PB_CENTERJSAMP]

        packssdw  xmm3,xmm1             ; xmm3=data3=(03 13 23 33 43 53 63 73)
        packssdw  xmm2,xmm0             ; xmm2=data4=(04 14 24 34 44 54 64 74)

        movdqa    xmm7, XMMWORD [wk(0)] ; xmm7=(00 10 20 30 40 50 60 70 06 16 26 36 46 56 66 76)
        movdqa    xmm1, XMMWORD [wk(1)] ; xmm1=(01 11 21 31 41 51 61 71 07 17 27 37 47 57 67 77)

        packsswb  xmm6,xmm2             ; xmm6=(02 12 22 32 42 52 62 72 04 14 24 34 44 54 64 74)
        packsswb  xmm3,xmm4             ; xmm3=(03 13 23 33 43 53 63 73 05 15 25 35 45 55 65 75)

        paddb     xmm7,xmm5
        paddb     xmm1,xmm5
        paddb     xmm6,xmm5
        paddb     xmm3,xmm5

        movdqa    xmm0,xmm7     ; transpose coefficients(phase 1)
        punpcklbw xmm7,xmm1     ; xmm7=(00 01 10 11 20 21 30 31 40 41 50 51 60 61 70 71)
        punpckhbw xmm0,xmm1     ; xmm0=(06 07 16 17 26 27 36 37 46 47 56 57 66 67 76 77)
        movdqa    xmm2,xmm6     ; transpose coefficients(phase 1)
        punpcklbw xmm6,xmm3     ; xmm6=(02 03 12 13 22 23 32 33 42 43 52 53 62 63 72 73)
        punpckhbw xmm2,xmm3     ; xmm2=(04 05 14 15 24 25 34 35 44 45 54 55 64 65 74 75)

        movdqa    xmm4,xmm7     ; transpose coefficients(phase 2)
        punpcklwd xmm7,xmm6     ; xmm7=(00 01 02 03 10 11 12 13 20 21 22 23 30 31 32 33)
        punpckhwd xmm4,xmm6     ; xmm4=(40 41 42 43 50 51 52 53 60 61 62 63 70 71 72 73)
        movdqa    xmm5,xmm2     ; transpose coefficients(phase 2)
        punpcklwd xmm2,xmm0     ; xmm2=(04 05 06 07 14 15 16 17 24 25 26 27 34 35 36 37)
        punpckhwd xmm5,xmm0     ; xmm5=(44 45 46 47 54 55 56 57 64 65 66 67 74 75 76 77)

        movdqa    xmm1,xmm7     ; transpose coefficients(phase 3)
        punpckldq xmm7,xmm2     ; xmm7=(00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17)
        punpckhdq xmm1,xmm2     ; xmm1=(20 21 22 23 24 25 26 27 30 31 32 33 34 35 36 37)
        movdqa    xmm3,xmm4     ; transpose coefficients(phase 3)
        punpckldq xmm4,xmm5     ; xmm4=(40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57)
        punpckhdq xmm3,xmm5     ; xmm3=(60 61 62 63 64 65 66 67 70 71 72 73 74 75 76 77)

        pshufd  xmm6,xmm7,0x4E  ; xmm6=(10 11 12 13 14 15 16 17 00 01 02 03 04 05 06 07)
        pshufd  xmm0,xmm1,0x4E  ; xmm0=(30 31 32 33 34 35 36 37 20 21 22 23 24 25 26 27)
        pshufd  xmm2,xmm4,0x4E  ; xmm2=(50 51 52 53 54 55 56 57 40 41 42 43 44 45 46 47)
        pshufd  xmm5,xmm3,0x4E  ; xmm5=(70 71 72 73 74 75 76 77 60 61 62 63 64 65 66 67)

        mov     rdx, JSAMPROW [rdi+0*SIZEOF_JSAMPROW]
        mov     rsi, JSAMPROW [rdi+2*SIZEOF_JSAMPROW]
        movq    XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm7
        movq    XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm1
        mov     rdx, JSAMPROW [rdi+4*SIZEOF_JSAMPROW]
        mov     rsi, JSAMPROW [rdi+6*SIZEOF_JSAMPROW]
        movq    XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm4
        movq    XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm3

        mov     rdx, JSAMPROW [rdi+1*SIZEOF_JSAMPROW]
        mov     rsi, JSAMPROW [rdi+3*SIZEOF_JSAMPROW]
        movq    XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm6
        movq    XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm0
        mov     rdx, JSAMPROW [rdi+5*SIZEOF_JSAMPROW]
        mov     rsi, JSAMPROW [rdi+7*SIZEOF_JSAMPROW]
        movq    XMM_MMWORD [rdx+rax*SIZEOF_JSAMPLE], xmm2
        movq    XMM_MMWORD [rsi+rax*SIZEOF_JSAMPLE], xmm5

        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
