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

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

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

%define CONST_BITS      13
%define PASS1_BITS      2

%define DESCALE_P1      (CONST_BITS-PASS1_BITS)
%define DESCALE_P2      (CONST_BITS+PASS1_BITS)

%if CONST_BITS == 13
F_0_298 equ      2446           ; FIX(0.298631336)
F_0_390 equ      3196           ; FIX(0.390180644)
F_0_541 equ      4433           ; FIX(0.541196100)
F_0_765 equ      6270           ; FIX(0.765366865)
F_0_899 equ      7373           ; FIX(0.899976223)
F_1_175 equ      9633           ; FIX(1.175875602)
F_1_501 equ     12299           ; FIX(1.501321110)
F_1_847 equ     15137           ; FIX(1.847759065)
F_1_961 equ     16069           ; FIX(1.961570560)
F_2_053 equ     16819           ; FIX(2.053119869)
F_2_562 equ     20995           ; FIX(2.562915447)
F_3_072 equ     25172           ; FIX(3.072711026)
%else
; NASM cannot do compile-time arithmetic on floating-point constants.
%define DESCALE(x,n)  (((x)+(1<<((n)-1)))>>(n))
F_0_298 equ     DESCALE( 320652955,30-CONST_BITS)       ; FIX(0.298631336)
F_0_390 equ     DESCALE( 418953276,30-CONST_BITS)       ; FIX(0.390180644)
F_0_541 equ     DESCALE( 581104887,30-CONST_BITS)       ; FIX(0.541196100)
F_0_765 equ     DESCALE( 821806413,30-CONST_BITS)       ; FIX(0.765366865)
F_0_899 equ     DESCALE( 966342111,30-CONST_BITS)       ; FIX(0.899976223)
F_1_175 equ     DESCALE(1262586813,30-CONST_BITS)       ; FIX(1.175875602)
F_1_501 equ     DESCALE(1612031267,30-CONST_BITS)       ; FIX(1.501321110)
F_1_847 equ     DESCALE(1984016188,30-CONST_BITS)       ; FIX(1.847759065)
F_1_961 equ     DESCALE(2106220350,30-CONST_BITS)       ; FIX(1.961570560)
F_2_053 equ     DESCALE(2204520673,30-CONST_BITS)       ; FIX(2.053119869)
F_2_562 equ     DESCALE(2751909506,30-CONST_BITS)       ; FIX(2.562915447)
F_3_072 equ     DESCALE(3299298341,30-CONST_BITS)       ; FIX(3.072711026)
%endif

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

        alignz  16
        global  EXTN(jconst_fdct_islow_mmx)

EXTN(jconst_fdct_islow_mmx):

PW_F130_F054    times 2 dw  (F_0_541+F_0_765), F_0_541
PW_F054_MF130   times 2 dw  F_0_541, (F_0_541-F_1_847)
PW_MF078_F117   times 2 dw  (F_1_175-F_1_961), F_1_175
PW_F117_F078    times 2 dw  F_1_175, (F_1_175-F_0_390)
PW_MF060_MF089  times 2 dw  (F_0_298-F_0_899),-F_0_899
PW_MF089_F060   times 2 dw -F_0_899, (F_1_501-F_0_899)
PW_MF050_MF256  times 2 dw  (F_2_053-F_2_562),-F_2_562
PW_MF256_F050   times 2 dw -F_2_562, (F_3_072-F_2_562)
PD_DESCALE_P1   times 2 dd  1 << (DESCALE_P1-1)
PD_DESCALE_P2   times 2 dd  1 << (DESCALE_P2-1)
PW_DESCALE_P2X  times 4 dw  1 << (PASS1_BITS-1)

        alignz  16

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

%define data(b)         (b)+8           ; DCTELEM * 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_islow_mmx)

EXTN(jsimd_fdct_islow_mmx):
        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)]        ; (DCTELEM *)
        mov     ecx, DCTSIZE/4
        alignx  16,7
