;
; jfdctint.asm - accurate 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 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_sse2)

EXTN(jconst_fdct_islow_sse2):

PW_F130_F054    times 4 dw  (F_0_541+F_0_765), F_0_541
PW_F054_MF130   times 4 dw  F_0_541, (F_0_541-F_1_847)
PW_MF078_F117   times 4 dw  (F_1_175-F_1_961), F_1_175
PW_F117_F078    times 4 dw  F_1_175, (F_1_175-F_0_390)
PW_MF060_MF089  times 4 dw  (F_0_298-F_0_899),-F_0_899
PW_MF089_F060   times 4 dw -F_0_899, (F_1_501-F_0_899)
PW_MF050_MF256  times 4 dw  (F_2_053-F_2_562),-F_2_562
PW_MF256_F050   times 4 dw -F_2_562, (F_3_072-F_2_562)
PD_DESCALE_P1   times 4 dd  1 << (DESCALE_P1-1)
PD_DESCALE_P2   times 4 dd  1 << (DESCALE_P2-1)
PW_DESCALE_P2X  times 8 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_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          6

        align   16
        global  EXTN(jsimd_fdct_islow_sse2)

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

        movdqa  xmm1,xmm3
        paddw   xmm3,xmm6               ; xmm3=tmp10+tmp11
        psubw   xmm1,xmm6               ; xmm1=tmp10-tmp11

        psllw   xmm3,PASS1_BITS         ; xmm3=data0
        psllw   xmm1,PASS1_BITS         ; xmm1=data4

        movdqa  XMMWORD [wk(2)], xmm3   ; wk(2)=data0
        movdqa  XMMWORD [wk(3)], xmm1   ; wk(3)=data4

        ; (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);

        movdqa    xmm7,xmm4             ; xmm4=tmp13
        movdqa    xmm6,xmm4
        punpcklwd xmm7,xmm0             ; xmm0=tmp12
        punpckhwd xmm6,xmm0
        movdqa    xmm4,xmm7
        movdqa    xmm0,xmm6
        pmaddwd   xmm7,[GOTOFF(ebx,PW_F130_F054)]       ; xmm7=data2L
        pmaddwd   xmm6,[GOTOFF(ebx,PW_F130_F054)]       ; xmm6=data2H
        pmaddwd   xmm4,[GOTOFF(ebx,PW_F054_MF130)]      ; xmm4=data6L
        pmaddwd   xmm0,[GOTOFF(ebx,PW_F054_MF130)]      ; xmm0=data6H

        paddd   xmm7,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   xmm6,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   xmm7,DESCALE_P1
        psrad   xmm6,DESCALE_P1
        paddd   xmm4,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   xmm0,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   xmm4,DESCALE_P1
        psrad   xmm0,DESCALE_P1

        packssdw  xmm7,xmm6             ; xmm7=data2
        packssdw  xmm4,xmm0             ; xmm4=data6

        movdqa  XMMWORD [wk(4)], xmm7   ; wk(4)=data2
        movdqa  XMMWORD [wk(5)], xmm4   ; wk(5)=data6

        ; -- Odd part

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

        movdqa  xmm6,xmm2               ; xmm2=tmp4
        movdqa  xmm0,xmm5               ; xmm5=tmp5
        paddw   xmm6,xmm3               ; xmm6=z3
        paddw   xmm0,xmm1               ; xmm0=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);

        movdqa    xmm7,xmm6
        movdqa    xmm4,xmm6
        punpcklwd xmm7,xmm0
        punpckhwd xmm4,xmm0
        movdqa    xmm6,xmm7
        movdqa    xmm0,xmm4
        pmaddwd   xmm7,[GOTOFF(ebx,PW_MF078_F117)]      ; xmm7=z3L
        pmaddwd   xmm4,[GOTOFF(ebx,PW_MF078_F117)]      ; xmm4=z3H
        pmaddwd   xmm6,[GOTOFF(ebx,PW_F117_F078)]       ; xmm6=z4L
        pmaddwd   xmm0,[GOTOFF(ebx,PW_F117_F078)]       ; xmm0=z4H

        movdqa  XMMWORD [wk(0)], xmm7   ; wk(0)=z3L
        movdqa  XMMWORD [wk(1)], xmm4   ; 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;

        movdqa    xmm7,xmm2
        movdqa    xmm4,xmm2
        punpcklwd xmm7,xmm1
        punpckhwd xmm4,xmm1
        movdqa    xmm2,xmm7
        movdqa    xmm1,xmm4
        pmaddwd   xmm7,[GOTOFF(ebx,PW_MF060_MF089)]     ; xmm7=tmp4L
        pmaddwd   xmm4,[GOTOFF(ebx,PW_MF060_MF089)]     ; xmm4=tmp4H
        pmaddwd   xmm2,[GOTOFF(ebx,PW_MF089_F060)]      ; xmm2=tmp7L
        pmaddwd   xmm1,[GOTOFF(ebx,PW_MF089_F060)]      ; xmm1=tmp7H

        paddd   xmm7, XMMWORD [wk(0)]   ; xmm7=data7L
        paddd   xmm4, XMMWORD [wk(1)]   ; xmm4=data7H
        paddd   xmm2,xmm6               ; xmm2=data1L
        paddd   xmm1,xmm0               ; xmm1=data1H

        paddd   xmm7,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   xmm4,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   xmm7,DESCALE_P1
        psrad   xmm4,DESCALE_P1
        paddd   xmm2,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   xmm1,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   xmm2,DESCALE_P1
        psrad   xmm1,DESCALE_P1

        packssdw  xmm7,xmm4             ; xmm7=data7
        packssdw  xmm2,xmm1             ; xmm2=data1

        movdqa    xmm4,xmm5
        movdqa    xmm1,xmm5
        punpcklwd xmm4,xmm3
        punpckhwd xmm1,xmm3
        movdqa    xmm5,xmm4
        movdqa    xmm3,xmm1
        pmaddwd   xmm4,[GOTOFF(ebx,PW_MF050_MF256)]     ; xmm4=tmp5L
        pmaddwd   xmm1,[GOTOFF(ebx,PW_MF050_MF256)]     ; xmm1=tmp5H
        pmaddwd   xmm5,[GOTOFF(ebx,PW_MF256_F050)]      ; xmm5=tmp6L
        pmaddwd   xmm3,[GOTOFF(ebx,PW_MF256_F050)]      ; xmm3=tmp6H

        paddd   xmm4,xmm6               ; xmm4=data5L
        paddd   xmm1,xmm0               ; xmm1=data5H
        paddd   xmm5, XMMWORD [wk(0)]   ; xmm5=data3L
        paddd   xmm3, XMMWORD [wk(1)]   ; xmm3=data3H

        paddd   xmm4,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   xmm1,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   xmm4,DESCALE_P1
        psrad   xmm1,DESCALE_P1
        paddd   xmm5,[GOTOFF(ebx,PD_DESCALE_P1)]
        paddd   xmm3,[GOTOFF(ebx,PD_DESCALE_P1)]
        psrad   xmm5,DESCALE_P1
        psrad   xmm3,DESCALE_P1

        packssdw  xmm4,xmm1             ; xmm4=data5
        packssdw  xmm5,xmm3             ; xmm5=data3

        ; ---- Pass 2: process columns.

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

        movdqa  xmm6, XMMWORD [wk(2)]   ; xmm6=col0
        movdqa  xmm0, XMMWORD [wk(4)]   ; xmm0=col2

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

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

        movdqa  xmm2, XMMWORD [wk(3)]   ; xmm2=col4
        movdqa  xmm5, XMMWORD [wk(5)]   ; xmm5=col6

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

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

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

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

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

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

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

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

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

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

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

        ; -- Even part

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

        movdqa  xmm5,xmm7
        paddw   xmm7,xmm2               ; xmm7=tmp10+tmp11
        psubw   xmm5,xmm2               ; xmm5=tmp10-tmp11

        paddw   xmm7,[GOTOFF(ebx,PW_DESCALE_P2X)]
        paddw   xmm5,[GOTOFF(ebx,PW_DESCALE_P2X)]
        psraw   xmm7,PASS1_BITS         ; xmm7=data0
        psraw   xmm5,PASS1_BITS         ; xmm5=data4

        movdqa  XMMWORD [XMMBLOCK(0,0,edx,SIZEOF_DCTELEM)], xmm7
        movdqa  XMMWORD [XMMBLOCK(4,0,edx,SIZEOF_DCTELEM)], xmm5

        ; (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);

        movdqa    xmm4,xmm1             ; xmm1=tmp13
        movdqa    xmm2,xmm1
        punpcklwd xmm4,xmm6             ; xmm6=tmp12
        punpckhwd xmm2,xmm6
        movdqa    xmm1,xmm4
        movdqa    xmm6,xmm2
        pmaddwd   xmm4,[GOTOFF(ebx,PW_F130_F054)]       ; xmm4=data2L
        pmaddwd   xmm2,[GOTOFF(ebx,PW_F130_F054)]       ; xmm2=data2H
        pmaddwd   xmm1,[GOTOFF(ebx,PW_F054_MF130)]      ; xmm1=data6L
        pmaddwd   xmm6,[GOTOFF(ebx,PW_F054_MF130)]      ; xmm6=data6H

        paddd   xmm4,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   xmm2,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   xmm4,DESCALE_P2
        psrad   xmm2,DESCALE_P2
        paddd   xmm1,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   xmm6,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   xmm1,DESCALE_P2
        psrad   xmm6,DESCALE_P2

        packssdw  xmm4,xmm2             ; xmm4=data2
        packssdw  xmm1,xmm6             ; xmm1=data6

        movdqa  XMMWORD [XMMBLOCK(2,0,edx,SIZEOF_DCTELEM)], xmm4
        movdqa  XMMWORD [XMMBLOCK(6,0,edx,SIZEOF_DCTELEM)], xmm1

        ; -- Odd part

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

        movdqa  xmm2,xmm0               ; xmm0=tmp4
        movdqa  xmm6,xmm3               ; xmm3=tmp5
        paddw   xmm2,xmm7               ; xmm2=z3
        paddw   xmm6,xmm5               ; xmm6=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);

        movdqa    xmm4,xmm2
        movdqa    xmm1,xmm2
        punpcklwd xmm4,xmm6
        punpckhwd xmm1,xmm6
        movdqa    xmm2,xmm4
        movdqa    xmm6,xmm1
        pmaddwd   xmm4,[GOTOFF(ebx,PW_MF078_F117)]      ; xmm4=z3L
        pmaddwd   xmm1,[GOTOFF(ebx,PW_MF078_F117)]      ; xmm1=z3H
        pmaddwd   xmm2,[GOTOFF(ebx,PW_F117_F078)]       ; xmm2=z4L
        pmaddwd   xmm6,[GOTOFF(ebx,PW_F117_F078)]       ; xmm6=z4H

        movdqa  XMMWORD [wk(0)], xmm4   ; wk(0)=z3L
        movdqa  XMMWORD [wk(1)], xmm1   ; 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;

        movdqa    xmm4,xmm0
        movdqa    xmm1,xmm0
        punpcklwd xmm4,xmm5
        punpckhwd xmm1,xmm5
        movdqa    xmm0,xmm4
        movdqa    xmm5,xmm1
        pmaddwd   xmm4,[GOTOFF(ebx,PW_MF060_MF089)]     ; xmm4=tmp4L
        pmaddwd   xmm1,[GOTOFF(ebx,PW_MF060_MF089)]     ; xmm1=tmp4H
        pmaddwd   xmm0,[GOTOFF(ebx,PW_MF089_F060)]      ; xmm0=tmp7L
        pmaddwd   xmm5,[GOTOFF(ebx,PW_MF089_F060)]      ; xmm5=tmp7H

        paddd   xmm4, XMMWORD [wk(0)]   ; xmm4=data7L
        paddd   xmm1, XMMWORD [wk(1)]   ; xmm1=data7H
        paddd   xmm0,xmm2               ; xmm0=data1L
        paddd   xmm5,xmm6               ; xmm5=data1H

        paddd   xmm4,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   xmm1,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   xmm4,DESCALE_P2
        psrad   xmm1,DESCALE_P2
        paddd   xmm0,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   xmm5,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   xmm0,DESCALE_P2
        psrad   xmm5,DESCALE_P2

        packssdw  xmm4,xmm1             ; xmm4=data7
        packssdw  xmm0,xmm5             ; xmm0=data1

        movdqa  XMMWORD [XMMBLOCK(7,0,edx,SIZEOF_DCTELEM)], xmm4
        movdqa  XMMWORD [XMMBLOCK(1,0,edx,SIZEOF_DCTELEM)], xmm0

        movdqa    xmm1,xmm3
        movdqa    xmm5,xmm3
        punpcklwd xmm1,xmm7
        punpckhwd xmm5,xmm7
        movdqa    xmm3,xmm1
        movdqa    xmm7,xmm5
        pmaddwd   xmm1,[GOTOFF(ebx,PW_MF050_MF256)]     ; xmm1=tmp5L
        pmaddwd   xmm5,[GOTOFF(ebx,PW_MF050_MF256)]     ; xmm5=tmp5H
        pmaddwd   xmm3,[GOTOFF(ebx,PW_MF256_F050)]      ; xmm3=tmp6L
        pmaddwd   xmm7,[GOTOFF(ebx,PW_MF256_F050)]      ; xmm7=tmp6H

        paddd   xmm1,xmm2               ; xmm1=data5L
        paddd   xmm5,xmm6               ; xmm5=data5H
        paddd   xmm3, XMMWORD [wk(0)]   ; xmm3=data3L
        paddd   xmm7, XMMWORD [wk(1)]   ; xmm7=data3H

        paddd   xmm1,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   xmm5,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   xmm1,DESCALE_P2
        psrad   xmm5,DESCALE_P2
        paddd   xmm3,[GOTOFF(ebx,PD_DESCALE_P2)]
        paddd   xmm7,[GOTOFF(ebx,PD_DESCALE_P2)]
        psrad   xmm3,DESCALE_P2
        psrad   xmm7,DESCALE_P2

        packssdw  xmm1,xmm5             ; xmm1=data5
        packssdw  xmm3,xmm7             ; xmm3=data3

        movdqa  XMMWORD [XMMBLOCK(5,0,edx,SIZEOF_DCTELEM)], xmm1
        movdqa  XMMWORD [XMMBLOCK(3,0,edx,SIZEOF_DCTELEM)], xmm3

;       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
