;
; jiss2fst.asm - fast 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 fast, not so accurate integer implementation of
; the inverse DCT (Discrete Cosine Transform). The following code is
; based directly on the IJG's original jidctfst.c; see the jidctfst.c
; for more details.
;
; [TAB8]

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

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

%define CONST_BITS	8	; 14 is also OK.
%define PASS1_BITS	2

%if IFAST_SCALE_BITS != PASS1_BITS
%error "'IFAST_SCALE_BITS' must be equal to 'PASS1_BITS'."
%endif

%if CONST_BITS == 8
F_1_082	equ	277		; FIX(1.082392200)
F_1_414	equ	362		; FIX(1.414213562)
F_1_847	equ	473		; FIX(1.847759065)
F_2_613	equ	669		; FIX(2.613125930)
F_1_613	equ	(F_2_613 - 256)	; FIX(2.613125930) - FIX(1)
%else
; NASM cannot do compile-time arithmetic on floating-point constants.
%define	DESCALE(x,n)  (((x)+(1<<((n)-1)))>>(n))
F_1_082	equ	DESCALE(1162209775,30-CONST_BITS)	; FIX(1.082392200)
F_1_414	equ	DESCALE(1518500249,30-CONST_BITS)	; FIX(1.414213562)
F_1_847	equ	DESCALE(1984016188,30-CONST_BITS)	; FIX(1.847759065)
F_2_613	equ	DESCALE(2805822602,30-CONST_BITS)	; FIX(2.613125930)
F_1_613	equ	(F_2_613 - (1 << CONST_BITS))	; FIX(2.613125930) - FIX(1)
%endif

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

; PRE_MULTIPLY_SCALE_BITS <= 2 (to avoid overflow)
; CONST_BITS + CONST_SHIFT + PRE_MULTIPLY_SCALE_BITS == 16 (for pmulhw)

%define PRE_MULTIPLY_SCALE_BITS   2
%define CONST_SHIFT     (16 - PRE_MULTIPLY_SCALE_BITS - CONST_BITS)

	alignz	16
	global	EXTN(jconst_idct_ifast_sse2)

EXTN(jconst_idct_ifast_sse2):

PW_F1414	times 8 dw  F_1_414 << CONST_SHIFT
PW_F1847	times 8 dw  F_1_847 << CONST_SHIFT
PW_MF1613	times 8 dw -F_1_613 << CONST_SHIFT
PW_F1082	times 8 dw  F_1_082 << CONST_SHIFT
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_ifast_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		2

	align	16
	global	EXTN(jsimd_idct_ifast_sse2)

