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

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)

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
