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