;
; jidctint.asm - accurate integer IDCT (SSE2)
;
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
;
; 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
;
; 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) PRIVATE

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    32
;
; 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)
;

%define dct_table(b)    (b)+8           ; jpeg_component_info *compptr
%define coef_block(b)   (b)+12          ; JCOEFPTR coef_block
%define output_buf(b)   (b)+16          ; JSAMPARRAY output_buf
%define output_col(b)   (b)+20          ; JDIMENSION output_col

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

        align   16
        global  EXTN(jsimd_idct_islow_sse2) PRIVATE

EXTN(jsimd_idct_islow_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 ebx
;       push    ecx             ; unused
;       push    edx             ; need not be preserved
        push    esi
        push    edi

        get_GOT ebx             ; get GOT address

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

;       mov     eax, [original_ebp]
        mov     edx, POINTER [dct_table(eax)]           ; quantptr
        mov     esi, JCOEFPTR [coef_block(eax)]         ; inptr

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

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

        ; -- AC terms all zero

        movdqa  xmm5, XMMWORD [XMMBLOCK(0,0,esi,SIZEOF_JCOEF)]
        pmullw  xmm5, XMMWORD [XMMBLOCK(0,0,edx,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
        alignx  16,7
%endif
.columnDCT:

        ; -- Even part

        movdqa  xmm0, XMMWORD [XMMBLOCK(0,0,esi,SIZEOF_JCOEF)]
        movdqa  xmm1, XMMWORD [XMMBLOCK(2,0,esi,SIZEOF_JCOEF)]
        pmullw  xmm0, XMMWORD [XMMBLOCK(0,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  xmm1, XMMWORD [XMMBLOCK(2,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        movdqa  xmm2, XMMWORD [XMMBLOCK(4,0,esi,SIZEOF_JCOEF)]
        movdqa  xmm3, XMMWORD [XMMBLOCK(6,0,esi,SIZEOF_JCOEF)]
        pmullw  xmm2, XMMWORD [XMMBLOCK(4,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  xmm3, XMMWORD [XMMBLOCK(6,0,edx,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,[GOTOFF(ebx,PW_F130_F054)]       ; xmm4=tmp3L
        pmaddwd   xmm5,[GOTOFF(ebx,PW_F130_F054)]       ; xmm5=tmp3H
        pmaddwd   xmm1,[GOTOFF(ebx,PW_F054_MF130)]      ; xmm1=tmp2L
        pmaddwd   xmm3,[GOTOFF(ebx,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,esi,SIZEOF_JCOEF)]
        movdqa  xmm6, XMMWORD [XMMBLOCK(3,0,esi,SIZEOF_JCOEF)]
        pmullw  xmm4, XMMWORD [XMMBLOCK(1,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  xmm6, XMMWORD [XMMBLOCK(3,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        movdqa  xmm1, XMMWORD [XMMBLOCK(5,0,esi,SIZEOF_JCOEF)]
        movdqa  xmm3, XMMWORD [XMMBLOCK(7,0,esi,SIZEOF_JCOEF)]
        pmullw  xmm1, XMMWORD [XMMBLOCK(5,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  xmm3, XMMWORD [XMMBLOCK(7,0,edx,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,[GOTOFF(ebx,PW_MF078_F117)]      ; xmm2=z3L
        pmaddwd   xmm0,[GOTOFF(ebx,PW_MF078_F117)]      ; xmm0=z3H
        pmaddwd   xmm5,[GOTOFF(ebx,PW_F117_F078)]       ; xmm5=z4L
        pmaddwd   xmm7,[GOTOFF(ebx,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,[GOTOFF(ebx,PW_MF060_MF089)]     ; xmm2=tmp0L
        pmaddwd   xmm0,[GOTOFF(ebx,PW_MF060_MF089)]     ; xmm0=tmp0H
        pmaddwd   xmm3,[GOTOFF(ebx,PW_MF089_F060)]      ; xmm3=tmp3L
        pmaddwd   xmm4,[GOTOFF(ebx,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,[GOTOFF(ebx,PW_MF050_MF256)]     ; xmm2=tmp1L
        pmaddwd   xmm0,[GOTOFF(ebx,PW_MF050_MF256)]     ; xmm0=tmp1H
        pmaddwd   xmm1,[GOTOFF(ebx,PW_MF256_F050)]      ; xmm1=tmp2L
        pmaddwd   xmm6,[GOTOFF(ebx,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,[GOTOFF(ebx,PD_DESCALE_P1)]        ; xmm3=[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,[GOTOFF(ebx,PD_DESCALE_P1)]        ; xmm1=[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,[GOTOFF(ebx,PD_DESCALE_P1)]        ; xmm7=[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,[GOTOFF(ebx,PD_DESCALE_P1)]        ; xmm2=[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 [esi + DCTSIZE2*SIZEOF_JCOEF + 0*32]
        prefetchnta [esi + DCTSIZE2*SIZEOF_JCOEF + 1*32]
        prefetchnta [esi + DCTSIZE2*SIZEOF_JCOEF + 2*32]
        prefetchnta [esi + DCTSIZE2*SIZEOF_JCOEF + 3*32]

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

        mov     eax, [original_ebp]
        mov     edi, JSAMPARRAY [output_buf(eax)]       ; (JSAMPROW *)
        mov     eax, JDIMENSION [output_col(eax)]

        ; -- 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,[GOTOFF(ebx,PW_F130_F054)]       ; xmm6=tmp3L
        pmaddwd   xmm5,[GOTOFF(ebx,PW_F130_F054)]       ; xmm5=tmp3H
        pmaddwd   xmm1,[GOTOFF(ebx,PW_F054_MF130)]      ; xmm1=tmp2L
        pmaddwd   xmm2,[GOTOFF(ebx,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,[GOTOFF(ebx,PW_MF078_F117)]      ; xmm0=z3L
        pmaddwd   xmm7,[GOTOFF(ebx,PW_MF078_F117)]      ; xmm7=z3H
        pmaddwd   xmm5,[GOTOFF(ebx,PW_F117_F078)]       ; xmm5=z4L
        pmaddwd   xmm4,[GOTOFF(ebx,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,[GOTOFF(ebx,PW_MF060_MF089)]     ; xmm0=tmp0L
        pmaddwd   xmm7,[GOTOFF(ebx,PW_MF060_MF089)]     ; xmm7=tmp0H
        pmaddwd   xmm1,[GOTOFF(ebx,PW_MF089_F060)]      ; xmm1=tmp3L
        pmaddwd   xmm3,[GOTOFF(ebx,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,[GOTOFF(ebx,PW_MF050_MF256)]     ; xmm0=tmp1L
        pmaddwd   xmm7,[GOTOFF(ebx,PW_MF050_MF256)]     ; xmm7=tmp1H
        pmaddwd   xmm2,[GOTOFF(ebx,PW_MF256_F050)]      ; xmm2=tmp2L
        pmaddwd   xmm6,[GOTOFF(ebx,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,[GOTOFF(ebx,PD_DESCALE_P2)]        ; xmm1=[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,[GOTOFF(ebx,PD_DESCALE_P2)]        ; xmm2=[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,[GOTOFF(ebx,PD_DESCALE_P2)]        ; xmm5=[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,[GOTOFF(ebx,PD_DESCALE_P2)]        ; xmm7=[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,[GOTOFF(ebx,PB_CENTERJSAMP)]     ; xmm5=[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     edx, JSAMPROW [edi+0*SIZEOF_JSAMPROW]
        mov     esi, JSAMPROW [edi+2*SIZEOF_JSAMPROW]
        movq    XMM_MMWORD [edx+eax*SIZEOF_JSAMPLE], xmm7
        movq    XMM_MMWORD [esi+eax*SIZEOF_JSAMPLE], xmm1
        mov     edx, JSAMPROW [edi+4*SIZEOF_JSAMPROW]
        mov     esi, JSAMPROW [edi+6*SIZEOF_JSAMPROW]
        movq    XMM_MMWORD [edx+eax*SIZEOF_JSAMPLE], xmm4
        movq    XMM_MMWORD [esi+eax*SIZEOF_JSAMPLE], xmm3

        mov     edx, JSAMPROW [edi+1*SIZEOF_JSAMPROW]
        mov     esi, JSAMPROW [edi+3*SIZEOF_JSAMPROW]
        movq    XMM_MMWORD [edx+eax*SIZEOF_JSAMPLE], xmm6
        movq    XMM_MMWORD [esi+eax*SIZEOF_JSAMPLE], xmm0
        mov     edx, JSAMPROW [edi+5*SIZEOF_JSAMPROW]
        mov     esi, JSAMPROW [edi+7*SIZEOF_JSAMPROW]
        movq    XMM_MMWORD [edx+eax*SIZEOF_JSAMPLE], xmm2
        movq    XMM_MMWORD [esi+eax*SIZEOF_JSAMPLE], xmm5

        pop     edi
        pop     esi
;       pop     edx             ; need not be preserved
;       pop     ecx             ; unused
        poppic  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
