;
; jfss2fst.asm - fast integer FDCT (SSE2)
;
; 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 fast, not so accurate integer implementation of
; the forward DCT (Discrete Cosine Transform). The following code is
; based directly on the IJG's original jfdctfst.c; see the jfdctfst.c
; for more details.
;
; [TAB8]

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

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

%define CONST_BITS	8	; 14 is also OK.

%if CONST_BITS == 8
F_0_382	equ	 98		; FIX(0.382683433)
F_0_541	equ	139		; FIX(0.541196100)
F_0_707	equ	181		; FIX(0.707106781)
F_1_306	equ	334		; FIX(1.306562965)
%else
; NASM cannot do compile-time arithmetic on floating-point constants.
%define DESCALE(x,n)  (((x)+(1<<((n)-1)))>>(n))
F_0_382	equ	DESCALE( 410903207,30-CONST_BITS)	; FIX(0.382683433)
F_0_541	equ	DESCALE( 581104887,30-CONST_BITS)	; FIX(0.541196100)
F_0_707	equ	DESCALE( 759250124,30-CONST_BITS)	; FIX(0.707106781)
F_1_306	equ	DESCALE(1402911301,30-CONST_BITS)	; FIX(1.306562965)
%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_fdct_ifast_sse2) PRIVATE

EXTN(jconst_fdct_ifast_sse2):

PW_F0707	times 8 dw  F_0_707 << CONST_SHIFT
PW_F0382	times 8 dw  F_0_382 << CONST_SHIFT
PW_F0541	times 8 dw  F_0_541 << CONST_SHIFT
PW_F1306	times 8 dw  F_1_306 << CONST_SHIFT

	alignz	16

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

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

%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(jsimd_fdct_ifast_sse2) PRIVATE

