;
; jiss2fst.asm - fast integer IDCT (SSE2)
;
; 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.
;
; Last Modified : February 4, 2006
;
; [TAB8]

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

%ifdef DCT_IFAST_SUPPORTED
%ifdef JIDCT_INT_SSE2_SUPPORTED

; This module is specialized to the case DCTSIZE = 8.
;
%if DCTSIZE != 8
%error "Sorry, this code only copes with 8x8 DCTs."
%endif

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

%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)
; jpeg_idct_ifast_sse2 (j_decompress_ptr cinfo, jpeg_component_info * compptr,
;                       JCOEFPTR coef_block,
;                       JSAMPARRAY output_buf, JDIMENSION output_col)
;

%define cinfo(b)	(b)+8		; j_decompress_ptr cinfo
%define compptr(b)	(b)+12		; jpeg_component_info * compptr
%define coef_block(b)	(b)+16		; JCOEFPTR coef_block
%define output_buf(b)	(b)+20		; JSAMPARRAY output_buf
%define output_col(b)	(b)+24		; 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(jpeg_idct_ifast_sse2)

EXTN(jpeg_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 [compptr(eax)]
	mov	edx, POINTER [jcompinfo_dct_table(edx)]	; 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	_MMWORD [edx+eax*SIZEOF_JSAMPLE], xmm1
	movq	_MMWORD [esi+eax*SIZEOF_JSAMPLE], xmm3
	mov	edx, JSAMPROW [edi+4*SIZEOF_JSAMPROW]
	mov	esi, JSAMPROW [edi+6*SIZEOF_JSAMPROW]
	movq	_MMWORD [edx+eax*SIZEOF_JSAMPLE], xmm4
	movq	_MMWORD [esi+eax*SIZEOF_JSAMPLE], xmm7

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

%endif ; JIDCT_INT_SSE2_SUPPORTED
%endif ; DCT_IFAST_SUPPORTED
