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

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)

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
