;
; jfsseflt-64.asm - floating-point FDCT (64-bit SSE)
;
; 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 floating-point implementation of the forward DCT
; (Discrete Cosine Transform). The following code is based directly on
; the IJG's original jfdctflt.c; see the jfdctflt.c for more details.
;
; [TAB8]

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

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

%macro	unpcklps2 2	; %1=(0 1 2 3) / %2=(4 5 6 7) => %1=(0 1 4 5)
	shufps	%1,%2,0x44
%endmacro

%macro	unpckhps2 2	; %1=(0 1 2 3) / %2=(4 5 6 7) => %1=(2 3 6 7)
	shufps	%1,%2,0xEE
%endmacro

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

	alignz	16
	global	EXTN(jconst_fdct_float_sse) PRIVATE

EXTN(jconst_fdct_float_sse):

PD_0_382	times 4 dd  0.382683432365089771728460
PD_0_707	times 4 dd  0.707106781186547524400844
PD_0_541	times 4 dd  0.541196100146196984399723
PD_1_306	times 4 dd  1.306562964876376527856643

	alignz	16

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

; r10 = FAST_FLOAT * data

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

	align	16
	global	EXTN(jsimd_fdct_float_sse) PRIVATE

EXTN(jsimd_fdct_float_sse):
	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	; (FAST_FLOAT *)
	mov	rcx, DCTSIZE/4