EXTN(jsimd_idct_ifast_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_IFAST_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	xmm0, XMMWORD [XMMBLOCK(0,0,esi,SIZEOF_JCOEF)]
	pmullw	xmm0, XMMWORD [XMMBLOCK(0,0,edx,SIZEOF_ISLOW_MULT_TYPE)]

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

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

	movdqa	XMMWORD [wk(0)], xmm2	; wk(0)=col1
	movdqa	XMMWORD [wk(1)], xmm0	; wk(1)=col3
	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_IFAST_MULT_TYPE)]
	pmullw	xmm1, XMMWORD [XMMBLOCK(2,0,edx,SIZEOF_IFAST_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_IFAST_MULT_TYPE)]
	pmullw	xmm3, XMMWORD [XMMBLOCK(6,0,edx,SIZEOF_IFAST_MULT_TYPE)]

	movdqa	xmm4,xmm0
	movdqa	xmm5,xmm1
	psubw	xmm0,xmm2		; xmm0=tmp11
	psubw	xmm1,xmm3
	paddw	xmm4,xmm2		; xmm4=tmp10
	paddw	xmm5,xmm3		; xmm5=tmp13

	psllw	xmm1,PRE_MULTIPLY_SCALE_BITS
	pmulhw	xmm1,[GOTOFF(ebx,PW_F1414)]
	psubw	xmm1,xmm5		; xmm1=tmp12

	movdqa	xmm6,xmm4
	movdqa	xmm7,xmm0
	psubw	xmm4,xmm5		; xmm4=tmp3
	psubw	xmm0,xmm1		; xmm0=tmp2
	paddw	xmm6,xmm5		; xmm6=tmp0
	paddw	xmm7,xmm1		; xmm7=tmp1

	movdqa	XMMWORD [wk(1)], xmm4	; wk(1)=tmp3
	movdqa	XMMWORD [wk(0)], xmm0	; wk(0)=tmp2

	; -- Odd part

	movdqa	xmm2, XMMWORD [XMMBLOCK(1,0,esi,SIZEOF_JCOEF)]
	movdqa	xmm3, XMMWORD [XMMBLOCK(3,0,esi,SIZEOF_JCOEF)]
	pmullw	xmm2, XMMWORD [XMMBLOCK(1,0,edx,SIZEOF_IFAST_MULT_TYPE)]
	pmullw	xmm3, XMMWORD [XMMBLOCK(3,0,edx,SIZEOF_IFAST_MULT_TYPE)]
	movdqa	xmm5, XMMWORD [XMMBLOCK(5,0,esi,SIZEOF_JCOEF)]
	movdqa	xmm1, XMMWORD [XMMBLOCK(7,0,esi,SIZEOF_JCOEF)]
	pmullw	xmm5, XMMWORD [XMMBLOCK(5,0,edx,SIZEOF_IFAST_MULT_TYPE)]
	pmullw	xmm1, XMMWORD [XMMBLOCK(7,0,edx,SIZEOF_IFAST_MULT_TYPE)]

	movdqa	xmm4,xmm2
	movdqa	xmm0,xmm5
	psubw	xmm2,xmm1		; xmm2=z12
	psubw	xmm5,xmm3		; xmm5=z10
	paddw	xmm4,xmm1		; xmm4=z11
	paddw	xmm0,xmm3		; xmm0=z13

	movdqa	xmm1,xmm5		; xmm1=z10(unscaled)
	psllw	xmm2,PRE_MULTIPLY_SCALE_BITS
	psllw	xmm5,PRE_MULTIPLY_SCALE_BITS

	movdqa	xmm3,xmm4
	psubw	xmm4,xmm0
	paddw	xmm3,xmm0		; xmm3=tmp7

	psllw	xmm4,PRE_MULTIPLY_SCALE_BITS
	pmulhw	xmm4,[GOTOFF(ebx,PW_F1414)]	; xmm4=tmp11

	; To avoid overflow...
	;
	; (Original)
	; tmp12 = -2.613125930 * z10 + z5;
	;
	; (This implementation)
	; tmp12 = (-1.613125930 - 1) * z10 + z5;
	;       = -1.613125930 * z10 - z10 + z5;

	movdqa	xmm0,xmm5
	paddw	xmm5,xmm2
	pmulhw	xmm5,[GOTOFF(ebx,PW_F1847)]	; xmm5=z5
	pmulhw	xmm0,[GOTOFF(ebx,PW_MF1613)]
	pmulhw	xmm2,[GOTOFF(ebx,PW_F1082)]
	psubw	xmm0,xmm1
	psubw	xmm2,xmm5		; xmm2=tmp10
	paddw	xmm0,xmm5		; xmm0=tmp12

	; -- Final output stage

	psubw	xmm0,xmm3		; xmm0=tmp6
	movdqa	xmm1,xmm6
	movdqa	xmm5,xmm7
	paddw	xmm6,xmm3		; xmm6=data0=(00 01 02 03 04 05 06 07)
	paddw	xmm7,xmm0		; xmm7=data1=(10 11 12 13 14 15 16 17)
	psubw	xmm1,xmm3		; xmm1=data7=(70 71 72 73 74 75 76 77)
	psubw	xmm5,xmm0		; xmm5=data6=(60 61 62 63 64 65 66 67)
	psubw	xmm4,xmm0		; xmm4=tmp5

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

	movdqa	xmm7, XMMWORD [wk(0)]	; xmm7=tmp2
	movdqa	xmm1, XMMWORD [wk(1)]	; xmm1=tmp3

	movdqa	XMMWORD [wk(0)], xmm5	; wk(0)=(60 70 61 71 62 72 63 73)
	movdqa	XMMWORD [wk(1)], xmm0	; wk(1)=(64 74 65 75 66 76 67 77)

	paddw	xmm2,xmm4		; xmm2=tmp4
	movdqa	xmm5,xmm7
	movdqa	xmm0,xmm1
	paddw	xmm7,xmm4		; xmm7=data2=(20 21 22 23 24 25 26 27)
	paddw	xmm1,xmm2		; xmm1=data4=(40 41 42 43 44 45 46 47)
	psubw	xmm5,xmm4		; xmm5=data5=(50 51 52 53 54 55 56 57)
	psubw	xmm0,xmm2		; xmm0=data3=(30 31 32 33 34 35 36 37)

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

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

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

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

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

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

	movdqa	xmm1, XMMWORD [wk(0)]	; xmm1=(04 14 24 34 05 15 25 35)
	movdqa	xmm3, XMMWORD [wk(1)]	; xmm3=(06 16 26 36 07 17 27 37)

	movdqa	XMMWORD [wk(0)], xmm4	; wk(0)=col1
	movdqa	XMMWORD [wk(1)], xmm7	; wk(1)=col3

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

	; xmm6=col0, xmm5=col2, xmm1=col4, xmm3=col6

	movdqa	xmm2,xmm6
	movdqa	xmm0,xmm5
	psubw	xmm6,xmm1		; xmm6=tmp11
	psubw	xmm5,xmm3
	paddw	xmm2,xmm1		; xmm2=tmp10
	paddw	xmm0,xmm3		; xmm0=tmp13

	psllw	xmm5,PRE_MULTIPLY_SCALE_BITS
	pmulhw	xmm5,[GOTOFF(ebx,PW_F1414)]
	psubw	xmm5,xmm0		; xmm5=tmp12

	movdqa	xmm1,xmm2
	movdqa	xmm3,xmm6
	psubw	xmm2,xmm0		; xmm2=tmp3
	psubw	xmm6,xmm5		; xmm6=tmp2
	paddw	xmm1,xmm0		; xmm1=tmp0
	paddw	xmm3,xmm5		; xmm3=tmp1

	movdqa	xmm0, XMMWORD [wk(0)]	; xmm0=col1
	movdqa	xmm5, XMMWORD [wk(1)]	; xmm5=col3

	movdqa	XMMWORD [wk(0)], xmm2	; wk(0)=tmp3
	movdqa	XMMWORD [wk(1)], xmm6	; wk(1)=tmp2

	; -- Odd part

	; xmm0=col1, xmm5=col3, xmm4=col5, xmm7=col7

	movdqa	xmm2,xmm0
	movdqa	xmm6,xmm4
	psubw	xmm0,xmm7		; xmm0=z12
	psubw	xmm4,xmm5		; xmm4=z10
	paddw	xmm2,xmm7		; xmm2=z11
	paddw	xmm6,xmm5		; xmm6=z13

	movdqa	xmm7,xmm4		; xmm7=z10(unscaled)
	psllw	xmm0,PRE_MULTIPLY_SCALE_BITS
	psllw	xmm4,PRE_MULTIPLY_SCALE_BITS

	movdqa	xmm5,xmm2
	psubw	xmm2,xmm6
	paddw	xmm5,xmm6		; xmm5=tmp7

	psllw	xmm2,PRE_MULTIPLY_SCALE_BITS
	pmulhw	xmm2,[GOTOFF(ebx,PW_F1414)]	; xmm2=tmp11

	; To avoid overflow...
	;
	; (Original)
	; tmp12 = -2.613125930 * z10 + z5;
	;
	; (This implementation)
	; tmp12 = (-1.613125930 - 1) * z10 + z5;
	;       = -1.613125930 * z10 - z10 + z5;

	movdqa	xmm6,xmm4
	paddw	xmm4,xmm0
	pmulhw	xmm4,[GOTOFF(ebx,PW_F1847)]	; xmm4=z5
	pmulhw	xmm6,[GOTOFF(ebx,PW_MF1613)]
	pmulhw	xmm0,[GOTOFF(ebx,PW_F1082)]
	psubw	xmm6,xmm7
	psubw	xmm0,xmm4		; xmm0=tmp10
	paddw	xmm6,xmm4		; xmm6=tmp12

	; -- Final output stage

	psubw	xmm6,xmm5		; xmm6=tmp6
	movdqa	xmm7,xmm1
	movdqa	xmm4,xmm3
	paddw	xmm1,xmm5		; xmm1=data0=(00 10 20 30 40 50 60 70)
	paddw	xmm3,xmm6		; xmm3=data1=(01 11 21 31 41 51 61 71)
	psraw	xmm1,(PASS1_BITS+3)	; descale
	psraw	xmm3,(PASS1_BITS+3)	; descale
	psubw	xmm7,xmm5		; xmm7=data7=(07 17 27 37 47 57 67 77)
	psubw	xmm4,xmm6		; xmm4=data6=(06 16 26 36 46 56 66 76)
	psraw	xmm7,(PASS1_BITS+3)	; descale
	psraw	xmm4,(PASS1_BITS+3)	; descale
	psubw	xmm2,xmm6		; xmm2=tmp5

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

	movdqa	xmm5, XMMWORD [wk(1)]	; xmm5=tmp2
	movdqa	xmm6, XMMWORD [wk(0)]	; xmm6=tmp3

	paddw	xmm0,xmm2		; xmm0=tmp4
	movdqa	xmm4,xmm5
	movdqa	xmm7,xmm6
	paddw	xmm5,xmm2		; xmm5=data2=(02 12 22 32 42 52 62 72)
	paddw	xmm6,xmm0		; xmm6=data4=(04 14 24 34 44 54 64 74)
	psraw	xmm5,(PASS1_BITS+3)	; descale
	psraw	xmm6,(PASS1_BITS+3)	; descale
	psubw	xmm4,xmm2		; xmm4=data5=(05 15 25 35 45 55 65 75)
	psubw	xmm7,xmm0		; xmm7=data3=(03 13 23 33 43 53 63 73)
	psraw	xmm4,(PASS1_BITS+3)	; descale
	psraw	xmm7,(PASS1_BITS+3)	; descale

	movdqa    xmm2,[GOTOFF(ebx,PB_CENTERJSAMP)]	; xmm2=[PB_CENTERJSAMP]

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

	paddb     xmm1,xmm2
	paddb     xmm3,xmm2
	paddb     xmm5,xmm2
	paddb     xmm7,xmm2

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

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

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

	pshufd	xmm5,xmm1,0x4E	; xmm5=(10 11 12 13 14 15 16 17 00 01 02 03 04 05 06 07)
	pshufd	xmm0,xmm3,0x4E	; xmm0=(30 31 32 33 34 35 36 37 20 21 22 23 24 25 26 27)
	pshufd	xmm6,xmm4,0x4E	; xmm6=(50 51 52 53 54 55 56 57 40 41 42 43 44 45 46 47)
	pshufd	xmm2,xmm7,0x4E	; xmm2=(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], xmm1
	movq	XMM_MMWORD [esi+eax*SIZEOF_JSAMPLE], xmm3
	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], xmm7

	mov	edx, JSAMPROW [edi+1*SIZEOF_JSAMPROW]
	mov	esi, JSAMPROW [edi+3*SIZEOF_JSAMPROW]
	movq	XMM_MMWORD [edx+eax*SIZEOF_JSAMPLE], xmm5
	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], xmm6
	movq	XMM_MMWORD [esi+eax*SIZEOF_JSAMPLE], xmm2

	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
