;
; jfss2int-64.asm - accurate integer FDCT (64-bit SSE2)
;
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
; Copyright 2009 D. R. Commander
;
; 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
; forward DCT (Discrete Cosine Transform). The following code is based
; directly on the IJG's original jfdctint.c; see the jfdctint.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)

%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_fdct_islow_sse2) PRIVATE

EXTN(jconst_fdct_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)
PW_DESCALE_P2X	times 8 dw  1 << (PASS1_BITS-1)

	alignz	16

; --------------------------------------------------------------------------
	SECTION	SEG_TEXT
	BITS	64
;
; Perform the forward DCT on one block of samples.
;
; GLOBAL(void)
; jsimd_fdct_islow_sse2 (DCTELEM * data)
;

; r10 = DCTELEM * data

%define wk(i)		rbp-(WK_NUM-(i))*SIZEOF_XMMWORD	; xmmword wk[WK_NUM]
%define WK_NUM		6

	align	16
	global	EXTN(jsimd_fdct_islow_sse2) PRIVATE

EXTN(jsimd_fdct_islow_sse2):
	push	rbp
	mov	rax,rsp				; rax = original rbp
	sub	rsp, byte 4
	and	rsp, byte (-SIZEOF_XMMWORD)	; align to 128 bits
	mov	[rsp],rax
	mov	rbp,rsp				; rbp = aligned rbp
	lea	rsp, [wk(0)]
	collect_args

	; ---- Pass 1: process rows.

	mov	rdx, r10	; (DCTELEM *)

	movdqa	xmm0, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_DCTELEM)]
	movdqa	xmm1, XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_DCTELEM)]
	movdqa	xmm2, XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_DCTELEM)]
	movdqa	xmm3, XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_DCTELEM)]

	; xmm0=(00 01 02 03 04 05 06 07), xmm2=(20 21 22 23 24 25 26 27)
	; xmm1=(10 11 12 13 14 15 16 17), xmm3=(30 31 32 33 34 35 36 37)

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

	movdqa	xmm6, XMMWORD [XMMBLOCK(4,0,rdx,SIZEOF_DCTELEM)]
	movdqa	xmm7, XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_DCTELEM)]
	movdqa	xmm1, XMMWORD [XMMBLOCK(6,0,rdx,SIZEOF_DCTELEM)]
	movdqa	xmm3, XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_DCTELEM)]

	; xmm6=( 4 12 20 28 36 44 52 60), xmm1=( 6 14 22 30 38 46 54 62)
	; xmm7=( 5 13 21 29 37 45 53 61), xmm3=( 7 15 23 31 39 47 55 63)

	movdqa	XMMWORD [wk(0)], xmm2	; wk(0)=(20 30 21 31 22 32 23 33)
	movdqa	XMMWORD [wk(1)], xmm5	; wk(1)=(24 34 25 35 26 36 27 37)

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

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

	movdqa	xmm1, XMMWORD [wk(0)]	; xmm1=(20 30 21 31 22 32 23 33)
	movdqa	xmm5, XMMWORD [wk(1)]	; xmm5=(24 34 25 35 26 36 27 37)
	movdqa	XMMWORD [wk(2)], xmm7	; wk(2)=(42 52 62 72 43 53 63 73)
	movdqa	XMMWORD [wk(3)], xmm2	; wk(3)=(44 54 64 74 45 55 65 75)

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

	movdqa     xmm1,xmm0		; transpose coefficients(phase 3)
	punpcklqdq xmm0,xmm6		; xmm0=(00 10 20 30 40 50 60 70)=data0
	punpckhqdq xmm1,xmm6		; xmm1=(01 11 21 31 41 51 61 71)=data1
	movdqa     xmm5,xmm2		; transpose coefficients(phase 3)
	punpcklqdq xmm2,xmm3		; xmm2=(06 16 26 36 46 56 66 76)=data6
	punpckhqdq xmm5,xmm3		; xmm5=(07 17 27 37 47 57 67 77)=data7

	movdqa	xmm6,xmm1
	movdqa	xmm3,xmm0
	psubw	xmm1,xmm2		; xmm1=data1-data6=tmp6
	psubw	xmm0,xmm5		; xmm0=data0-data7=tmp7
	paddw	xmm6,xmm2		; xmm6=data1+data6=tmp1
	paddw	xmm3,xmm5		; xmm3=data0+data7=tmp0

	movdqa	xmm2, XMMWORD [wk(2)]	; xmm2=(42 52 62 72 43 53 63 73)
	movdqa	xmm5, XMMWORD [wk(3)]	; xmm5=(44 54 64 74 45 55 65 75)
	movdqa	XMMWORD [wk(0)], xmm1	; wk(0)=tmp6
	movdqa	XMMWORD [wk(1)], xmm0	; wk(1)=tmp7

	movdqa     xmm1,xmm7		; transpose coefficients(phase 3)
	punpcklqdq xmm7,xmm2		; xmm7=(02 12 22 32 42 52 62 72)=data2
	punpckhqdq xmm1,xmm2		; xmm1=(03 13 23 33 43 53 63 73)=data3
	movdqa     xmm0,xmm4		; transpose coefficients(phase 3)
	punpcklqdq xmm4,xmm5		; xmm4=(04 14 24 34 44 54 64 74)=data4
	punpckhqdq xmm0,xmm5		; xmm0=(05 15 25 35 45 55 65 75)=data5

	movdqa	xmm2,xmm1
	movdqa	xmm5,xmm7
	paddw	xmm1,xmm4		; xmm1=data3+data4=tmp3
	paddw	xmm7,xmm0		; xmm7=data2+data5=tmp2
	psubw	xmm2,xmm4		; xmm2=data3-data4=tmp4
	psubw	xmm5,xmm0		; xmm5=data2-data5=tmp5

	; -- Even part

	movdqa	xmm4,xmm3
	movdqa	xmm0,xmm6
	paddw	xmm3,xmm1		; xmm3=tmp10
	paddw	xmm6,xmm7		; xmm6=tmp11
	psubw	xmm4,xmm1		; xmm4=tmp13
	psubw	xmm0,xmm7		; xmm0=tmp12

	movdqa	xmm1,xmm3
	paddw	xmm3,xmm6		; xmm3=tmp10+tmp11
	psubw	xmm1,xmm6		; xmm1=tmp10-tmp11

	psllw	xmm3,PASS1_BITS		; xmm3=data0
	psllw	xmm1,PASS1_BITS		; xmm1=data4

	movdqa	XMMWORD [wk(2)], xmm3	; wk(2)=data0
	movdqa	XMMWORD [wk(3)], xmm1	; wk(3)=data4

	; (Original)
	; z1 = (tmp12 + tmp13) * 0.541196100;
	; data2 = z1 + tmp13 * 0.765366865;
	; data6 = z1 + tmp12 * -1.847759065;
	;
	; (This implementation)
	; data2 = tmp13 * (0.541196100 + 0.765366865) + tmp12 * 0.541196100;
	; data6 = tmp13 * 0.541196100 + tmp12 * (0.541196100 - 1.847759065);

	movdqa    xmm7,xmm4		; xmm4=tmp13
	movdqa    xmm6,xmm4
	punpcklwd xmm7,xmm0		; xmm0=tmp12
	punpckhwd xmm6,xmm0
	movdqa    xmm4,xmm7
	movdqa    xmm0,xmm6
	pmaddwd   xmm7,[rel PW_F130_F054]	; xmm7=data2L
	pmaddwd   xmm6,[rel PW_F130_F054]	; xmm6=data2H
	pmaddwd   xmm4,[rel PW_F054_MF130]	; xmm4=data6L
	pmaddwd   xmm0,[rel PW_F054_MF130]	; xmm0=data6H

	paddd	xmm7,[rel PD_DESCALE_P1]
	paddd	xmm6,[rel PD_DESCALE_P1]
	psrad	xmm7,DESCALE_P1
	psrad	xmm6,DESCALE_P1
	paddd	xmm4,[rel PD_DESCALE_P1]
	paddd	xmm0,[rel PD_DESCALE_P1]
	psrad	xmm4,DESCALE_P1
	psrad	xmm0,DESCALE_P1

	packssdw  xmm7,xmm6		; xmm7=data2
	packssdw  xmm4,xmm0		; xmm4=data6

	movdqa	XMMWORD [wk(4)], xmm7	; wk(4)=data2
	movdqa	XMMWORD [wk(5)], xmm4	; wk(5)=data6

	; -- Odd part

	movdqa	xmm3, XMMWORD [wk(0)]	; xmm3=tmp6
	movdqa	xmm1, XMMWORD [wk(1)]	; xmm1=tmp7

	movdqa	xmm6,xmm2		; xmm2=tmp4
	movdqa	xmm0,xmm5		; xmm5=tmp5
	paddw	xmm6,xmm3		; xmm6=z3
	paddw	xmm0,xmm1		; xmm0=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    xmm7,xmm6
	movdqa    xmm4,xmm6
	punpcklwd xmm7,xmm0
	punpckhwd xmm4,xmm0
	movdqa    xmm6,xmm7
	movdqa    xmm0,xmm4
	pmaddwd   xmm7,[rel PW_MF078_F117]	; xmm7=z3L
	pmaddwd   xmm4,[rel PW_MF078_F117]	; xmm4=z3H
	pmaddwd   xmm6,[rel PW_F117_F078]	; xmm6=z4L
	pmaddwd   xmm0,[rel PW_F117_F078]	; xmm0=z4H

	movdqa	XMMWORD [wk(0)], xmm7	; wk(0)=z3L
	movdqa	XMMWORD [wk(1)], xmm4	; wk(1)=z3H

	; (Original)
	; z1 = tmp4 + tmp7;  z2 = tmp5 + tmp6;
	; tmp4 = tmp4 * 0.298631336;  tmp5 = tmp5 * 2.053119869;
	; tmp6 = tmp6 * 3.072711026;  tmp7 = tmp7 * 1.501321110;
	; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
	; data7 = tmp4 + z1 + z3;  data5 = tmp5 + z2 + z4;
	; data3 = tmp6 + z2 + z3;  data1 = tmp7 + z1 + z4;
	;
	; (This implementation)
	; tmp4 = tmp4 * (0.298631336 - 0.899976223) + tmp7 * -0.899976223;
	; tmp5 = tmp5 * (2.053119869 - 2.562915447) + tmp6 * -2.562915447;
	; tmp6 = tmp5 * -2.562915447 + tmp6 * (3.072711026 - 2.562915447);
	; tmp7 = tmp4 * -0.899976223 + tmp7 * (1.501321110 - 0.899976223);
	; data7 = tmp4 + z3;  data5 = tmp5 + z4;
	; data3 = tmp6 + z3;  data1 = tmp7 + z4;

	movdqa    xmm7,xmm2
	movdqa    xmm4,xmm2
	punpcklwd xmm7,xmm1
	punpckhwd xmm4,xmm1
	movdqa    xmm2,xmm7
	movdqa    xmm1,xmm4
	pmaddwd   xmm7,[rel PW_MF060_MF089]	; xmm7=tmp4L
	pmaddwd   xmm4,[rel PW_MF060_MF089]	; xmm4=tmp4H
	pmaddwd   xmm2,[rel PW_MF089_F060]	; xmm2=tmp7L
	pmaddwd   xmm1,[rel PW_MF089_F060]	; xmm1=tmp7H

	paddd	xmm7, XMMWORD [wk(0)]	; xmm7=data7L
	paddd	xmm4, XMMWORD [wk(1)]	; xmm4=data7H
	paddd	xmm2,xmm6		; xmm2=data1L
	paddd	xmm1,xmm0		; xmm1=data1H

	paddd	xmm7,[rel PD_DESCALE_P1]
	paddd	xmm4,[rel PD_DESCALE_P1]
	psrad	xmm7,DESCALE_P1
	psrad	xmm4,DESCALE_P1
	paddd	xmm2,[rel PD_DESCALE_P1]
	paddd	xmm1,[rel PD_DESCALE_P1]
	psrad	xmm2,DESCALE_P1
	psrad	xmm1,DESCALE_P1

	packssdw  xmm7,xmm4		; xmm7=data7
	packssdw  xmm2,xmm1		; xmm2=data1

	movdqa    xmm4,xmm5
	movdqa    xmm1,xmm5
	punpcklwd xmm4,xmm3
	punpckhwd xmm1,xmm3
	movdqa    xmm5,xmm4
	movdqa    xmm3,xmm1
	pmaddwd   xmm4,[rel PW_MF050_MF256]	; xmm4=tmp5L
	pmaddwd   xmm1,[rel PW_MF050_MF256]	; xmm1=tmp5H
	pmaddwd   xmm5,[rel PW_MF256_F050]	; xmm5=tmp6L
	pmaddwd   xmm3,[rel PW_MF256_F050]	; xmm3=tmp6H

	paddd	xmm4,xmm6		; xmm4=data5L
	paddd	xmm1,xmm0		; xmm1=data5H
	paddd	xmm5, XMMWORD [wk(0)]	; xmm5=data3L
	paddd	xmm3, XMMWORD [wk(1)]	; xmm3=data3H

	paddd	xmm4,[rel PD_DESCALE_P1]
	paddd	xmm1,[rel PD_DESCALE_P1]
	psrad	xmm4,DESCALE_P1
	psrad	xmm1,DESCALE_P1
	paddd	xmm5,[rel PD_DESCALE_P1]
	paddd	xmm3,[rel PD_DESCALE_P1]
	psrad	xmm5,DESCALE_P1
	psrad	xmm3,DESCALE_P1

	packssdw  xmm4,xmm1		; xmm4=data5
	packssdw  xmm5,xmm3		; xmm5=data3

	; ---- Pass 2: process columns.

	movdqa	xmm6, XMMWORD [wk(2)]	; xmm6=col0
	movdqa	xmm0, XMMWORD [wk(4)]	; xmm0=col2

	; xmm6=(00 10 20 30 40 50 60 70), xmm0=(02 12 22 32 42 52 62 72)
	; xmm2=(01 11 21 31 41 51 61 71), xmm5=(03 13 23 33 43 53 63 73)

	movdqa    xmm1,xmm6		; transpose coefficients(phase 1)
	punpcklwd xmm6,xmm2		; xmm6=(00 01 10 11 20 21 30 31)
	punpckhwd xmm1,xmm2		; xmm1=(40 41 50 51 60 61 70 71)
	movdqa    xmm3,xmm0		; transpose coefficients(phase 1)
	punpcklwd xmm0,xmm5		; xmm0=(02 03 12 13 22 23 32 33)
	punpckhwd xmm3,xmm5		; xmm3=(42 43 52 53 62 63 72 73)

	movdqa	xmm2, XMMWORD [wk(3)]	; xmm2=col4
	movdqa	xmm5, XMMWORD [wk(5)]	; xmm5=col6

	; xmm2=(04 14 24 34 44 54 64 74), xmm5=(06 16 26 36 46 56 66 76)
	; xmm4=(05 15 25 35 45 55 65 75), xmm7=(07 17 27 37 47 57 67 77)

	movdqa	XMMWORD [wk(0)], xmm0	; wk(0)=(02 03 12 13 22 23 32 33)
	movdqa	XMMWORD [wk(1)], xmm3	; wk(1)=(42 43 52 53 62 63 72 73)

	movdqa    xmm0,xmm2		; transpose coefficients(phase 1)
	punpcklwd xmm2,xmm4		; xmm2=(04 05 14 15 24 25 34 35)
	punpckhwd xmm0,xmm4		; xmm0=(44 45 54 55 64 65 74 75)
	movdqa    xmm3,xmm5		; transpose coefficients(phase 1)
	punpcklwd xmm5,xmm7		; xmm5=(06 07 16 17 26 27 36 37)
	punpckhwd xmm3,xmm7		; xmm3=(46 47 56 57 66 67 76 77)

	movdqa    xmm4,xmm2		; transpose coefficients(phase 2)
	punpckldq xmm2,xmm5		; xmm2=(04 05 06 07 14 15 16 17)
	punpckhdq xmm4,xmm5		; xmm4=(24 25 26 27 34 35 36 37)
	movdqa    xmm7,xmm0		; transpose coefficients(phase 2)
	punpckldq xmm0,xmm3		; xmm0=(44 45 46 47 54 55 56 57)
	punpckhdq xmm7,xmm3		; xmm7=(64 65 66 67 74 75 76 77)

	movdqa	xmm5, XMMWORD [wk(0)]	; xmm5=(02 03 12 13 22 23 32 33)
	movdqa	xmm3, XMMWORD [wk(1)]	; xmm3=(42 43 52 53 62 63 72 73)
	movdqa	XMMWORD [wk(2)], xmm4	; wk(2)=(24 25 26 27 34 35 36 37)
	movdqa	XMMWORD [wk(3)], xmm0	; wk(3)=(44 45 46 47 54 55 56 57)

	movdqa    xmm4,xmm6		; transpose coefficients(phase 2)
	punpckldq xmm6,xmm5		; xmm6=(00 01 02 03 10 11 12 13)
	punpckhdq xmm4,xmm5		; xmm4=(20 21 22 23 30 31 32 33)
	movdqa    xmm0,xmm1		; transpose coefficients(phase 2)
	punpckldq xmm1,xmm3		; xmm1=(40 41 42 43 50 51 52 53)
	punpckhdq xmm0,xmm3		; xmm0=(60 61 62 63 70 71 72 73)

	movdqa     xmm5,xmm6		; transpose coefficients(phase 3)
	punpcklqdq xmm6,xmm2		; xmm6=(00 01 02 03 04 05 06 07)=data0
	punpckhqdq xmm5,xmm2		; xmm5=(10 11 12 13 14 15 16 17)=data1
	movdqa     xmm3,xmm0		; transpose coefficients(phase 3)
	punpcklqdq xmm0,xmm7		; xmm0=(60 61 62 63 64 65 66 67)=data6
	punpckhqdq xmm3,xmm7		; xmm3=(70 71 72 73 74 75 76 77)=data7

	movdqa	xmm2,xmm5
	movdqa	xmm7,xmm6
	psubw	xmm5,xmm0		; xmm5=data1-data6=tmp6
	psubw	xmm6,xmm3		; xmm6=data0-data7=tmp7
	paddw	xmm2,xmm0		; xmm2=data1+data6=tmp1
	paddw	xmm7,xmm3		; xmm7=data0+data7=tmp0

	movdqa	xmm0, XMMWORD [wk(2)]	; xmm0=(24 25 26 27 34 35 36 37)
	movdqa	xmm3, XMMWORD [wk(3)]	; xmm3=(44 45 46 47 54 55 56 57)
	movdqa	XMMWORD [wk(0)], xmm5	; wk(0)=tmp6
	movdqa	XMMWORD [wk(1)], xmm6	; wk(1)=tmp7

	movdqa     xmm5,xmm4		; transpose coefficients(phase 3)
	punpcklqdq xmm4,xmm0		; xmm4=(20 21 22 23 24 25 26 27)=data2
	punpckhqdq xmm5,xmm0		; xmm5=(30 31 32 33 34 35 36 37)=data3
	movdqa     xmm6,xmm1		; transpose coefficients(phase 3)
	punpcklqdq xmm1,xmm3		; xmm1=(40 41 42 43 44 45 46 47)=data4
	punpckhqdq xmm6,xmm3		; xmm6=(50 51 52 53 54 55 56 57)=data5

	movdqa	xmm0,xmm5
	movdqa	xmm3,xmm4
	paddw	xmm5,xmm1		; xmm5=data3+data4=tmp3
	paddw	xmm4,xmm6		; xmm4=data2+data5=tmp2
	psubw	xmm0,xmm1		; xmm0=data3-data4=tmp4
	psubw	xmm3,xmm6		; xmm3=data2-data5=tmp5

	; -- Even part

	movdqa	xmm1,xmm7
	movdqa	xmm6,xmm2
	paddw	xmm7,xmm5		; xmm7=tmp10
	paddw	xmm2,xmm4		; xmm2=tmp11
	psubw	xmm1,xmm5		; xmm1=tmp13
	psubw	xmm6,xmm4		; xmm6=tmp12

	movdqa	xmm5,xmm7
	paddw	xmm7,xmm2		; xmm7=tmp10+tmp11
	psubw	xmm5,xmm2		; xmm5=tmp10-tmp11

	paddw	xmm7,[rel PW_DESCALE_P2X]
	paddw	xmm5,[rel PW_DESCALE_P2X]
	psraw	xmm7,PASS1_BITS		; xmm7=data0
	psraw	xmm5,PASS1_BITS		; xmm5=data4

	movdqa	XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_DCTELEM)], xmm7
	movdqa	XMMWORD [XMMBLOCK(4,0,rdx,SIZEOF_DCTELEM)], xmm5

	; (Original)
	; z1 = (tmp12 + tmp13) * 0.541196100;
	; data2 = z1 + tmp13 * 0.765366865;
	; data6 = z1 + tmp12 * -1.847759065;
	;
	; (This implementation)
	; data2 = tmp13 * (0.541196100 + 0.765366865) + tmp12 * 0.541196100;
	; data6 = tmp13 * 0.541196100 + tmp12 * (0.541196100 - 1.847759065);

	movdqa    xmm4,xmm1		; xmm1=tmp13
	movdqa    xmm2,xmm1
	punpcklwd xmm4,xmm6		; xmm6=tmp12
	punpckhwd xmm2,xmm6
	movdqa    xmm1,xmm4
	movdqa    xmm6,xmm2
	pmaddwd   xmm4,[rel PW_F130_F054]	; xmm4=data2L
	pmaddwd   xmm2,[rel PW_F130_F054]	; xmm2=data2H
	pmaddwd   xmm1,[rel PW_F054_MF130]	; xmm1=data6L
	pmaddwd   xmm6,[rel PW_F054_MF130]	; xmm6=data6H

	paddd	xmm4,[rel PD_DESCALE_P2]
	paddd	xmm2,[rel PD_DESCALE_P2]
	psrad	xmm4,DESCALE_P2
	psrad	xmm2,DESCALE_P2
	paddd	xmm1,[rel PD_DESCALE_P2]
	paddd	xmm6,[rel PD_DESCALE_P2]
	psrad	xmm1,DESCALE_P2
	psrad	xmm6,DESCALE_P2

	packssdw  xmm4,xmm2		; xmm4=data2
	packssdw  xmm1,xmm6		; xmm1=data6

	movdqa	XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_DCTELEM)], xmm4
	movdqa	XMMWORD [XMMBLOCK(6,0,rdx,SIZEOF_DCTELEM)], xmm1

	; -- Odd part

	movdqa	xmm7, XMMWORD [wk(0)]	; xmm7=tmp6
	movdqa	xmm5, XMMWORD [wk(1)]	; xmm5=tmp7

	movdqa	xmm2,xmm0		; xmm0=tmp4
	movdqa	xmm6,xmm3		; xmm3=tmp5
	paddw	xmm2,xmm7		; xmm2=z3
	paddw	xmm6,xmm5		; xmm6=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    xmm4,xmm2
	movdqa    xmm1,xmm2
	punpcklwd xmm4,xmm6
	punpckhwd xmm1,xmm6
	movdqa    xmm2,xmm4
	movdqa    xmm6,xmm1
	pmaddwd   xmm4,[rel PW_MF078_F117]	; xmm4=z3L
	pmaddwd   xmm1,[rel PW_MF078_F117]	; xmm1=z3H
	pmaddwd   xmm2,[rel PW_F117_F078]	; xmm2=z4L
	pmaddwd   xmm6,[rel PW_F117_F078]	; xmm6=z4H

	movdqa	XMMWORD [wk(0)], xmm4	; wk(0)=z3L
	movdqa	XMMWORD [wk(1)], xmm1	; wk(1)=z3H

	; (Original)
	; z1 = tmp4 + tmp7;  z2 = tmp5 + tmp6;
	; tmp4 = tmp4 * 0.298631336;  tmp5 = tmp5 * 2.053119869;
	; tmp6 = tmp6 * 3.072711026;  tmp7 = tmp7 * 1.501321110;
	; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
	; data7 = tmp4 + z1 + z3;  data5 = tmp5 + z2 + z4;
	; data3 = tmp6 + z2 + z3;  data1 = tmp7 + z1 + z4;
	;
	; (This implementation)
	; tmp4 = tmp4 * (0.298631336 - 0.899976223) + tmp7 * -0.899976223;
	; tmp5 = tmp5 * (2.053119869 - 2.562915447) + tmp6 * -2.562915447;
	; tmp6 = tmp5 * -2.562915447 + tmp6 * (3.072711026 - 2.562915447);
	; tmp7 = tmp4 * -0.899976223 + tmp7 * (1.501321110 - 0.899976223);
	; data7 = tmp4 + z3;  data5 = tmp5 + z4;
	; data3 = tmp6 + z3;  data1 = tmp7 + z4;

	movdqa    xmm4,xmm0
	movdqa    xmm1,xmm0
	punpcklwd xmm4,xmm5
	punpckhwd xmm1,xmm5
	movdqa    xmm0,xmm4
	movdqa    xmm5,xmm1
	pmaddwd   xmm4,[rel PW_MF060_MF089]	; xmm4=tmp4L
	pmaddwd   xmm1,[rel PW_MF060_MF089]	; xmm1=tmp4H
	pmaddwd   xmm0,[rel PW_MF089_F060]	; xmm0=tmp7L
	pmaddwd   xmm5,[rel PW_MF089_F060]	; xmm5=tmp7H

	paddd	xmm4, XMMWORD [wk(0)]	; xmm4=data7L
	paddd	xmm1, XMMWORD [wk(1)]	; xmm1=data7H
	paddd	xmm0,xmm2		; xmm0=data1L
	paddd	xmm5,xmm6		; xmm5=data1H

	paddd	xmm4,[rel PD_DESCALE_P2]
	paddd	xmm1,[rel PD_DESCALE_P2]
	psrad	xmm4,DESCALE_P2
	psrad	xmm1,DESCALE_P2
	paddd	xmm0,[rel PD_DESCALE_P2]
	paddd	xmm5,[rel PD_DESCALE_P2]
	psrad	xmm0,DESCALE_P2
	psrad	xmm5,DESCALE_P2

	packssdw  xmm4,xmm1		; xmm4=data7
	packssdw  xmm0,xmm5		; xmm0=data1

	movdqa	XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_DCTELEM)], xmm4
	movdqa	XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_DCTELEM)], xmm0

	movdqa    xmm1,xmm3
	movdqa    xmm5,xmm3
	punpcklwd xmm1,xmm7
	punpckhwd xmm5,xmm7
	movdqa    xmm3,xmm1
	movdqa    xmm7,xmm5
	pmaddwd   xmm1,[rel PW_MF050_MF256]	; xmm1=tmp5L
	pmaddwd   xmm5,[rel PW_MF050_MF256]	; xmm5=tmp5H
	pmaddwd   xmm3,[rel PW_MF256_F050]	; xmm3=tmp6L
	pmaddwd   xmm7,[rel PW_MF256_F050]	; xmm7=tmp6H

	paddd	xmm1,xmm2		; xmm1=data5L
	paddd	xmm5,xmm6		; xmm5=data5H
	paddd	xmm3, XMMWORD [wk(0)]	; xmm3=data3L
	paddd	xmm7, XMMWORD [wk(1)]	; xmm7=data3H

	paddd	xmm1,[rel PD_DESCALE_P2]
	paddd	xmm5,[rel PD_DESCALE_P2]
	psrad	xmm1,DESCALE_P2
	psrad	xmm5,DESCALE_P2
	paddd	xmm3,[rel PD_DESCALE_P2]
	paddd	xmm7,[rel PD_DESCALE_P2]
	psrad	xmm3,DESCALE_P2
	psrad	xmm7,DESCALE_P2

	packssdw  xmm1,xmm5		; xmm1=data5
	packssdw  xmm3,xmm7		; xmm3=data3

	movdqa	XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_DCTELEM)], xmm1
	movdqa	XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_DCTELEM)], xmm3

	uncollect_args
	mov	rsp,rbp		; rsp <- aligned rbp
	pop	rsp		; rsp <- original rbp
	pop	rbp
	ret

; For some reason, the OS X linker does not honor the request to align the
; segment unless we do this.
	align	16