EXTN(jsimd_fdct_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		; unused
;	push	edi		; unused

	get_GOT	ebx		; get GOT address

	; ---- Pass 1: process rows.

	mov	edx, POINTER [data(eax)]	; (DCTELEM *)

	movdqa	xmm0, XMMWORD [XMMBLOCK(0,0,edx,SIZEOF_DCTELEM)]
	movdqa	xmm1, XMMWORD [XMMBLOCK(1,0,edx,SIZEOF_DCTELEM)]
	movdqa	xmm2, XMMWORD [XMMBLOCK(2,0,edx,SIZEOF_DCTELEM)]
	movdqa	xmm3, XMMWORD [XMMBLOCK(3,0,edx,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,edx,SIZEOF_DCTELEM)]
	movdqa	xmm7, XMMWORD [XMMBLOCK(5,0,edx,SIZEOF_DCTELEM)]
	movdqa	xmm1, XMMWORD [XMMBLOCK(6,0,edx,SIZEOF_DCTELEM)]
	movdqa	xmm3, XMMWORD [XMMBLOCK(7,0,edx,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(0)], xmm7	; wk(0)=(42 52 62 72 43 53 63 73)
	movdqa	XMMWORD [wk(1)], xmm2	; wk(1)=(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(0)]	; xmm2=(42 52 62 72 43 53 63 73)
	movdqa	xmm5, XMMWORD [wk(1)]	; 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
	psubw	xmm3,xmm1		; xmm3=tmp13
	psubw	xmm6,xmm7		; xmm6=tmp12
	paddw	xmm4,xmm1		; xmm4=tmp10
	paddw	xmm0,xmm7		; xmm0=tmp11

	paddw	xmm6,xmm3
	psllw	xmm6,PRE_MULTIPLY_SCALE_BITS
	pmulhw	xmm6,[GOTOFF(ebx,PW_F0707)] ; xmm6=z1

	movdqa	xmm1,xmm4
	movdqa	xmm7,xmm3
	psubw	xmm4,xmm0		; xmm4=data4
	psubw	xmm3,xmm6		; xmm3=data6
	paddw	xmm1,xmm0		; xmm1=data0
	paddw	xmm7,xmm6		; xmm7=data2

	movdqa	xmm0, XMMWORD [wk(0)]	; xmm0=tmp6
	movdqa	xmm6, XMMWORD [wk(1)]	; xmm6=tmp7
	movdqa	XMMWORD [wk(0)], xmm4	; wk(0)=data4
	movdqa	XMMWORD [wk(1)], xmm3	; wk(1)=data6

	; -- Odd part

	paddw	xmm2,xmm5		; xmm2=tmp10
	paddw	xmm5,xmm0		; xmm5=tmp11
	paddw	xmm0,xmm6		; xmm0=tmp12, xmm6=tmp7

	psllw	xmm2,PRE_MULTIPLY_SCALE_BITS
	psllw	xmm0,PRE_MULTIPLY_SCALE_BITS

	psllw	xmm5,PRE_MULTIPLY_SCALE_BITS
	pmulhw	xmm5,[GOTOFF(ebx,PW_F0707)] ; xmm5=z3

	movdqa	xmm4,xmm2		; xmm4=tmp10
	psubw	xmm2,xmm0
	pmulhw	xmm2,[GOTOFF(ebx,PW_F0382)] ; xmm2=z5
	pmulhw	xmm4,[GOTOFF(ebx,PW_F0541)] ; xmm4=MULTIPLY(tmp10,FIX_0_541196)
	pmulhw	xmm0,[GOTOFF(ebx,PW_F1306)] ; xmm0=MULTIPLY(tmp12,FIX_1_306562)
	paddw	xmm4,xmm2		; xmm4=z2
	paddw	xmm0,xmm2		; xmm0=z4

	movdqa	xmm3,xmm6
	psubw	xmm6,xmm5		; xmm6=z13
	paddw	xmm3,xmm5		; xmm3=z11

	movdqa	xmm2,xmm6
	movdqa	xmm5,xmm3
	psubw	xmm6,xmm4		; xmm6=data3
	psubw	xmm3,xmm0		; xmm3=data7
	paddw	xmm2,xmm4		; xmm2=data5
	paddw	xmm5,xmm0		; xmm5=data1

	; ---- Pass 2: process columns.

;	mov	edx, POINTER [data(eax)]	; (DCTELEM *)

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

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

	movdqa	xmm5, XMMWORD [wk(0)]	; xmm5=col4
	movdqa	xmm6, XMMWORD [wk(1)]	; xmm6=col6

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

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

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

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

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

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

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

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

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

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

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

	; -- Even part

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

	paddw	xmm5,xmm3
	psllw	xmm5,PRE_MULTIPLY_SCALE_BITS
	pmulhw	xmm5,[GOTOFF(ebx,PW_F0707)] ; xmm5=z1

	movdqa	xmm6,xmm4
	movdqa	xmm2,xmm3
	psubw	xmm4,xmm1		; xmm4=data4
	psubw	xmm3,xmm5		; xmm3=data6
	paddw	xmm6,xmm1		; xmm6=data0
	paddw	xmm2,xmm5		; xmm2=data2

	movdqa	XMMWORD [XMMBLOCK(4,0,edx,SIZEOF_DCTELEM)], xmm4
	movdqa	XMMWORD [XMMBLOCK(6,0,edx,SIZEOF_DCTELEM)], xmm3
	movdqa	XMMWORD [XMMBLOCK(0,0,edx,SIZEOF_DCTELEM)], xmm6
	movdqa	XMMWORD [XMMBLOCK(2,0,edx,SIZEOF_DCTELEM)], xmm2

	; -- Odd part

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

	paddw	xmm7,xmm0		; xmm7=tmp10
	paddw	xmm0,xmm1		; xmm0=tmp11
	paddw	xmm1,xmm5		; xmm1=tmp12, xmm5=tmp7

	psllw	xmm7,PRE_MULTIPLY_SCALE_BITS
	psllw	xmm1,PRE_MULTIPLY_SCALE_BITS

	psllw	xmm0,PRE_MULTIPLY_SCALE_BITS
	pmulhw	xmm0,[GOTOFF(ebx,PW_F0707)] ; xmm0=z3

	movdqa	xmm4,xmm7		; xmm4=tmp10
	psubw	xmm7,xmm1
	pmulhw	xmm7,[GOTOFF(ebx,PW_F0382)] ; xmm7=z5
	pmulhw	xmm4,[GOTOFF(ebx,PW_F0541)] ; xmm4=MULTIPLY(tmp10,FIX_0_541196)
	pmulhw	xmm1,[GOTOFF(ebx,PW_F1306)] ; xmm1=MULTIPLY(tmp12,FIX_1_306562)
	paddw	xmm4,xmm7		; xmm4=z2
	paddw	xmm1,xmm7		; xmm1=z4

	movdqa	xmm3,xmm5
	psubw	xmm5,xmm0		; xmm5=z13
	paddw	xmm3,xmm0		; xmm3=z11

	movdqa	xmm6,xmm5
	movdqa	xmm2,xmm3
	psubw	xmm5,xmm4		; xmm5=data3
	psubw	xmm3,xmm1		; xmm3=data7
	paddw	xmm6,xmm4		; xmm6=data5
	paddw	xmm2,xmm1		; xmm2=data1

	movdqa	XMMWORD [XMMBLOCK(3,0,edx,SIZEOF_DCTELEM)], xmm5
	movdqa	XMMWORD [XMMBLOCK(7,0,edx,SIZEOF_DCTELEM)], xmm3
	movdqa	XMMWORD [XMMBLOCK(5,0,edx,SIZEOF_DCTELEM)], xmm6
	movdqa	XMMWORD [XMMBLOCK(1,0,edx,SIZEOF_DCTELEM)], xmm2

;	pop	edi		; unused
;	pop	esi		; unused
;	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

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