.rowloop:

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

        ; mm0=(20 21 22 23), mm2=(24 25 26 27)
        ; mm1=(30 31 32 33), mm3=(34 35 36 37)

        movq      mm4,mm0               ; transpose coefficients(phase 1)
        punpcklwd mm0,mm1               ; mm0=(20 30 21 31)
        punpckhwd mm4,mm1               ; mm4=(22 32 23 33)
        movq      mm5,mm2               ; transpose coefficients(phase 1)
        punpcklwd mm2,mm3               ; mm2=(24 34 25 35)
        punpckhwd mm5,mm3               ; mm5=(26 36 27 37)

        movq    mm6, MMWORD [MMBLOCK(0,0,edx,SIZEOF_DCTELEM)]
        movq    mm7, MMWORD [MMBLOCK(1,0,edx,SIZEOF_DCTELEM)]
        movq    mm1, MMWORD [MMBLOCK(0,1,edx,SIZEOF_DCTELEM)]
        movq    mm3, MMWORD [MMBLOCK(1,1,edx,SIZEOF_DCTELEM)]

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

        movq    MMWORD [wk(0)], mm4     ; wk(0)=(22 32 23 33)
        movq    MMWORD [wk(1)], mm2     ; wk(1)=(24 34 25 35)

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

        movq      mm7,mm6               ; transpose coefficients(phase 2)
        punpckldq mm6,mm0               ; mm6=(00 10 20 30)=data0
        punpckhdq mm7,mm0               ; mm7=(01 11 21 31)=data1
        movq      mm3,mm2               ; transpose coefficients(phase 2)
        punpckldq mm2,mm5               ; mm2=(06 16 26 36)=data6
        punpckhdq mm3,mm5               ; mm3=(07 17 27 37)=data7

        movq    mm0,mm7
        movq    mm5,mm6
        psubw   mm7,mm2                 ; mm7=data1-data6=tmp6
        psubw   mm6,mm3                 ; mm6=data0-data7=tmp7
        paddw   mm0,mm2                 ; mm0=data1+data6=tmp1
        paddw   mm5,mm3                 ; mm5=data0+data7=tmp0

        movq    mm2, MMWORD [wk(0)]     ; mm2=(22 32 23 33)
        movq    mm3, MMWORD [wk(1)]     ; mm3=(24 34 25 35)
        movq    MMWORD [wk(0)], mm7     ; wk(0)=tmp6
        movq    MMWORD [wk(1)], mm6     ; wk(1)=tmp7

        movq      mm7,mm4               ; transpose coefficients(phase 2)
        punpckldq mm4,mm2               ; mm4=(02 12 22 32)=data2
        punpckhdq mm7,mm2               ; mm7=(03 13 23 33)=data3
        movq      mm6,mm1               ; transpose coefficients(phase 2)
        punpckldq mm1,mm3               ; mm1=(04 14 24 34)=data4
        punpckhdq mm6,mm3               ; mm6=(05 15 25 35)=data5

        movq    mm2,mm7
        movq    mm3,mm4
        paddw   mm7,mm1                 ; mm7=data3+data4=tmp3
        paddw   mm4,mm6                 ; mm4=data2+data5=tmp2
        psubw   mm2,mm1                 ; mm2=data3-data4=tmp4
        psubw   mm3,mm6                 ; mm3=data2-data5=tmp5

        ; -- Even part

        movq    mm1,mm5
        movq    mm6,mm0
        paddw   mm5,mm7                 ; mm5=tmp10
        paddw   mm0,mm4                 ; mm0=tmp11
        psubw   mm1,mm7                 ; mm1=tmp13
        psubw   mm6,mm4                 ; mm6=tmp12

        movq    mm7,mm5
        paddw   mm5,mm0                 ; mm5=tmp10+tmp11
        psubw   mm7,mm0                 ; mm7=tmp10-tmp11

        psllw   mm5,PASS1_BITS          ; mm5=data0
        psllw   mm7,PASS1_BITS          ; mm7=data4

        movq    MMWORD [MMBLOCK(0,0,edx,SIZEOF_DCTELEM)], mm5
        movq    MMWORD [MMBLOCK(0,1,edx,SIZEOF_DCTELEM)], mm7

        ; (Original)
        ; z1 = (tmp12 + tmp13) * 0.541196100;
        ; data2 = z1 + tmp13 * 0.765366865;
        ; data6 = z1 + tmp12 * -1.847759065;
        ;
        ; (This implementation)
        ; data2 = tmp13 * (0.541196100 + 0.765366865) + tmp12 * 0.541196100;
        ; data6 = tmp13 * 0.541196100 + tmp12 * (0.541196100 - 1.847759065);

        movq      mm4,mm1               ; mm1=tmp13
        movq      mm0,mm1
        punpcklwd mm4,mm6               ; mm6=tmp12
        punpckhwd mm0,mm6
        movq      mm1,mm4
        movq      mm6,mm0
        pmaddwd   mm4,[GOTOFF(ebx,PW_F130_F054)]        ; mm4=data2L
        pmaddwd   mm0,[GOTOFF(ebx,PW_F130_F054)]        ; mm0=data2H
        pmaddwd   mm1,[GOTOFF(ebx,PW_F054_MF130)]       ; mm1=data6L
        pmaddwd   mm6,[GOTOFF(ebx,PW_F054_MF130)]       ; mm6=data6H

        paddd   mm4,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   mm0,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   mm4,DESCALE_P1
        psrad   mm0,DESCALE_P1
        paddd   mm1,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   mm6,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   mm1,DESCALE_P1
        psrad   mm6,DESCALE_P1

        packssdw  mm4,mm0               ; mm4=data2
        packssdw  mm1,mm6               ; mm1=data6

        movq    MMWORD [MMBLOCK(2,0,edx,SIZEOF_DCTELEM)], mm4
        movq    MMWORD [MMBLOCK(2,1,edx,SIZEOF_DCTELEM)], mm1

        ; -- Odd part

        movq    mm5, MMWORD [wk(0)]     ; mm5=tmp6
        movq    mm7, MMWORD [wk(1)]     ; mm7=tmp7

        movq    mm0,mm2                 ; mm2=tmp4
        movq    mm6,mm3                 ; mm3=tmp5
        paddw   mm0,mm5                 ; mm0=z3
        paddw   mm6,mm7                 ; mm6=z4

        ; (Original)
        ; z5 = (z3 + z4) * 1.175875602;
        ; z3 = z3 * -1.961570560;  z4 = z4 * -0.390180644;
        ; z3 += z5;  z4 += z5;
        ;
        ; (This implementation)
        ; z3 = z3 * (1.175875602 - 1.961570560) + z4 * 1.175875602;
        ; z4 = z3 * 1.175875602 + z4 * (1.175875602 - 0.390180644);

        movq      mm4,mm0
        movq      mm1,mm0
        punpcklwd mm4,mm6
        punpckhwd mm1,mm6
        movq      mm0,mm4
        movq      mm6,mm1
        pmaddwd   mm4,[GOTOFF(ebx,PW_MF078_F117)]       ; mm4=z3L
        pmaddwd   mm1,[GOTOFF(ebx,PW_MF078_F117)]       ; mm1=z3H
        pmaddwd   mm0,[GOTOFF(ebx,PW_F117_F078)]        ; mm0=z4L
        pmaddwd   mm6,[GOTOFF(ebx,PW_F117_F078)]        ; mm6=z4H

        movq    MMWORD [wk(0)], mm4     ; wk(0)=z3L
        movq    MMWORD [wk(1)], mm1     ; wk(1)=z3H

        ; (Original)
        ; z1 = tmp4 + tmp7;  z2 = tmp5 + tmp6;
        ; tmp4 = tmp4 * 0.298631336;  tmp5 = tmp5 * 2.053119869;
        ; tmp6 = tmp6 * 3.072711026;  tmp7 = tmp7 * 1.501321110;
        ; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
        ; data7 = tmp4 + z1 + z3;  data5 = tmp5 + z2 + z4;
        ; data3 = tmp6 + z2 + z3;  data1 = tmp7 + z1 + z4;
        ;
        ; (This implementation)
        ; tmp4 = tmp4 * (0.298631336 - 0.899976223) + tmp7 * -0.899976223;
        ; tmp5 = tmp5 * (2.053119869 - 2.562915447) + tmp6 * -2.562915447;
        ; tmp6 = tmp5 * -2.562915447 + tmp6 * (3.072711026 - 2.562915447);
        ; tmp7 = tmp4 * -0.899976223 + tmp7 * (1.501321110 - 0.899976223);
        ; data7 = tmp4 + z3;  data5 = tmp5 + z4;
        ; data3 = tmp6 + z3;  data1 = tmp7 + z4;

        movq      mm4,mm2
        movq      mm1,mm2
        punpcklwd mm4,mm7
        punpckhwd mm1,mm7
        movq      mm2,mm4
        movq      mm7,mm1
        pmaddwd   mm4,[GOTOFF(ebx,PW_MF060_MF089)]      ; mm4=tmp4L
        pmaddwd   mm1,[GOTOFF(ebx,PW_MF060_MF089)]      ; mm1=tmp4H
        pmaddwd   mm2,[GOTOFF(ebx,PW_MF089_F060)]       ; mm2=tmp7L
        pmaddwd   mm7,[GOTOFF(ebx,PW_MF089_F060)]       ; mm7=tmp7H

        paddd   mm4, MMWORD [wk(0)]     ; mm4=data7L
        paddd   mm1, MMWORD [wk(1)]     ; mm1=data7H
        paddd   mm2,mm0                 ; mm2=data1L
        paddd   mm7,mm6                 ; mm7=data1H

        paddd   mm4,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   mm1,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   mm4,DESCALE_P1
        psrad   mm1,DESCALE_P1
        paddd   mm2,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   mm7,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   mm2,DESCALE_P1
        psrad   mm7,DESCALE_P1

        packssdw  mm4,mm1               ; mm4=data7
        packssdw  mm2,mm7               ; mm2=data1

        movq    MMWORD [MMBLOCK(3,1,edx,SIZEOF_DCTELEM)], mm4
        movq    MMWORD [MMBLOCK(1,0,edx,SIZEOF_DCTELEM)], mm2

        movq      mm1,mm3
        movq      mm7,mm3
        punpcklwd mm1,mm5
        punpckhwd mm7,mm5
        movq      mm3,mm1
        movq      mm5,mm7
        pmaddwd   mm1,[GOTOFF(ebx,PW_MF050_MF256)]      ; mm1=tmp5L
        pmaddwd   mm7,[GOTOFF(ebx,PW_MF050_MF256)]      ; mm7=tmp5H
        pmaddwd   mm3,[GOTOFF(ebx,PW_MF256_F050)]       ; mm3=tmp6L
        pmaddwd   mm5,[GOTOFF(ebx,PW_MF256_F050)]       ; mm5=tmp6H

        paddd   mm1,mm0                 ; mm1=data5L
        paddd   mm7,mm6                 ; mm7=data5H
        paddd   mm3, MMWORD [wk(0)]     ; mm3=data3L
        paddd   mm5, MMWORD [wk(1)]     ; mm5=data3H

        paddd   mm1,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   mm7,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   mm1,DESCALE_P1
        psrad   mm7,DESCALE_P1
        paddd   mm3,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   mm5,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   mm3,DESCALE_P1
        psrad   mm5,DESCALE_P1

        packssdw  mm1,mm7               ; mm1=data5
        packssdw  mm3,mm5               ; mm3=data3

        movq    MMWORD [MMBLOCK(1,1,edx,SIZEOF_DCTELEM)], mm1
        movq    MMWORD [MMBLOCK(3,0,edx,SIZEOF_DCTELEM)], mm3

        add     edx, byte 4*DCTSIZE*SIZEOF_DCTELEM
        dec     ecx
        jnz     near .rowloop

        ; ---- Pass 2: process columns.

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

        movq    mm0, MMWORD [MMBLOCK(2,0,edx,SIZEOF_DCTELEM)]
        movq    mm1, MMWORD [MMBLOCK(3,0,edx,SIZEOF_DCTELEM)]
        movq    mm2, MMWORD [MMBLOCK(6,0,edx,SIZEOF_DCTELEM)]
        movq    mm3, MMWORD [MMBLOCK(7,0,edx,SIZEOF_DCTELEM)]

        ; mm0=(02 12 22 32), mm2=(42 52 62 72)
        ; mm1=(03 13 23 33), mm3=(43 53 63 73)

        movq      mm4,mm0               ; transpose coefficients(phase 1)
        punpcklwd mm0,mm1               ; mm0=(02 03 12 13)
        punpckhwd mm4,mm1               ; mm4=(22 23 32 33)
        movq      mm5,mm2               ; transpose coefficients(phase 1)
        punpcklwd mm2,mm3               ; mm2=(42 43 52 53)
        punpckhwd mm5,mm3               ; mm5=(62 63 72 73)

        movq    mm6, MMWORD [MMBLOCK(0,0,edx,SIZEOF_DCTELEM)]
        movq    mm7, MMWORD [MMBLOCK(1,0,edx,SIZEOF_DCTELEM)]
        movq    mm1, MMWORD [MMBLOCK(4,0,edx,SIZEOF_DCTELEM)]
        movq    mm3, MMWORD [MMBLOCK(5,0,edx,SIZEOF_DCTELEM)]

        ; mm6=(00 10 20 30), mm1=(40 50 60 70)
        ; mm7=(01 11 21 31), mm3=(41 51 61 71)

        movq    MMWORD [wk(0)], mm4     ; wk(0)=(22 23 32 33)
        movq    MMWORD [wk(1)], mm2     ; wk(1)=(42 43 52 53)

        movq      mm4,mm6               ; transpose coefficients(phase 1)
        punpcklwd mm6,mm7               ; mm6=(00 01 10 11)
        punpckhwd mm4,mm7               ; mm4=(20 21 30 31)
        movq      mm2,mm1               ; transpose coefficients(phase 1)
        punpcklwd mm1,mm3               ; mm1=(40 41 50 51)
        punpckhwd mm2,mm3               ; mm2=(60 61 70 71)

        movq      mm7,mm6               ; transpose coefficients(phase 2)
        punpckldq mm6,mm0               ; mm6=(00 01 02 03)=data0
        punpckhdq mm7,mm0               ; mm7=(10 11 12 13)=data1
        movq      mm3,mm2               ; transpose coefficients(phase 2)
        punpckldq mm2,mm5               ; mm2=(60 61 62 63)=data6
        punpckhdq mm3,mm5               ; mm3=(70 71 72 73)=data7

        movq    mm0,mm7
        movq    mm5,mm6
        psubw   mm7,mm2                 ; mm7=data1-data6=tmp6
        psubw   mm6,mm3                 ; mm6=data0-data7=tmp7
        paddw   mm0,mm2                 ; mm0=data1+data6=tmp1
        paddw   mm5,mm3                 ; mm5=data0+data7=tmp0

        movq    mm2, MMWORD [wk(0)]     ; mm2=(22 23 32 33)
        movq    mm3, MMWORD [wk(1)]     ; mm3=(42 43 52 53)
        movq    MMWORD [wk(0)], mm7     ; wk(0)=tmp6
        movq    MMWORD [wk(1)], mm6     ; wk(1)=tmp7

        movq      mm7,mm4               ; transpose coefficients(phase 2)
        punpckldq mm4,mm2               ; mm4=(20 21 22 23)=data2
        punpckhdq mm7,mm2               ; mm7=(30 31 32 33)=data3
        movq      mm6,mm1               ; transpose coefficients(phase 2)
        punpckldq mm1,mm3               ; mm1=(40 41 42 43)=data4
        punpckhdq mm6,mm3               ; mm6=(50 51 52 53)=data5

        movq    mm2,mm7
        movq    mm3,mm4
        paddw   mm7,mm1                 ; mm7=data3+data4=tmp3
        paddw   mm4,mm6                 ; mm4=data2+data5=tmp2
        psubw   mm2,mm1                 ; mm2=data3-data4=tmp4
        psubw   mm3,mm6                 ; mm3=data2-data5=tmp5

        ; -- Even part

        movq    mm1,mm5
        movq    mm6,mm0
        paddw   mm5,mm7                 ; mm5=tmp10
        paddw   mm0,mm4                 ; mm0=tmp11
        psubw   mm1,mm7                 ; mm1=tmp13
        psubw   mm6,mm4                 ; mm6=tmp12

        movq    mm7,mm5
        paddw   mm5,mm0                 ; mm5=tmp10+tmp11
        psubw   mm7,mm0                 ; mm7=tmp10-tmp11

        paddw   mm5,[GOTOFF(ebx,PW_DESCALE_P2X)]
        paddw   mm7,[GOTOFF(ebx,PW_DESCALE_P2X)]
        psraw   mm5,PASS1_BITS          ; mm5=data0
        psraw   mm7,PASS1_BITS          ; mm7=data4

        movq    MMWORD [MMBLOCK(0,0,edx,SIZEOF_DCTELEM)], mm5
        movq    MMWORD [MMBLOCK(4,0,edx,SIZEOF_DCTELEM)], mm7

        ; (Original)
        ; z1 = (tmp12 + tmp13) * 0.541196100;
        ; data2 = z1 + tmp13 * 0.765366865;
        ; data6 = z1 + tmp12 * -1.847759065;
        ;
        ; (This implementation)
        ; data2 = tmp13 * (0.541196100 + 0.765366865) + tmp12 * 0.541196100;
        ; data6 = tmp13 * 0.541196100 + tmp12 * (0.541196100 - 1.847759065);

        movq      mm4,mm1               ; mm1=tmp13
        movq      mm0,mm1
        punpcklwd mm4,mm6               ; mm6=tmp12
        punpckhwd mm0,mm6
        movq      mm1,mm4
        movq      mm6,mm0
        pmaddwd   mm4,[GOTOFF(ebx,PW_F130_F054)]        ; mm4=data2L
        pmaddwd   mm0,[GOTOFF(ebx,PW_F130_F054)]        ; mm0=data2H
        pmaddwd   mm1,[GOTOFF(ebx,PW_F054_MF130)]       ; mm1=data6L
        pmaddwd   mm6,[GOTOFF(ebx,PW_F054_MF130)]       ; mm6=data6H

        paddd   mm4,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   mm0,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   mm4,DESCALE_P2
        psrad   mm0,DESCALE_P2
        paddd   mm1,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   mm6,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   mm1,DESCALE_P2
        psrad   mm6,DESCALE_P2

        packssdw  mm4,mm0               ; mm4=data2
        packssdw  mm1,mm6               ; mm1=data6

        movq    MMWORD [MMBLOCK(2,0,edx,SIZEOF_DCTELEM)], mm4
        movq    MMWORD [MMBLOCK(6,0,edx,SIZEOF_DCTELEM)], mm1

        ; -- Odd part

        movq    mm5, MMWORD [wk(0)]     ; mm5=tmp6
        movq    mm7, MMWORD [wk(1)]     ; mm7=tmp7

        movq    mm0,mm2                 ; mm2=tmp4
        movq    mm6,mm3                 ; mm3=tmp5
        paddw   mm0,mm5                 ; mm0=z3
        paddw   mm6,mm7                 ; mm6=z4

        ; (Original)
        ; z5 = (z3 + z4) * 1.175875602;
        ; z3 = z3 * -1.961570560;  z4 = z4 * -0.390180644;
        ; z3 += z5;  z4 += z5;
        ;
        ; (This implementation)
        ; z3 = z3 * (1.175875602 - 1.961570560) + z4 * 1.175875602;
        ; z4 = z3 * 1.175875602 + z4 * (1.175875602 - 0.390180644);

        movq      mm4,mm0
        movq      mm1,mm0
        punpcklwd mm4,mm6
        punpckhwd mm1,mm6
        movq      mm0,mm4
        movq      mm6,mm1
        pmaddwd   mm4,[GOTOFF(ebx,PW_MF078_F117)]       ; mm4=z3L
        pmaddwd   mm1,[GOTOFF(ebx,PW_MF078_F117)]       ; mm1=z3H
        pmaddwd   mm0,[GOTOFF(ebx,PW_F117_F078)]        ; mm0=z4L
        pmaddwd   mm6,[GOTOFF(ebx,PW_F117_F078)]        ; mm6=z4H

        movq    MMWORD [wk(0)], mm4     ; wk(0)=z3L
        movq    MMWORD [wk(1)], mm1     ; wk(1)=z3H

        ; (Original)
        ; z1 = tmp4 + tmp7;  z2 = tmp5 + tmp6;
        ; tmp4 = tmp4 * 0.298631336;  tmp5 = tmp5 * 2.053119869;
        ; tmp6 = tmp6 * 3.072711026;  tmp7 = tmp7 * 1.501321110;
        ; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
        ; data7 = tmp4 + z1 + z3;  data5 = tmp5 + z2 + z4;
        ; data3 = tmp6 + z2 + z3;  data1 = tmp7 + z1 + z4;
        ;
        ; (This implementation)
        ; tmp4 = tmp4 * (0.298631336 - 0.899976223) + tmp7 * -0.899976223;
        ; tmp5 = tmp5 * (2.053119869 - 2.562915447) + tmp6 * -2.562915447;
        ; tmp6 = tmp5 * -2.562915447 + tmp6 * (3.072711026 - 2.562915447);
        ; tmp7 = tmp4 * -0.899976223 + tmp7 * (1.501321110 - 0.899976223);
        ; data7 = tmp4 + z3;  data5 = tmp5 + z4;
        ; data3 = tmp6 + z3;  data1 = tmp7 + z4;

        movq      mm4,mm2
        movq      mm1,mm2
        punpcklwd mm4,mm7
        punpckhwd mm1,mm7
        movq      mm2,mm4
        movq      mm7,mm1
        pmaddwd   mm4,[GOTOFF(ebx,PW_MF060_MF089)]      ; mm4=tmp4L
        pmaddwd   mm1,[GOTOFF(ebx,PW_MF060_MF089)]      ; mm1=tmp4H
        pmaddwd   mm2,[GOTOFF(ebx,PW_MF089_F060)]       ; mm2=tmp7L
        pmaddwd   mm7,[GOTOFF(ebx,PW_MF089_F060)]       ; mm7=tmp7H

        paddd   mm4, MMWORD [wk(0)]     ; mm4=data7L
        paddd   mm1, MMWORD [wk(1)]     ; mm1=data7H
        paddd   mm2,mm0                 ; mm2=data1L
        paddd   mm7,mm6                 ; mm7=data1H

        paddd   mm4,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   mm1,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   mm4,DESCALE_P2
        psrad   mm1,DESCALE_P2
        paddd   mm2,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   mm7,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   mm2,DESCALE_P2
        psrad   mm7,DESCALE_P2

        packssdw  mm4,mm1               ; mm4=data7
        packssdw  mm2,mm7               ; mm2=data1

        movq    MMWORD [MMBLOCK(7,0,edx,SIZEOF_DCTELEM)], mm4
        movq    MMWORD [MMBLOCK(1,0,edx,SIZEOF_DCTELEM)], mm2

        movq      mm1,mm3
        movq      mm7,mm3
        punpcklwd mm1,mm5
        punpckhwd mm7,mm5
        movq      mm3,mm1
        movq      mm5,mm7
        pmaddwd   mm1,[GOTOFF(ebx,PW_MF050_MF256)]      ; mm1=tmp5L
        pmaddwd   mm7,[GOTOFF(ebx,PW_MF050_MF256)]      ; mm7=tmp5H
        pmaddwd   mm3,[GOTOFF(ebx,PW_MF256_F050)]       ; mm3=tmp6L
        pmaddwd   mm5,[GOTOFF(ebx,PW_MF256_F050)]       ; mm5=tmp6H

        paddd   mm1,mm0                 ; mm1=data5L
        paddd   mm7,mm6                 ; mm7=data5H
        paddd   mm3, MMWORD [wk(0)]     ; mm3=data3L
        paddd   mm5, MMWORD [wk(1)]     ; mm5=data3H

        paddd   mm1,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   mm7,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   mm1,DESCALE_P2
        psrad   mm7,DESCALE_P2
        paddd   mm3,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   mm5,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   mm3,DESCALE_P2
        psrad   mm5,DESCALE_P2

        packssdw  mm1,mm7               ; mm1=data5
        packssdw  mm3,mm5               ; mm3=data3

        movq    MMWORD [MMBLOCK(5,0,edx,SIZEOF_DCTELEM)], mm1
        movq    MMWORD [MMBLOCK(3,0,edx,SIZEOF_DCTELEM)], mm3

        add     edx, byte 4*SIZEOF_DCTELEM
        dec     ecx
        jnz     near .columnloop

        emms            ; empty MMX 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
