;
; jfdctflt.asm - floating-point FDCT (3DNow!)
;
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
;
; Based on the 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
