;
; jf3dnflt.asm - floating-point FDCT (3DNow!)
;
; 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 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"

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

	alignz	16
	global	EXTN(jconst_fdct_float_3dnow) PRIVATE

EXTN(jconst_fdct_float_3dnow):

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

	alignz	16

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

%define data(b)		(b)+8		; FAST_FLOAT * data

%define original_ebp	ebp+0
%define wk(i)		ebp-(WK_NUM-(i))*SIZEOF_MMWORD	; mmword wk[WK_NUM]
%define WK_NUM		2

	align	16
	global	EXTN(jsimd_fdct_float_3dnow) PRIVATE

EXTN(jsimd_fdct_float_3dnow):
	push	ebp
	mov	eax,esp				; eax = original ebp
	sub	esp, byte 4
	and	esp, byte (-SIZEOF_MMWORD)	; align to 64 bits
	mov	[esp],eax
	mov	ebp,esp				; ebp = aligned ebp
	lea	esp, [wk(0)]
	pushpic	ebx
;	push	ecx		; need not be preserved
;	push	edx		; need not be preserved
;	push	esi		; unused
;	push	edi		; unused

	get_GOT	ebx		; get GOT address

	; ---- Pass 1: process rows.

	mov	edx, POINTER [data(eax)]	; (FAST_FLOAT *)
	mov	ecx, DCTSIZE/2
	alignx	16,7
.rowloop:

	movq	mm0, MMWORD [MMBLOCK(0,0,edx,SIZEOF_FAST_FLOAT)]
	movq	mm1, MMWORD [MMBLOCK(1,0,edx,SIZEOF_FAST_FLOAT)]
	movq	mm2, MMWORD [MMBLOCK(0,3,edx,SIZEOF_FAST_FLOAT)]
	movq	mm3, MMWORD [MMBLOCK(1,3,edx,SIZEOF_FAST_FLOAT)]

	; mm0=(00 01), mm1=(10 11), mm2=(06 07), mm3=(16 17)

	movq      mm4,mm0		; transpose coefficients
	punpckldq mm0,mm1		; mm0=(00 10)=data0
	punpckhdq mm4,mm1		; mm4=(01 11)=data1
	movq      mm5,mm2		; transpose coefficients
	punpckldq mm2,mm3		; mm2=(06 16)=data6
	punpckhdq mm5,mm3		; mm5=(07 17)=data7

	movq	mm6,mm4
	movq	mm7,mm0
	pfsub	mm4,mm2			; mm4=data1-data6=tmp6
	pfsub	mm0,mm5			; mm0=data0-data7=tmp7
	pfadd	mm6,mm2			; mm6=data1+data6=tmp1
	pfadd	mm7,mm5			; mm7=data0+data7=tmp0

	movq	mm1, MMWORD [MMBLOCK(0,1,edx,SIZEOF_FAST_FLOAT)]
	movq	mm3, MMWORD [MMBLOCK(1,1,edx,SIZEOF_FAST_FLOAT)]
	movq	mm2, MMWORD [MMBLOCK(0,2,edx,SIZEOF_FAST_FLOAT)]
	movq	mm5, MMWORD [MMBLOCK(1,2,edx,SIZEOF_FAST_FLOAT)]

	; mm1=(02 03), mm3=(12 13), mm2=(04 05), mm5=(14 15)

	movq	MMWORD [wk(0)], mm4	; wk(0)=tmp6
	movq	MMWORD [wk(1)], mm0	; wk(1)=tmp7

	movq      mm4,mm1		; transpose coefficients
	punpckldq mm1,mm3		; mm1=(02 12)=data2
	punpckhdq mm4,mm3		; mm4=(03 13)=data3
	movq      mm0,mm2		; transpose coefficients
	punpckldq mm2,mm5		; mm2=(04 14)=data4
	punpckhdq mm0,mm5		; mm0=(05 15)=data5

	movq	mm3,mm4
	movq	mm5,mm1
	pfadd	mm4,mm2			; mm4=data3+data4=tmp3
	pfadd	mm1,mm0			; mm1=data2+data5=tmp2
	pfsub	mm3,mm2			; mm3=data3-data4=tmp4
	pfsub	mm5,mm0			; mm5=data2-data5=tmp5

	; -- Even part

	movq	mm2,mm7
	movq	mm0,mm6
	pfsub	mm7,mm4			; mm7=tmp13
	pfsub	mm6,mm1			; mm6=tmp12
	pfadd	mm2,mm4			; mm2=tmp10
	pfadd	mm0,mm1			; mm0=tmp11

	pfadd	mm6,mm7
	pfmul	mm6,[GOTOFF(ebx,PD_0_707)] ; mm6=z1

	movq	mm4,mm2
	movq	mm1,mm7
	pfsub	mm2,mm0			; mm2=data4
	pfsub	mm7,mm6			; mm7=data6
	pfadd	mm4,mm0			; mm4=data0
	pfadd	mm1,mm6			; mm1=data2

	movq	MMWORD [MMBLOCK(0,2,edx,SIZEOF_FAST_FLOAT)], mm2
	movq	MMWORD [MMBLOCK(0,3,edx,SIZEOF_FAST_FLOAT)], mm7
	movq	MMWORD [MMBLOCK(0,0,edx,SIZEOF_FAST_FLOAT)], mm4
	movq	MMWORD [MMBLOCK(0,1,edx,SIZEOF_FAST_FLOAT)], mm1

	; -- Odd part

	movq	mm0, MMWORD [wk(0)]	; mm0=tmp6
	movq	mm6, MMWORD [wk(1)]	; mm6=tmp7

	pfadd	mm3,mm5			; mm3=tmp10
	pfadd	mm5,mm0			; mm5=tmp11
	pfadd	mm0,mm6			; mm0=tmp12, mm6=tmp7

	pfmul	mm5,[GOTOFF(ebx,PD_0_707)] ; mm5=z3

	movq	mm2,mm3			; mm2=tmp10
	pfsub	mm3,mm0
	pfmul	mm3,[GOTOFF(ebx,PD_0_382)] ; mm3=z5
	pfmul	mm2,[GOTOFF(ebx,PD_0_541)] ; mm2=MULTIPLY(tmp10,FIX_0_54119610)
	pfmul	mm0,[GOTOFF(ebx,PD_1_306)] ; mm0=MULTIPLY(tmp12,FIX_1_30656296)
	pfadd	mm2,mm3			; mm2=z2
	pfadd	mm0,mm3			; mm0=z4

	movq	mm7,mm6
	pfsub	mm6,mm5			; mm6=z13
	pfadd	mm7,mm5			; mm7=z11

	movq	mm4,mm6
	movq	mm1,mm7
	pfsub	mm6,mm2			; mm6=data3
	pfsub	mm7,mm0			; mm7=data7
	pfadd	mm4,mm2			; mm4=data5
	pfadd	mm1,mm0			; mm1=data1

	movq	MMWORD [MMBLOCK(1,1,edx,SIZEOF_FAST_FLOAT)], mm6
	movq	MMWORD [MMBLOCK(1,3,edx,SIZEOF_FAST_FLOAT)], mm7
	movq	MMWORD [MMBLOCK(1,2,edx,SIZEOF_FAST_FLOAT)], mm4
	movq	MMWORD [MMBLOCK(1,0,edx,SIZEOF_FAST_FLOAT)], mm1

	add	edx, byte 2*DCTSIZE*SIZEOF_FAST_FLOAT
	dec	ecx
	jnz	near .rowloop

	; ---- Pass 2: process columns.

	mov	edx, POINTER [data(eax)]	; (FAST_FLOAT *)
	mov	ecx, DCTSIZE/2
	alignx	16,7