.rowloop:

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

	; xmm0=(20 21 22 23), xmm2=(24 25 26 27)
	; xmm1=(30 31 32 33), xmm3=(34 35 36 37)

	movaps   xmm4,xmm0		; transpose coefficients(phase 1)
	unpcklps xmm0,xmm1		; xmm0=(20 30 21 31)
	unpckhps xmm4,xmm1		; xmm4=(22 32 23 33)
	movaps   xmm5,xmm2		; transpose coefficients(phase 1)
	unpcklps xmm2,xmm3		; xmm2=(24 34 25 35)
	unpckhps xmm5,xmm3		; xmm5=(26 36 27 37)

	movaps	xmm6, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_FAST_FLOAT)]
	movaps	xmm7, XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_FAST_FLOAT)]
	movaps	xmm1, XMMWORD [XMMBLOCK(0,1,rdx,SIZEOF_FAST_FLOAT)]
	movaps	xmm3, XMMWORD [XMMBLOCK(1,1,rdx,SIZEOF_FAST_FLOAT)]

	; xmm6=(00 01 02 03), xmm1=(04 05 06 07)
	; xmm7=(10 11 12 13), xmm3=(14 15 16 17)

	movaps	XMMWORD [wk(0)], xmm4	; wk(0)=(22 32 23 33)
	movaps	XMMWORD [wk(1)], xmm2	; wk(1)=(24 34 25 35)

	movaps   xmm4,xmm6		; transpose coefficients(phase 1)
	unpcklps xmm6,xmm7		; xmm6=(00 10 01 11)
	unpckhps xmm4,xmm7		; xmm4=(02 12 03 13)
	movaps   xmm2,xmm1		; transpose coefficients(phase 1)
	unpcklps xmm1,xmm3		; xmm1=(04 14 05 15)
	unpckhps xmm2,xmm3		; xmm2=(06 16 07 17)

	movaps    xmm7,xmm6		; transpose coefficients(phase 2)
	unpcklps2 xmm6,xmm0		; xmm6=(00 10 20 30)=data0
	unpckhps2 xmm7,xmm0		; xmm7=(01 11 21 31)=data1
	movaps    xmm3,xmm2		; transpose coefficients(phase 2)
	unpcklps2 xmm2,xmm5		; xmm2=(06 16 26 36)=data6
	unpckhps2 xmm3,xmm5		; xmm3=(07 17 27 37)=data7

	movaps	xmm0,xmm7
	movaps	xmm5,xmm6
	subps	xmm7,xmm2		; xmm7=data1-data6=tmp6
	subps	xmm6,xmm3		; xmm6=data0-data7=tmp7
	addps	xmm0,xmm2		; xmm0=data1+data6=tmp1
	addps	xmm5,xmm3		; xmm5=data0+data7=tmp0

	movaps	xmm2, XMMWORD [wk(0)]	; xmm2=(22 32 23 33)
	movaps	xmm3, XMMWORD [wk(1)]	; xmm3=(24 34 25 35)
	movaps	XMMWORD [wk(0)], xmm7	; wk(0)=tmp6
	movaps	XMMWORD [wk(1)], xmm6	; wk(1)=tmp7

	movaps    xmm7,xmm4		; transpose coefficients(phase 2)
	unpcklps2 xmm4,xmm2		; xmm4=(02 12 22 32)=data2
	unpckhps2 xmm7,xmm2		; xmm7=(03 13 23 33)=data3
	movaps    xmm6,xmm1		; transpose coefficients(phase 2)
	unpcklps2 xmm1,xmm3		; xmm1=(04 14 24 34)=data4
	unpckhps2 xmm6,xmm3		; xmm6=(05 15 25 35)=data5

	movaps	xmm2,xmm7
	movaps	xmm3,xmm4
	addps	xmm7,xmm1		; xmm7=data3+data4=tmp3
	addps	xmm4,xmm6		; xmm4=data2+data5=tmp2
	subps	xmm2,xmm1		; xmm2=data3-data4=tmp4
	subps	xmm3,xmm6		; xmm3=data2-data5=tmp5

	; -- Even part

	movaps	xmm1,xmm5
	movaps	xmm6,xmm0
	subps	xmm5,xmm7		; xmm5=tmp13
	subps	xmm0,xmm4		; xmm0=tmp12
	addps	xmm1,xmm7		; xmm1=tmp10
	addps	xmm6,xmm4		; xmm6=tmp11

	addps	xmm0,xmm5
	mulps	xmm0,[rel PD_0_707] ; xmm0=z1

	movaps	xmm7,xmm1
	movaps	xmm4,xmm5
	subps	xmm1,xmm6		; xmm1=data4
	subps	xmm5,xmm0		; xmm5=data6
	addps	xmm7,xmm6		; xmm7=data0
	addps	xmm4,xmm0		; xmm4=data2

	movaps	XMMWORD [XMMBLOCK(0,1,rdx,SIZEOF_FAST_FLOAT)], xmm1
	movaps	XMMWORD [XMMBLOCK(2,1,rdx,SIZEOF_FAST_FLOAT)], xmm5
	movaps	XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_FAST_FLOAT)], xmm7
	movaps	XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_FAST_FLOAT)], xmm4

	; -- Odd part

	movaps	xmm6, XMMWORD [wk(0)]	; xmm6=tmp6
	movaps	xmm0, XMMWORD [wk(1)]	; xmm0=tmp7

	addps	xmm2,xmm3		; xmm2=tmp10
	addps	xmm3,xmm6		; xmm3=tmp11
	addps	xmm6,xmm0		; xmm6=tmp12, xmm0=tmp7

	mulps	xmm3,[rel PD_0_707] ; xmm3=z3

	movaps	xmm1,xmm2		; xmm1=tmp10
	subps	xmm2,xmm6
	mulps	xmm2,[rel PD_0_382] ; xmm2=z5
	mulps	xmm1,[rel PD_0_541] ; xmm1=MULTIPLY(tmp10,FIX_0_541196)
	mulps	xmm6,[rel PD_1_306] ; xmm6=MULTIPLY(tmp12,FIX_1_306562)
	addps	xmm1,xmm2		; xmm1=z2
	addps	xmm6,xmm2		; xmm6=z4

	movaps	xmm5,xmm0
	subps	xmm0,xmm3		; xmm0=z13
	addps	xmm5,xmm3		; xmm5=z11

	movaps	xmm7,xmm0
	movaps	xmm4,xmm5
	subps	xmm0,xmm1		; xmm0=data3
	subps	xmm5,xmm6		; xmm5=data7
	addps	xmm7,xmm1		; xmm7=data5
	addps	xmm4,xmm6		; xmm4=data1

	movaps	XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_FAST_FLOAT)], xmm0
	movaps	XMMWORD [XMMBLOCK(3,1,rdx,SIZEOF_FAST_FLOAT)], xmm5
	movaps	XMMWORD [XMMBLOCK(1,1,rdx,SIZEOF_FAST_FLOAT)], xmm7
	movaps	XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_FAST_FLOAT)], xmm4

	add	rdx, 4*DCTSIZE*SIZEOF_FAST_FLOAT
	dec	rcx
	jnz	near .rowloop

	; ---- Pass 2: process columns.

	mov	rdx, r10	; (FAST_FLOAT *)
	mov	rcx, DCTSIZE/4
