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

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)

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