.columnloop:

	movq	mm0, MMWORD [MMBLOCK(0,0,edx,SIZEOF_FAST_FLOAT)]
	movq	mm1, MMWORD [MMBLOCK(1,0,edx,SIZEOF_FAST_FLOAT)]
	movq	mm2, MMWORD [MMBLOCK(6,0,edx,SIZEOF_FAST_FLOAT)]
	movq	mm3, MMWORD [MMBLOCK(7,0,edx,SIZEOF_FAST_FLOAT)]

	; mm0=(00 10), mm1=(01 11), mm2=(60 70), mm3=(61 71)

	movq      mm4,mm0		; transpose coefficients
	punpckldq mm0,mm1		; mm0=(00 01)=data0
	punpckhdq mm4,mm1		; mm4=(10 11)=data1
	movq      mm5,mm2		; transpose coefficients
	punpckldq mm2,mm3		; mm2=(60 61)=data6
	punpckhdq mm5,mm3		; mm5=(70 71)=data7

	movq	mm6,mm4
	movq	mm7,mm0
	pfsub	mm4,mm2			; mm4=data1-data6=tmp6
	pfsub	mm0,mm5			; mm0=data0-data7=tmp7
	pfadd	mm6,mm2			; mm6=data1+data6=tmp1
	pfadd	mm7,mm5			; mm7=data0+data7=tmp0

	movq	mm1, MMWORD [MMBLOCK(2,0,edx,SIZEOF_FAST_FLOAT)]
	movq	mm3, MMWORD [MMBLOCK(3,0,edx,SIZEOF_FAST_FLOAT)]
	movq	mm2, MMWORD [MMBLOCK(4,0,edx,SIZEOF_FAST_FLOAT)]
	movq	mm5, MMWORD [MMBLOCK(5,0,edx,SIZEOF_FAST_FLOAT)]

	; mm1=(20 30), mm3=(21 31), mm2=(40 50), mm5=(41 51)

	movq	MMWORD [wk(0)], mm4	; wk(0)=tmp6
	movq	MMWORD [wk(1)], mm0	; wk(1)=tmp7

	movq      mm4,mm1		; transpose coefficients
	punpckldq mm1,mm3		; mm1=(20 21)=data2
	punpckhdq mm4,mm3		; mm4=(30 31)=data3
	movq      mm0,mm2		; transpose coefficients
	punpckldq mm2,mm5		; mm2=(40 41)=data4
	punpckhdq mm0,mm5		; mm0=(50 51)=data5

	movq	mm3,mm4
	movq	mm5,mm1
	pfadd	mm4,mm2			; mm4=data3+data4=tmp3
	pfadd	mm1,mm0			; mm1=data2+data5=tmp2
	pfsub	mm3,mm2			; mm3=data3-data4=tmp4
	pfsub	mm5,mm0			; mm5=data2-data5=tmp5

	; -- Even part

	movq	mm2,mm7
	movq	mm0,mm6
	pfsub	mm7,mm4			; mm7=tmp13
	pfsub	mm6,mm1			; mm6=tmp12
	pfadd	mm2,mm4			; mm2=tmp10
	pfadd	mm0,mm1			; mm0=tmp11

	pfadd	mm6,mm7
	pfmul	mm6,[GOTOFF(ebx,PD_0_707)] ; mm6=z1

	movq	mm4,mm2
	movq	mm1,mm7
	pfsub	mm2,mm0			; mm2=data4
	pfsub	mm7,mm6			; mm7=data6
	pfadd	mm4,mm0			; mm4=data0
	pfadd	mm1,mm6			; mm1=data2

	movq	MMWORD [MMBLOCK(4,0,edx,SIZEOF_FAST_FLOAT)], mm2
	movq	MMWORD [MMBLOCK(6,0,edx,SIZEOF_FAST_FLOAT)], mm7
	movq	MMWORD [MMBLOCK(0,0,edx,SIZEOF_FAST_FLOAT)], mm4
	movq	MMWORD [MMBLOCK(2,0,edx,SIZEOF_FAST_FLOAT)], mm1

	; -- Odd part

	movq	mm0, MMWORD [wk(0)]	; mm0=tmp6
	movq	mm6, MMWORD [wk(1)]	; mm6=tmp7

	pfadd	mm3,mm5			; mm3=tmp10
	pfadd	mm5,mm0			; mm5=tmp11
	pfadd	mm0,mm6			; mm0=tmp12, mm6=tmp7

	pfmul	mm5,[GOTOFF(ebx,PD_0_707)] ; mm5=z3

	movq	mm2,mm3			; mm2=tmp10
	pfsub	mm3,mm0
	pfmul	mm3,[GOTOFF(ebx,PD_0_382)] ; mm3=z5
	pfmul	mm2,[GOTOFF(ebx,PD_0_541)] ; mm2=MULTIPLY(tmp10,FIX_0_54119610)
	pfmul	mm0,[GOTOFF(ebx,PD_1_306)] ; mm0=MULTIPLY(tmp12,FIX_1_30656296)
	pfadd	mm2,mm3			; mm2=z2
	pfadd	mm0,mm3			; mm0=z4

	movq	mm7,mm6
	pfsub	mm6,mm5			; mm6=z13
	pfadd	mm7,mm5			; mm7=z11

	movq	mm4,mm6
	movq	mm1,mm7
	pfsub	mm6,mm2			; mm6=data3
	pfsub	mm7,mm0			; mm7=data7
	pfadd	mm4,mm2			; mm4=data5
	pfadd	mm1,mm0			; mm1=data1

	movq	MMWORD [MMBLOCK(3,0,edx,SIZEOF_FAST_FLOAT)], mm6
	movq	MMWORD [MMBLOCK(7,0,edx,SIZEOF_FAST_FLOAT)], mm7
	movq	MMWORD [MMBLOCK(5,0,edx,SIZEOF_FAST_FLOAT)], mm4
	movq	MMWORD [MMBLOCK(1,0,edx,SIZEOF_FAST_FLOAT)], mm1

	add	edx, byte 2*SIZEOF_FAST_FLOAT
	dec	ecx
	jnz	near .columnloop

	femms		; empty MMX/3DNow! state

;	pop	edi		; unused
;	pop	esi		; unused
;	pop	edx		; need not be preserved
;	pop	ecx		; need not be preserved
	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