.columnloop:

	movaps	xmm0, XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_FAST_FLOAT)]
	movaps	xmm1, XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_FAST_FLOAT)]
	movaps	xmm2, XMMWORD [XMMBLOCK(6,0,rdx,SIZEOF_FAST_FLOAT)]
	movaps	xmm3, XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_FAST_FLOAT)]

	; xmm0=(02 12 22 32), xmm2=(42 52 62 72)
	; xmm1=(03 13 23 33), xmm3=(43 53 63 73)

	movaps   xmm4,xmm0		; transpose coefficients(phase 1)
	unpcklps xmm0,xmm1		; xmm0=(02 03 12 13)
	unpckhps xmm4,xmm1		; xmm4=(22 23 32 33)
	movaps   xmm5,xmm2		; transpose coefficients(phase 1)
	unpcklps xmm2,xmm3		; xmm2=(42 43 52 53)
	unpckhps xmm5,xmm3		; xmm5=(62 63 72 73)

	movaps	xmm6, XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_FAST_FLOAT)]
	movaps	xmm7, XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_FAST_FLOAT)]
	movaps	xmm1, XMMWORD [XMMBLOCK(4,0,rdx,SIZEOF_FAST_FLOAT)]
	movaps	xmm3, XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_FAST_FLOAT)]

	; xmm6=(00 10 20 30), xmm1=(40 50 60 70)
	; xmm7=(01 11 21 31), xmm3=(41 51 61 71)

	movaps	XMMWORD [wk(0)], xmm4	; wk(0)=(22 23 32 33)
	movaps	XMMWORD [wk(1)], xmm2	; wk(1)=(42 43 52 53)

	movaps   xmm4,xmm6		; transpose coefficients(phase 1)
	unpcklps xmm6,xmm7		; xmm6=(00 01 10 11)
	unpckhps xmm4,xmm7		; xmm4=(20 21 30 31)
	movaps   xmm2,xmm1		; transpose coefficients(phase 1)
	unpcklps xmm1,xmm3		; xmm1=(40 41 50 51)
	unpckhps xmm2,xmm3		; xmm2=(60 61 70 71)

	movaps    xmm7,xmm6		; transpose coefficients(phase 2)
	unpcklps2 xmm6,xmm0		; xmm6=(00 01 02 03)=data0
	unpckhps2 xmm7,xmm0		; xmm7=(10 11 12 13)=data1
	movaps    xmm3,xmm2		; transpose coefficients(phase 2)
	unpcklps2 xmm2,xmm5		; xmm2=(60 61 62 63)=data6
	unpckhps2 xmm3,xmm5		; xmm3=(70 71 72 73)=data7

	movaps	xmm0,xmm7
	movaps	xmm5,xmm6
	subps	xmm7,xmm2		; xmm7=data1-data6=tmp6
	subps	xmm6,xmm3		; xmm6=data0-data7=tmp7
	addps	xmm0,xmm2		; xmm0=data1+data6=tmp1
	addps	xmm5,xmm3		; xmm5=data0+data7=tmp0

	movaps	xmm2, XMMWORD [wk(0)]	; xmm2=(22 23 32 33)
	movaps	xmm3, XMMWORD [wk(1)]	; xmm3=(42 43 52 53)
	movaps	XMMWORD [wk(0)], xmm7	; wk(0)=tmp6
	movaps	XMMWORD [wk(1)], xmm6	; wk(1)=tmp7

	movaps    xmm7,xmm4		; transpose coefficients(phase 2)
	unpcklps2 xmm4,xmm2		; xmm4=(20 21 22 23)=data2
	unpckhps2 xmm7,xmm2		; xmm7=(30 31 32 33)=data3
	movaps    xmm6,xmm1		; transpose coefficients(phase 2)
	unpcklps2 xmm1,xmm3		; xmm1=(40 41 42 43)=data4
	unpckhps2 xmm6,xmm3		; xmm6=(50 51 52 53)=data5

	movaps	xmm2,xmm7
	movaps	xmm3,xmm4
	addps	xmm7,xmm1		; xmm7=data3+data4=tmp3
	addps	xmm4,xmm6		; xmm4=data2+data5=tmp2
	subps	xmm2,xmm1		; xmm2=data3-data4=tmp4
	subps	xmm3,xmm6		; xmm3=data2-data5=tmp5

	; -- Even part

	movaps	xmm1,xmm5
	movaps	xmm6,xmm0
	subps	xmm5,xmm7		; xmm5=tmp13
	subps	xmm0,xmm4		; xmm0=tmp12
	addps	xmm1,xmm7		; xmm1=tmp10
	addps	xmm6,xmm4		; xmm6=tmp11

	addps	xmm0,xmm5
	mulps	xmm0,[rel PD_0_707] ; xmm0=z1

	movaps	xmm7,xmm1
	movaps	xmm4,xmm5
	subps	xmm1,xmm6		; xmm1=data4
	subps	xmm5,xmm0		; xmm5=data6
	addps	xmm7,xmm6		; xmm7=data0
	addps	xmm4,xmm0		; xmm4=data2

	movaps	XMMWORD [XMMBLOCK(4,0,rdx,SIZEOF_FAST_FLOAT)], xmm1
	movaps	XMMWORD [XMMBLOCK(6,0,rdx,SIZEOF_FAST_FLOAT)], xmm5
	movaps	XMMWORD [XMMBLOCK(0,0,rdx,SIZEOF_FAST_FLOAT)], xmm7
	movaps	XMMWORD [XMMBLOCK(2,0,rdx,SIZEOF_FAST_FLOAT)], xmm4

	; -- Odd part

	movaps	xmm6, XMMWORD [wk(0)]	; xmm6=tmp6
	movaps	xmm0, XMMWORD [wk(1)]	; xmm0=tmp7

	addps	xmm2,xmm3		; xmm2=tmp10
	addps	xmm3,xmm6		; xmm3=tmp11
	addps	xmm6,xmm0		; xmm6=tmp12, xmm0=tmp7

	mulps	xmm3,[rel PD_0_707] ; xmm3=z3

	movaps	xmm1,xmm2		; xmm1=tmp10
	subps	xmm2,xmm6
	mulps	xmm2,[rel PD_0_382] ; xmm2=z5
	mulps	xmm1,[rel PD_0_541] ; xmm1=MULTIPLY(tmp10,FIX_0_541196)
	mulps	xmm6,[rel PD_1_306] ; xmm6=MULTIPLY(tmp12,FIX_1_306562)
	addps	xmm1,xmm2		; xmm1=z2
	addps	xmm6,xmm2		; xmm6=z4

	movaps	xmm5,xmm0
	subps	xmm0,xmm3		; xmm0=z13
	addps	xmm5,xmm3		; xmm5=z11

	movaps	xmm7,xmm0
	movaps	xmm4,xmm5
	subps	xmm0,xmm1		; xmm0=data3
	subps	xmm5,xmm6		; xmm5=data7
	addps	xmm7,xmm1		; xmm7=data5
	addps	xmm4,xmm6		; xmm4=data1

	movaps	XMMWORD [XMMBLOCK(3,0,rdx,SIZEOF_FAST_FLOAT)], xmm0
	movaps	XMMWORD [XMMBLOCK(7,0,rdx,SIZEOF_FAST_FLOAT)], xmm5
	movaps	XMMWORD [XMMBLOCK(5,0,rdx,SIZEOF_FAST_FLOAT)], xmm7
	movaps	XMMWORD [XMMBLOCK(1,0,rdx,SIZEOF_FAST_FLOAT)], xmm4

	add	rdx, byte 4*SIZEOF_FAST_FLOAT
	dec	rcx
	jnz	near .columnloop

	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
