;
; jidctflt.asm - floating-point IDCT (3DNow! & MMX)
;
; 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 inverse DCT
; (Discrete Cosine Transform). The following code is based directly on
; the IJG's original jidctflt.c; see the jidctflt.c for more details.
;
; [TAB8]

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

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

        alignz  16
        global  EXTN(jconst_idct_float_3dnow)

EXTN(jconst_idct_float_3dnow):

PD_1_414        times 2 dd  1.414213562373095048801689
PD_1_847        times 2 dd  1.847759065022573512256366
PD_1_082        times 2 dd  1.082392200292393968799446
PD_2_613        times 2 dd  2.613125929752753055713286
PD_RNDINT_MAGIC times 2 dd  100663296.0 ; (float)(0x00C00000 << 3)
PB_CENTERJSAMP  times 8 db  CENTERJSAMPLE

        alignz  16

; --------------------------------------------------------------------------
        SECTION SEG_TEXT
        BITS    32
;
; Perform dequantization and inverse DCT on one block of coefficients.
;
; GLOBAL(void)
; jsimd_idct_float_3dnow (void *dct_table, JCOEFPTR coef_block,
;                         JSAMPARRAY output_buf, JDIMENSION output_col)
;

%define dct_table(b)    (b)+8           ; void *dct_table
%define coef_block(b)   (b)+12          ; JCOEFPTR coef_block
%define output_buf(b)   (b)+16          ; JSAMPARRAY output_buf
%define output_col(b)   (b)+20          ; JDIMENSION output_col

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

        align   16
        global  EXTN(jsimd_idct_float_3dnow)

EXTN(jsimd_idct_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, [workspace]
        push    ebx
;       push    ecx             ; need not be preserved
;       push    edx             ; need not be preserved
        push    esi
        push    edi

        get_GOT ebx             ; get GOT address

        ; ---- Pass 1: process columns from input, store into work array.

;       mov     eax, [original_ebp]
        mov     edx, POINTER [dct_table(eax)]           ; quantptr
        mov     esi, JCOEFPTR [coef_block(eax)]         ; inptr
        lea     edi, [workspace]                        ; FAST_FLOAT *wsptr
        mov     ecx, DCTSIZE/2                          ; ctr
        alignx  16,7
.columnloop:
%ifndef NO_ZERO_COLUMN_TEST_FLOAT_3DNOW
        mov     eax, DWORD [DWBLOCK(1,0,esi,SIZEOF_JCOEF)]
        or      eax, DWORD [DWBLOCK(2,0,esi,SIZEOF_JCOEF)]
        jnz     short .columnDCT

        pushpic ebx             ; save GOT address
        mov     ebx, DWORD [DWBLOCK(3,0,esi,SIZEOF_JCOEF)]
        mov     eax, DWORD [DWBLOCK(4,0,esi,SIZEOF_JCOEF)]
        or      ebx, DWORD [DWBLOCK(5,0,esi,SIZEOF_JCOEF)]
        or      eax, DWORD [DWBLOCK(6,0,esi,SIZEOF_JCOEF)]
        or      ebx, DWORD [DWBLOCK(7,0,esi,SIZEOF_JCOEF)]
        or      eax,ebx
        poppic  ebx             ; restore GOT address
        jnz     short .columnDCT

        ; -- AC terms all zero

        movd      mm0, DWORD [DWBLOCK(0,0,esi,SIZEOF_JCOEF)]

        punpcklwd mm0,mm0
        psrad     mm0,(DWORD_BIT-WORD_BIT)
        pi2fd     mm0,mm0

        pfmul     mm0, MMWORD [MMBLOCK(0,0,edx,SIZEOF_FLOAT_MULT_TYPE)]

        movq      mm1,mm0
        punpckldq mm0,mm0
        punpckhdq mm1,mm1

        movq    MMWORD [MMBLOCK(0,0,edi,SIZEOF_FAST_FLOAT)], mm0
        movq    MMWORD [MMBLOCK(0,1,edi,SIZEOF_FAST_FLOAT)], mm0
        movq    MMWORD [MMBLOCK(0,2,edi,SIZEOF_FAST_FLOAT)], mm0
        movq    MMWORD [MMBLOCK(0,3,edi,SIZEOF_FAST_FLOAT)], mm0
        movq    MMWORD [MMBLOCK(1,0,edi,SIZEOF_FAST_FLOAT)], mm1
        movq    MMWORD [MMBLOCK(1,1,edi,SIZEOF_FAST_FLOAT)], mm1
        movq    MMWORD [MMBLOCK(1,2,edi,SIZEOF_FAST_FLOAT)], mm1
        movq    MMWORD [MMBLOCK(1,3,edi,SIZEOF_FAST_FLOAT)], mm1
        jmp     near .nextcolumn
        alignx  16,7
%endif
.columnDCT:

        ; -- Even part

        movd      mm0, DWORD [DWBLOCK(0,0,esi,SIZEOF_JCOEF)]
        movd      mm1, DWORD [DWBLOCK(2,0,esi,SIZEOF_JCOEF)]
        movd      mm2, DWORD [DWBLOCK(4,0,esi,SIZEOF_JCOEF)]
        movd      mm3, DWORD [DWBLOCK(6,0,esi,SIZEOF_JCOEF)]

        punpcklwd mm0,mm0
        punpcklwd mm1,mm1
        psrad     mm0,(DWORD_BIT-WORD_BIT)
        psrad     mm1,(DWORD_BIT-WORD_BIT)
        pi2fd     mm0,mm0
        pi2fd     mm1,mm1

        pfmul     mm0, MMWORD [MMBLOCK(0,0,edx,SIZEOF_FLOAT_MULT_TYPE)]
        pfmul     mm1, MMWORD [MMBLOCK(2,0,edx,SIZEOF_FLOAT_MULT_TYPE)]

        punpcklwd mm2,mm2
        punpcklwd mm3,mm3
        psrad     mm2,(DWORD_BIT-WORD_BIT)
        psrad     mm3,(DWORD_BIT-WORD_BIT)
        pi2fd     mm2,mm2
        pi2fd     mm3,mm3

        pfmul     mm2, MMWORD [MMBLOCK(4,0,edx,SIZEOF_FLOAT_MULT_TYPE)]
        pfmul     mm3, MMWORD [MMBLOCK(6,0,edx,SIZEOF_FLOAT_MULT_TYPE)]

        movq    mm4,mm0
        movq    mm5,mm1
        pfsub   mm0,mm2                 ; mm0=tmp11
        pfsub   mm1,mm3
        pfadd   mm4,mm2                 ; mm4=tmp10
        pfadd   mm5,mm3                 ; mm5=tmp13

        pfmul   mm1,[GOTOFF(ebx,PD_1_414)]
        pfsub   mm1,mm5                 ; mm1=tmp12

        movq    mm6,mm4
        movq    mm7,mm0
        pfsub   mm4,mm5                 ; mm4=tmp3
        pfsub   mm0,mm1                 ; mm0=tmp2
        pfadd   mm6,mm5                 ; mm6=tmp0
        pfadd   mm7,mm1                 ; mm7=tmp1

        movq    MMWORD [wk(1)], mm4     ; tmp3
        movq    MMWORD [wk(0)], mm0     ; tmp2

        ; -- Odd part

        movd      mm2, DWORD [DWBLOCK(1,0,esi,SIZEOF_JCOEF)]
        movd      mm3, DWORD [DWBLOCK(3,0,esi,SIZEOF_JCOEF)]
        movd      mm5, DWORD [DWBLOCK(5,0,esi,SIZEOF_JCOEF)]
        movd      mm1, DWORD [DWBLOCK(7,0,esi,SIZEOF_JCOEF)]

        punpcklwd mm2,mm2
        punpcklwd mm3,mm3
        psrad     mm2,(DWORD_BIT-WORD_BIT)
        psrad     mm3,(DWORD_BIT-WORD_BIT)
        pi2fd     mm2,mm2
        pi2fd     mm3,mm3

        pfmul     mm2, MMWORD [MMBLOCK(1,0,edx,SIZEOF_FLOAT_MULT_TYPE)]
        pfmul     mm3, MMWORD [MMBLOCK(3,0,edx,SIZEOF_FLOAT_MULT_TYPE)]

        punpcklwd mm5,mm5
        punpcklwd mm1,mm1
        psrad     mm5,(DWORD_BIT-WORD_BIT)
        psrad     mm1,(DWORD_BIT-WORD_BIT)
        pi2fd     mm5,mm5
        pi2fd     mm1,mm1

        pfmul     mm5, MMWORD [MMBLOCK(5,0,edx,SIZEOF_FLOAT_MULT_TYPE)]
        pfmul     mm1, MMWORD [MMBLOCK(7,0,edx,SIZEOF_FLOAT_MULT_TYPE)]

        movq    mm4,mm2
        movq    mm0,mm5
        pfadd   mm2,mm1                 ; mm2=z11
        pfadd   mm5,mm3                 ; mm5=z13
        pfsub   mm4,mm1                 ; mm4=z12
        pfsub   mm0,mm3                 ; mm0=z10

        movq    mm1,mm2
        pfsub   mm2,mm5
        pfadd   mm1,mm5                 ; mm1=tmp7

        pfmul   mm2,[GOTOFF(ebx,PD_1_414)]      ; mm2=tmp11

        movq    mm3,mm0
        pfadd   mm0,mm4
        pfmul   mm0,[GOTOFF(ebx,PD_1_847)]      ; mm0=z5
        pfmul   mm3,[GOTOFF(ebx,PD_2_613)]      ; mm3=(z10 * 2.613125930)
        pfmul   mm4,[GOTOFF(ebx,PD_1_082)]      ; mm4=(z12 * 1.082392200)
        pfsubr  mm3,mm0                 ; mm3=tmp12
        pfsub   mm4,mm0                 ; mm4=tmp10

        ; -- Final output stage

        pfsub   mm3,mm1                 ; mm3=tmp6
        movq    mm5,mm6
        movq    mm0,mm7
        pfadd   mm6,mm1                 ; mm6=data0=(00 01)
        pfadd   mm7,mm3                 ; mm7=data1=(10 11)
        pfsub   mm5,mm1                 ; mm5=data7=(70 71)
        pfsub   mm0,mm3                 ; mm0=data6=(60 61)
        pfsub   mm2,mm3                 ; mm2=tmp5

        movq      mm1,mm6               ; transpose coefficients
        punpckldq mm6,mm7               ; mm6=(00 10)
        punpckhdq mm1,mm7               ; mm1=(01 11)
        movq      mm3,mm0               ; transpose coefficients
        punpckldq mm0,mm5               ; mm0=(60 70)
        punpckhdq mm3,mm5               ; mm3=(61 71)

        movq    MMWORD [MMBLOCK(0,0,edi,SIZEOF_FAST_FLOAT)], mm6
        movq    MMWORD [MMBLOCK(1,0,edi,SIZEOF_FAST_FLOAT)], mm1
        movq    MMWORD [MMBLOCK(0,3,edi,SIZEOF_FAST_FLOAT)], mm0
        movq    MMWORD [MMBLOCK(1,3,edi,SIZEOF_FAST_FLOAT)], mm3

        movq    mm7, MMWORD [wk(0)]     ; mm7=tmp2
        movq    mm5, MMWORD [wk(1)]     ; mm5=tmp3

        pfadd   mm4,mm2                 ; mm4=tmp4
        movq    mm6,mm7
        movq    mm1,mm5
        pfadd   mm7,mm2                 ; mm7=data2=(20 21)
        pfadd   mm5,mm4                 ; mm5=data4=(40 41)
        pfsub   mm6,mm2                 ; mm6=data5=(50 51)
        pfsub   mm1,mm4                 ; mm1=data3=(30 31)

        movq      mm0,mm7               ; transpose coefficients
        punpckldq mm7,mm1               ; mm7=(20 30)
        punpckhdq mm0,mm1               ; mm0=(21 31)
        movq      mm3,mm5               ; transpose coefficients
        punpckldq mm5,mm6               ; mm5=(40 50)
        punpckhdq mm3,mm6               ; mm3=(41 51)

        movq    MMWORD [MMBLOCK(0,1,edi,SIZEOF_FAST_FLOAT)], mm7
        movq    MMWORD [MMBLOCK(1,1,edi,SIZEOF_FAST_FLOAT)], mm0
        movq    MMWORD [MMBLOCK(0,2,edi,SIZEOF_FAST_FLOAT)], mm5
        movq    MMWORD [MMBLOCK(1,2,edi,SIZEOF_FAST_FLOAT)], mm3

.nextcolumn:
        add     esi, byte 2*SIZEOF_JCOEF                ; coef_block
        add     edx, byte 2*SIZEOF_FLOAT_MULT_TYPE      ; quantptr
        add     edi, byte 2*DCTSIZE*SIZEOF_FAST_FLOAT   ; wsptr
        dec     ecx                                     ; ctr
        jnz     near .columnloop

        ; -- Prefetch the next coefficient block

        prefetch [esi + (DCTSIZE2-8)*SIZEOF_JCOEF + 0*32]
        prefetch [esi + (DCTSIZE2-8)*SIZEOF_JCOEF + 1*32]
        prefetch [esi + (DCTSIZE2-8)*SIZEOF_JCOEF + 2*32]
        prefetch [esi + (DCTSIZE2-8)*SIZEOF_JCOEF + 3*32]

        ; ---- Pass 2: process rows from work array, store into output array.

        mov     eax, [original_ebp]
        lea     esi, [workspace]                        ; FAST_FLOAT *wsptr
        mov     edi, JSAMPARRAY [output_buf(eax)]       ; (JSAMPROW *)
        mov     eax, JDIMENSION [output_col(eax)]
        mov     ecx, DCTSIZE/2                          ; ctr
        alignx  16,7
.rowloop:

        ; -- Even part

        movq    mm0, MMWORD [MMBLOCK(0,0,esi,SIZEOF_FAST_FLOAT)]
        movq    mm1, MMWORD [MMBLOCK(2,0,esi,SIZEOF_FAST_FLOAT)]
        movq    mm2, MMWORD [MMBLOCK(4,0,esi,SIZEOF_FAST_FLOAT)]
        movq    mm3, MMWORD [MMBLOCK(6,0,esi,SIZEOF_FAST_FLOAT)]

        movq    mm4,mm0
        movq    mm5,mm1
        pfsub   mm0,mm2                 ; mm0=tmp11
        pfsub   mm1,mm3
        pfadd   mm4,mm2                 ; mm4=tmp10
        pfadd   mm5,mm3                 ; mm5=tmp13

        pfmul   mm1,[GOTOFF(ebx,PD_1_414)]
        pfsub   mm1,mm5                 ; mm1=tmp12

        movq    mm6,mm4
        movq    mm7,mm0
        pfsub   mm4,mm5                 ; mm4=tmp3
        pfsub   mm0,mm1                 ; mm0=tmp2
        pfadd   mm6,mm5                 ; mm6=tmp0
        pfadd   mm7,mm1                 ; mm7=tmp1

        movq    MMWORD [wk(1)], mm4     ; tmp3
        movq    MMWORD [wk(0)], mm0     ; tmp2

        ; -- Odd part

        movq    mm2, MMWORD [MMBLOCK(1,0,esi,SIZEOF_FAST_FLOAT)]
        movq    mm3, MMWORD [MMBLOCK(3,0,esi,SIZEOF_FAST_FLOAT)]
        movq    mm5, MMWORD [MMBLOCK(5,0,esi,SIZEOF_FAST_FLOAT)]
        movq    mm1, MMWORD [MMBLOCK(7,0,esi,SIZEOF_FAST_FLOAT)]

        movq    mm4,mm2
        movq    mm0,mm5
        pfadd   mm2,mm1                 ; mm2=z11
        pfadd   mm5,mm3                 ; mm5=z13
        pfsub   mm4,mm1                 ; mm4=z12
        pfsub   mm0,mm3                 ; mm0=z10

        movq    mm1,mm2
        pfsub   mm2,mm5
        pfadd   mm1,mm5                 ; mm1=tmp7

        pfmul   mm2,[GOTOFF(ebx,PD_1_414)]      ; mm2=tmp11

        movq    mm3,mm0
        pfadd   mm0,mm4
        pfmul   mm0,[GOTOFF(ebx,PD_1_847)]      ; mm0=z5
        pfmul   mm3,[GOTOFF(ebx,PD_2_613)]      ; mm3=(z10 * 2.613125930)
        pfmul   mm4,[GOTOFF(ebx,PD_1_082)]      ; mm4=(z12 * 1.082392200)
        pfsubr  mm3,mm0                 ; mm3=tmp12
        pfsub   mm4,mm0                 ; mm4=tmp10

        ; -- Final output stage

        pfsub   mm3,mm1                 ; mm3=tmp6
        movq    mm5,mm6
        movq    mm0,mm7
        pfadd   mm6,mm1                 ; mm6=data0=(00 10)
        pfadd   mm7,mm3                 ; mm7=data1=(01 11)
        pfsub   mm5,mm1                 ; mm5=data7=(07 17)
        pfsub   mm0,mm3                 ; mm0=data6=(06 16)
        pfsub   mm2,mm3                 ; mm2=tmp5

        movq    mm1,[GOTOFF(ebx,PD_RNDINT_MAGIC)]       ; mm1=[PD_RNDINT_MAGIC]
        pcmpeqd mm3,mm3
        psrld   mm3,WORD_BIT            ; mm3={0xFFFF 0x0000 0xFFFF 0x0000}

        pfadd   mm6,mm1                 ; mm6=roundint(data0/8)=(00 ** 10 **)
        pfadd   mm7,mm1                 ; mm7=roundint(data1/8)=(01 ** 11 **)
        pfadd   mm0,mm1                 ; mm0=roundint(data6/8)=(06 ** 16 **)
        pfadd   mm5,mm1                 ; mm5=roundint(data7/8)=(07 ** 17 **)

        pand    mm6,mm3                 ; mm6=(00 -- 10 --)
        pslld   mm7,WORD_BIT            ; mm7=(-- 01 -- 11)
        pand    mm0,mm3                 ; mm0=(06 -- 16 --)
        pslld   mm5,WORD_BIT            ; mm5=(-- 07 -- 17)
        por     mm6,mm7                 ; mm6=(00 01 10 11)
        por     mm0,mm5                 ; mm0=(06 07 16 17)

        movq    mm1, MMWORD [wk(0)]     ; mm1=tmp2
        movq    mm3, MMWORD [wk(1)]     ; mm3=tmp3

        pfadd   mm4,mm2                 ; mm4=tmp4
        movq    mm7,mm1
        movq    mm5,mm3
        pfadd   mm1,mm2                 ; mm1=data2=(02 12)
        pfadd   mm3,mm4                 ; mm3=data4=(04 14)
        pfsub   mm7,mm2                 ; mm7=data5=(05 15)
        pfsub   mm5,mm4                 ; mm5=data3=(03 13)

        movq    mm2,[GOTOFF(ebx,PD_RNDINT_MAGIC)]       ; mm2=[PD_RNDINT_MAGIC]
        pcmpeqd mm4,mm4
        psrld   mm4,WORD_BIT            ; mm4={0xFFFF 0x0000 0xFFFF 0x0000}

        pfadd   mm3,mm2                 ; mm3=roundint(data4/8)=(04 ** 14 **)
        pfadd   mm7,mm2                 ; mm7=roundint(data5/8)=(05 ** 15 **)
        pfadd   mm1,mm2                 ; mm1=roundint(data2/8)=(02 ** 12 **)
        pfadd   mm5,mm2                 ; mm5=roundint(data3/8)=(03 ** 13 **)

        pand    mm3,mm4                 ; mm3=(04 -- 14 --)
        pslld   mm7,WORD_BIT            ; mm7=(-- 05 -- 15)
        pand    mm1,mm4                 ; mm1=(02 -- 12 --)
        pslld   mm5,WORD_BIT            ; mm5=(-- 03 -- 13)
        por     mm3,mm7                 ; mm3=(04 05 14 15)
        por     mm1,mm5                 ; mm1=(02 03 12 13)

        movq      mm2,[GOTOFF(ebx,PB_CENTERJSAMP)]      ; mm2=[PB_CENTERJSAMP]

        packsswb  mm6,mm3               ; mm6=(00 01 10 11 04 05 14 15)
        packsswb  mm1,mm0               ; mm1=(02 03 12 13 06 07 16 17)
        paddb     mm6,mm2
        paddb     mm1,mm2

        movq      mm4,mm6               ; transpose coefficients(phase 2)
        punpcklwd mm6,mm1               ; mm6=(00 01 02 03 10 11 12 13)
        punpckhwd mm4,mm1               ; mm4=(04 05 06 07 14 15 16 17)

        movq      mm7,mm6               ; transpose coefficients(phase 3)
        punpckldq mm6,mm4               ; mm6=(00 01 02 03 04 05 06 07)
        punpckhdq mm7,mm4               ; mm7=(10 11 12 13 14 15 16 17)

        pushpic ebx                     ; save GOT address

        mov     edx, JSAMPROW [edi+0*SIZEOF_JSAMPROW]
        mov     ebx, JSAMPROW [edi+1*SIZEOF_JSAMPROW]
        movq    MMWORD [edx+eax*SIZEOF_JSAMPLE], mm6
        movq    MMWORD [ebx+eax*SIZEOF_JSAMPLE], mm7

        poppic  ebx                     ; restore GOT address

        add     esi, byte 2*SIZEOF_FAST_FLOAT   ; wsptr
        add     edi, byte 2*SIZEOF_JSAMPROW
        dec     ecx                             ; ctr
        jnz     near .rowloop

        femms           ; empty MMX/3DNow! state

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