;
; jimmxint.asm - accurate integer IDCT (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
; inverse DCT (Discrete Cosine Transform). The following code is based
; directly on the IJG's original jidctint.c; see the jidctint.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+3)

%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_idct_islow_mmx)

EXTN(jconst_idct_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)
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_islow_mmx (void * dct_table, JCOEFPTR coef_block,
;                       JSAMPARRAY output_buf, JDIMENSION output_col)
;

%define dct_table(b)    (b)+8           ; jpeg_component_info * compptr
%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          12
%define workspace       wk(0)-DCTSIZE2*SIZEOF_JCOEF
                                        ; JCOEF workspace[DCTSIZE2]

        align   16
        global  EXTN(jsimd_idct_islow_mmx)

EXTN(jsimd_idct_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, [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]                        ; JCOEF * wsptr
        mov     ecx, DCTSIZE/4                          ; ctr
        alignx  16,7
.columnloop:
%ifndef NO_ZERO_COLUMN_TEST_ISLOW_MMX
        mov     eax, DWORD [DWBLOCK(1,0,esi,SIZEOF_JCOEF)]
        or      eax, DWORD [DWBLOCK(2,0,esi,SIZEOF_JCOEF)]
        jnz     short .columnDCT

        movq    mm0, MMWORD [MMBLOCK(1,0,esi,SIZEOF_JCOEF)]
        movq    mm1, MMWORD [MMBLOCK(2,0,esi,SIZEOF_JCOEF)]
        por     mm0, MMWORD [MMBLOCK(3,0,esi,SIZEOF_JCOEF)]
        por     mm1, MMWORD [MMBLOCK(4,0,esi,SIZEOF_JCOEF)]
        por     mm0, MMWORD [MMBLOCK(5,0,esi,SIZEOF_JCOEF)]
        por     mm1, MMWORD [MMBLOCK(6,0,esi,SIZEOF_JCOEF)]
        por     mm0, MMWORD [MMBLOCK(7,0,esi,SIZEOF_JCOEF)]
        por     mm1,mm0
        packsswb mm1,mm1
        movd    eax,mm1
        test    eax,eax
        jnz     short .columnDCT

        ; -- AC terms all zero

        movq    mm0, MMWORD [MMBLOCK(0,0,esi,SIZEOF_JCOEF)]
        pmullw  mm0, MMWORD [MMBLOCK(0,0,edx,SIZEOF_ISLOW_MULT_TYPE)]

        psllw   mm0,PASS1_BITS

        movq      mm2,mm0               ; mm0=in0=(00 01 02 03)
        punpcklwd mm0,mm0               ; mm0=(00 00 01 01)
        punpckhwd mm2,mm2               ; mm2=(02 02 03 03)

        movq      mm1,mm0
        punpckldq mm0,mm0               ; mm0=(00 00 00 00)
        punpckhdq mm1,mm1               ; mm1=(01 01 01 01)
        movq      mm3,mm2
        punpckldq mm2,mm2               ; mm2=(02 02 02 02)
        punpckhdq mm3,mm3               ; mm3=(03 03 03 03)

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

        ; -- Even part

        movq    mm0, MMWORD [MMBLOCK(0,0,esi,SIZEOF_JCOEF)]
        movq    mm1, MMWORD [MMBLOCK(2,0,esi,SIZEOF_JCOEF)]
        pmullw  mm0, MMWORD [MMBLOCK(0,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  mm1, MMWORD [MMBLOCK(2,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        movq    mm2, MMWORD [MMBLOCK(4,0,esi,SIZEOF_JCOEF)]
        movq    mm3, MMWORD [MMBLOCK(6,0,esi,SIZEOF_JCOEF)]
        pmullw  mm2, MMWORD [MMBLOCK(4,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  mm3, MMWORD [MMBLOCK(6,0,edx,SIZEOF_ISLOW_MULT_TYPE)]

        ; (Original)
        ; z1 = (z2 + z3) * 0.541196100;
        ; tmp2 = z1 + z3 * -1.847759065;
        ; tmp3 = z1 + z2 * 0.765366865;
        ;
        ; (This implementation)
        ; tmp2 = z2 * 0.541196100 + z3 * (0.541196100 - 1.847759065);
        ; tmp3 = z2 * (0.541196100 + 0.765366865) + z3 * 0.541196100;

        movq      mm4,mm1               ; mm1=in2=z2
        movq      mm5,mm1
        punpcklwd mm4,mm3               ; mm3=in6=z3
        punpckhwd mm5,mm3
        movq      mm1,mm4
        movq      mm3,mm5
        pmaddwd   mm4,[GOTOFF(ebx,PW_F130_F054)]        ; mm4=tmp3L
        pmaddwd   mm5,[GOTOFF(ebx,PW_F130_F054)]        ; mm5=tmp3H
        pmaddwd   mm1,[GOTOFF(ebx,PW_F054_MF130)]       ; mm1=tmp2L
        pmaddwd   mm3,[GOTOFF(ebx,PW_F054_MF130)]       ; mm3=tmp2H

        movq      mm6,mm0
        paddw     mm0,mm2               ; mm0=in0+in4
        psubw     mm6,mm2               ; mm6=in0-in4

        pxor      mm7,mm7
        pxor      mm2,mm2
        punpcklwd mm7,mm0               ; mm7=tmp0L
        punpckhwd mm2,mm0               ; mm2=tmp0H
        psrad     mm7,(16-CONST_BITS)   ; psrad mm7,16 & pslld mm7,CONST_BITS
        psrad     mm2,(16-CONST_BITS)   ; psrad mm2,16 & pslld mm2,CONST_BITS

        movq    mm0,mm7
        paddd   mm7,mm4                 ; mm7=tmp10L
        psubd   mm0,mm4                 ; mm0=tmp13L
        movq    mm4,mm2
        paddd   mm2,mm5                 ; mm2=tmp10H
        psubd   mm4,mm5                 ; mm4=tmp13H

        movq    MMWORD [wk(0)], mm7     ; wk(0)=tmp10L
        movq    MMWORD [wk(1)], mm2     ; wk(1)=tmp10H
        movq    MMWORD [wk(2)], mm0     ; wk(2)=tmp13L
        movq    MMWORD [wk(3)], mm4     ; wk(3)=tmp13H

        pxor      mm5,mm5
        pxor      mm7,mm7
        punpcklwd mm5,mm6               ; mm5=tmp1L
        punpckhwd mm7,mm6               ; mm7=tmp1H
        psrad     mm5,(16-CONST_BITS)   ; psrad mm5,16 & pslld mm5,CONST_BITS
        psrad     mm7,(16-CONST_BITS)   ; psrad mm7,16 & pslld mm7,CONST_BITS

        movq    mm2,mm5
        paddd   mm5,mm1                 ; mm5=tmp11L
        psubd   mm2,mm1                 ; mm2=tmp12L
        movq    mm0,mm7
        paddd   mm7,mm3                 ; mm7=tmp11H
        psubd   mm0,mm3                 ; mm0=tmp12H

        movq    MMWORD [wk(4)], mm5     ; wk(4)=tmp11L
        movq    MMWORD [wk(5)], mm7     ; wk(5)=tmp11H
        movq    MMWORD [wk(6)], mm2     ; wk(6)=tmp12L
        movq    MMWORD [wk(7)], mm0     ; wk(7)=tmp12H

        ; -- Odd part

        movq    mm4, MMWORD [MMBLOCK(1,0,esi,SIZEOF_JCOEF)]
        movq    mm6, MMWORD [MMBLOCK(3,0,esi,SIZEOF_JCOEF)]
        pmullw  mm4, MMWORD [MMBLOCK(1,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  mm6, MMWORD [MMBLOCK(3,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        movq    mm1, MMWORD [MMBLOCK(5,0,esi,SIZEOF_JCOEF)]
        movq    mm3, MMWORD [MMBLOCK(7,0,esi,SIZEOF_JCOEF)]
        pmullw  mm1, MMWORD [MMBLOCK(5,0,edx,SIZEOF_ISLOW_MULT_TYPE)]
        pmullw  mm3, MMWORD [MMBLOCK(7,0,edx,SIZEOF_ISLOW_MULT_TYPE)]

        movq    mm5,mm6
        movq    mm7,mm4
        paddw   mm5,mm3                 ; mm5=z3
        paddw   mm7,mm1                 ; mm7=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      mm2,mm5
        movq      mm0,mm5
        punpcklwd mm2,mm7
        punpckhwd mm0,mm7
        movq      mm5,mm2
        movq      mm7,mm0
        pmaddwd   mm2,[GOTOFF(ebx,PW_MF078_F117)]       ; mm2=z3L
        pmaddwd   mm0,[GOTOFF(ebx,PW_MF078_F117)]       ; mm0=z3H
        pmaddwd   mm5,[GOTOFF(ebx,PW_F117_F078)]        ; mm5=z4L
        pmaddwd   mm7,[GOTOFF(ebx,PW_F117_F078)]        ; mm7=z4H

        movq    MMWORD [wk(10)], mm2    ; wk(10)=z3L
        movq    MMWORD [wk(11)], mm0    ; wk(11)=z3H

        ; (Original)
        ; z1 = tmp0 + tmp3;  z2 = tmp1 + tmp2;
        ; tmp0 = tmp0 * 0.298631336;  tmp1 = tmp1 * 2.053119869;
        ; tmp2 = tmp2 * 3.072711026;  tmp3 = tmp3 * 1.501321110;
        ; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
        ; tmp0 += z1 + z3;  tmp1 += z2 + z4;
        ; tmp2 += z2 + z3;  tmp3 += z1 + z4;
        ;
        ; (This implementation)
        ; tmp0 = tmp0 * (0.298631336 - 0.899976223) + tmp3 * -0.899976223;
        ; tmp1 = tmp1 * (2.053119869 - 2.562915447) + tmp2 * -2.562915447;
        ; tmp2 = tmp1 * -2.562915447 + tmp2 * (3.072711026 - 2.562915447);
        ; tmp3 = tmp0 * -0.899976223 + tmp3 * (1.501321110 - 0.899976223);
        ; tmp0 += z3;  tmp1 += z4;
        ; tmp2 += z3;  tmp3 += z4;

        movq      mm2,mm3
        movq      mm0,mm3
        punpcklwd mm2,mm4
        punpckhwd mm0,mm4
        movq      mm3,mm2
        movq      mm4,mm0
        pmaddwd   mm2,[GOTOFF(ebx,PW_MF060_MF089)]      ; mm2=tmp0L
        pmaddwd   mm0,[GOTOFF(ebx,PW_MF060_MF089)]      ; mm0=tmp0H
        pmaddwd   mm3,[GOTOFF(ebx,PW_MF089_F060)]       ; mm3=tmp3L
        pmaddwd   mm4,[GOTOFF(ebx,PW_MF089_F060)]       ; mm4=tmp3H

        paddd   mm2, MMWORD [wk(10)]    ; mm2=tmp0L
        paddd   mm0, MMWORD [wk(11)]    ; mm0=tmp0H
        paddd   mm3,mm5                 ; mm3=tmp3L
        paddd   mm4,mm7                 ; mm4=tmp3H

        movq    MMWORD [wk(8)], mm2     ; wk(8)=tmp0L
        movq    MMWORD [wk(9)], mm0     ; wk(9)=tmp0H

        movq      mm2,mm1
        movq      mm0,mm1
        punpcklwd mm2,mm6
        punpckhwd mm0,mm6
        movq      mm1,mm2
        movq      mm6,mm0
        pmaddwd   mm2,[GOTOFF(ebx,PW_MF050_MF256)]      ; mm2=tmp1L
        pmaddwd   mm0,[GOTOFF(ebx,PW_MF050_MF256)]      ; mm0=tmp1H
        pmaddwd   mm1,[GOTOFF(ebx,PW_MF256_F050)]       ; mm1=tmp2L
        pmaddwd   mm6,[GOTOFF(ebx,PW_MF256_F050)]       ; mm6=tmp2H

        paddd   mm2,mm5                 ; mm2=tmp1L
        paddd   mm0,mm7                 ; mm0=tmp1H
        paddd   mm1, MMWORD [wk(10)]    ; mm1=tmp2L
        paddd   mm6, MMWORD [wk(11)]    ; mm6=tmp2H

        movq    MMWORD [wk(10)], mm2    ; wk(10)=tmp1L
        movq    MMWORD [wk(11)], mm0    ; wk(11)=tmp1H

        ; -- Final output stage

        movq    mm5, MMWORD [wk(0)]     ; mm5=tmp10L
        movq    mm7, MMWORD [wk(1)]     ; mm7=tmp10H

        movq    mm2,mm5
        movq    mm0,mm7
        paddd   mm5,mm3                 ; mm5=data0L
        paddd   mm7,mm4                 ; mm7=data0H
        psubd   mm2,mm3                 ; mm2=data7L
        psubd   mm0,mm4                 ; mm0=data7H

        movq    mm3,[GOTOFF(ebx,PD_DESCALE_P1)] ; mm3=[PD_DESCALE_P1]

        paddd   mm5,mm3
        paddd   mm7,mm3
        psrad   mm5,DESCALE_P1
        psrad   mm7,DESCALE_P1
        paddd   mm2,mm3
        paddd   mm0,mm3
        psrad   mm2,DESCALE_P1
        psrad   mm0,DESCALE_P1

        packssdw  mm5,mm7               ; mm5=data0=(00 01 02 03)
        packssdw  mm2,mm0               ; mm2=data7=(70 71 72 73)

        movq    mm4, MMWORD [wk(4)]     ; mm4=tmp11L
        movq    mm3, MMWORD [wk(5)]     ; mm3=tmp11H

        movq    mm7,mm4
        movq    mm0,mm3
        paddd   mm4,mm1                 ; mm4=data1L
        paddd   mm3,mm6                 ; mm3=data1H
        psubd   mm7,mm1                 ; mm7=data6L
        psubd   mm0,mm6                 ; mm0=data6H

        movq    mm1,[GOTOFF(ebx,PD_DESCALE_P1)] ; mm1=[PD_DESCALE_P1]

        paddd   mm4,mm1
        paddd   mm3,mm1
        psrad   mm4,DESCALE_P1
        psrad   mm3,DESCALE_P1
        paddd   mm7,mm1
        paddd   mm0,mm1
        psrad   mm7,DESCALE_P1
        psrad   mm0,DESCALE_P1

        packssdw  mm4,mm3               ; mm4=data1=(10 11 12 13)
        packssdw  mm7,mm0               ; mm7=data6=(60 61 62 63)

        movq      mm6,mm5               ; transpose coefficients(phase 1)
        punpcklwd mm5,mm4               ; mm5=(00 10 01 11)
        punpckhwd mm6,mm4               ; mm6=(02 12 03 13)
        movq      mm1,mm7               ; transpose coefficients(phase 1)
        punpcklwd mm7,mm2               ; mm7=(60 70 61 71)
        punpckhwd mm1,mm2               ; mm1=(62 72 63 73)

        movq    mm3, MMWORD [wk(6)]     ; mm3=tmp12L
        movq    mm0, MMWORD [wk(7)]     ; mm0=tmp12H
        movq    mm4, MMWORD [wk(10)]    ; mm4=tmp1L
        movq    mm2, MMWORD [wk(11)]    ; mm2=tmp1H

        movq    MMWORD [wk(0)], mm5     ; wk(0)=(00 10 01 11)
        movq    MMWORD [wk(1)], mm6     ; wk(1)=(02 12 03 13)
        movq    MMWORD [wk(4)], mm7     ; wk(4)=(60 70 61 71)
        movq    MMWORD [wk(5)], mm1     ; wk(5)=(62 72 63 73)

        movq    mm5,mm3
        movq    mm6,mm0
        paddd   mm3,mm4                 ; mm3=data2L
        paddd   mm0,mm2                 ; mm0=data2H
        psubd   mm5,mm4                 ; mm5=data5L
        psubd   mm6,mm2                 ; mm6=data5H

        movq    mm7,[GOTOFF(ebx,PD_DESCALE_P1)] ; mm7=[PD_DESCALE_P1]

        paddd   mm3,mm7
        paddd   mm0,mm7
        psrad   mm3,DESCALE_P1
        psrad   mm0,DESCALE_P1
        paddd   mm5,mm7
        paddd   mm6,mm7
        psrad   mm5,DESCALE_P1
        psrad   mm6,DESCALE_P1

        packssdw  mm3,mm0               ; mm3=data2=(20 21 22 23)
        packssdw  mm5,mm6               ; mm5=data5=(50 51 52 53)

        movq    mm1, MMWORD [wk(2)]     ; mm1=tmp13L
        movq    mm4, MMWORD [wk(3)]     ; mm4=tmp13H
        movq    mm2, MMWORD [wk(8)]     ; mm2=tmp0L
        movq    mm7, MMWORD [wk(9)]     ; mm7=tmp0H

        movq    mm0,mm1
        movq    mm6,mm4
        paddd   mm1,mm2                 ; mm1=data3L
        paddd   mm4,mm7                 ; mm4=data3H
        psubd   mm0,mm2                 ; mm0=data4L
        psubd   mm6,mm7                 ; mm6=data4H

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

        paddd   mm1,mm2
        paddd   mm4,mm2
        psrad   mm1,DESCALE_P1
        psrad   mm4,DESCALE_P1
        paddd   mm0,mm2
        paddd   mm6,mm2
        psrad   mm0,DESCALE_P1
        psrad   mm6,DESCALE_P1

        packssdw  mm1,mm4               ; mm1=data3=(30 31 32 33)
        packssdw  mm0,mm6               ; mm0=data4=(40 41 42 43)

        movq    mm7, MMWORD [wk(0)]     ; mm7=(00 10 01 11)
        movq    mm2, MMWORD [wk(1)]     ; mm2=(02 12 03 13)

        movq      mm4,mm3               ; transpose coefficients(phase 1)
        punpcklwd mm3,mm1               ; mm3=(20 30 21 31)
        punpckhwd mm4,mm1               ; mm4=(22 32 23 33)
        movq      mm6,mm0               ; transpose coefficients(phase 1)
        punpcklwd mm0,mm5               ; mm0=(40 50 41 51)
        punpckhwd mm6,mm5               ; mm6=(42 52 43 53)

        movq      mm1,mm7               ; transpose coefficients(phase 2)
        punpckldq mm7,mm3               ; mm7=(00 10 20 30)
        punpckhdq mm1,mm3               ; mm1=(01 11 21 31)
        movq      mm5,mm2               ; transpose coefficients(phase 2)
        punpckldq mm2,mm4               ; mm2=(02 12 22 32)
        punpckhdq mm5,mm4               ; mm5=(03 13 23 33)

        movq    mm3, MMWORD [wk(4)]     ; mm3=(60 70 61 71)
        movq    mm4, MMWORD [wk(5)]     ; mm4=(62 72 63 73)

        movq    MMWORD [MMBLOCK(0,0,edi,SIZEOF_JCOEF)], mm7
        movq    MMWORD [MMBLOCK(1,0,edi,SIZEOF_JCOEF)], mm1
        movq    MMWORD [MMBLOCK(2,0,edi,SIZEOF_JCOEF)], mm2
        movq    MMWORD [MMBLOCK(3,0,edi,SIZEOF_JCOEF)], mm5

        movq      mm7,mm0               ; transpose coefficients(phase 2)
        punpckldq mm0,mm3               ; mm0=(40 50 60 70)
        punpckhdq mm7,mm3               ; mm7=(41 51 61 71)
        movq      mm1,mm6               ; transpose coefficients(phase 2)
        punpckldq mm6,mm4               ; mm6=(42 52 62 72)
        punpckhdq mm1,mm4               ; mm1=(43 53 63 73)

        movq    MMWORD [MMBLOCK(0,1,edi,SIZEOF_JCOEF)], mm0
        movq    MMWORD [MMBLOCK(1,1,edi,SIZEOF_JCOEF)], mm7
        movq    MMWORD [MMBLOCK(2,1,edi,SIZEOF_JCOEF)], mm6
        movq    MMWORD [MMBLOCK(3,1,edi,SIZEOF_JCOEF)], mm1

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

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

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

        ; -- Even part

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

        ; (Original)
        ; z1 = (z2 + z3) * 0.541196100;
        ; tmp2 = z1 + z3 * -1.847759065;
        ; tmp3 = z1 + z2 * 0.765366865;
        ;
        ; (This implementation)
        ; tmp2 = z2 * 0.541196100 + z3 * (0.541196100 - 1.847759065);
        ; tmp3 = z2 * (0.541196100 + 0.765366865) + z3 * 0.541196100;

        movq      mm4,mm1               ; mm1=in2=z2
        movq      mm5,mm1
        punpcklwd mm4,mm3               ; mm3=in6=z3
        punpckhwd mm5,mm3
        movq      mm1,mm4
        movq      mm3,mm5
        pmaddwd   mm4,[GOTOFF(ebx,PW_F130_F054)]        ; mm4=tmp3L
        pmaddwd   mm5,[GOTOFF(ebx,PW_F130_F054)]        ; mm5=tmp3H
        pmaddwd   mm1,[GOTOFF(ebx,PW_F054_MF130)]       ; mm1=tmp2L
        pmaddwd   mm3,[GOTOFF(ebx,PW_F054_MF130)]       ; mm3=tmp2H

        movq      mm6,mm0
        paddw     mm0,mm2               ; mm0=in0+in4
        psubw     mm6,mm2               ; mm6=in0-in4

        pxor      mm7,mm7
        pxor      mm2,mm2
        punpcklwd mm7,mm0               ; mm7=tmp0L
        punpckhwd mm2,mm0               ; mm2=tmp0H
        psrad     mm7,(16-CONST_BITS)   ; psrad mm7,16 & pslld mm7,CONST_BITS
        psrad     mm2,(16-CONST_BITS)   ; psrad mm2,16 & pslld mm2,CONST_BITS

        movq    mm0,mm7
        paddd   mm7,mm4                 ; mm7=tmp10L
        psubd   mm0,mm4                 ; mm0=tmp13L
        movq    mm4,mm2
        paddd   mm2,mm5                 ; mm2=tmp10H
        psubd   mm4,mm5                 ; mm4=tmp13H

        movq    MMWORD [wk(0)], mm7     ; wk(0)=tmp10L
        movq    MMWORD [wk(1)], mm2     ; wk(1)=tmp10H
        movq    MMWORD [wk(2)], mm0     ; wk(2)=tmp13L
        movq    MMWORD [wk(3)], mm4     ; wk(3)=tmp13H

        pxor      mm5,mm5
        pxor      mm7,mm7
        punpcklwd mm5,mm6               ; mm5=tmp1L
        punpckhwd mm7,mm6               ; mm7=tmp1H
        psrad     mm5,(16-CONST_BITS)   ; psrad mm5,16 & pslld mm5,CONST_BITS
        psrad     mm7,(16-CONST_BITS)   ; psrad mm7,16 & pslld mm7,CONST_BITS

        movq    mm2,mm5
        paddd   mm5,mm1                 ; mm5=tmp11L
        psubd   mm2,mm1                 ; mm2=tmp12L
        movq    mm0,mm7
        paddd   mm7,mm3                 ; mm7=tmp11H
        psubd   mm0,mm3                 ; mm0=tmp12H

        movq    MMWORD [wk(4)], mm5     ; wk(4)=tmp11L
        movq    MMWORD [wk(5)], mm7     ; wk(5)=tmp11H
        movq    MMWORD [wk(6)], mm2     ; wk(6)=tmp12L
        movq    MMWORD [wk(7)], mm0     ; wk(7)=tmp12H

        ; -- Odd part

        movq    mm4, MMWORD [MMBLOCK(1,0,esi,SIZEOF_JCOEF)]
        movq    mm6, MMWORD [MMBLOCK(3,0,esi,SIZEOF_JCOEF)]
        movq    mm1, MMWORD [MMBLOCK(5,0,esi,SIZEOF_JCOEF)]
        movq    mm3, MMWORD [MMBLOCK(7,0,esi,SIZEOF_JCOEF)]

        movq    mm5,mm6
        movq    mm7,mm4
        paddw   mm5,mm3                 ; mm5=z3
        paddw   mm7,mm1                 ; mm7=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      mm2,mm5
        movq      mm0,mm5
        punpcklwd mm2,mm7
        punpckhwd mm0,mm7
        movq      mm5,mm2
        movq      mm7,mm0
        pmaddwd   mm2,[GOTOFF(ebx,PW_MF078_F117)]       ; mm2=z3L
        pmaddwd   mm0,[GOTOFF(ebx,PW_MF078_F117)]       ; mm0=z3H
        pmaddwd   mm5,[GOTOFF(ebx,PW_F117_F078)]        ; mm5=z4L
        pmaddwd   mm7,[GOTOFF(ebx,PW_F117_F078)]        ; mm7=z4H

        movq    MMWORD [wk(10)], mm2    ; wk(10)=z3L
        movq    MMWORD [wk(11)], mm0    ; wk(11)=z3H

        ; (Original)
        ; z1 = tmp0 + tmp3;  z2 = tmp1 + tmp2;
        ; tmp0 = tmp0 * 0.298631336;  tmp1 = tmp1 * 2.053119869;
        ; tmp2 = tmp2 * 3.072711026;  tmp3 = tmp3 * 1.501321110;
        ; z1 = z1 * -0.899976223;  z2 = z2 * -2.562915447;
        ; tmp0 += z1 + z3;  tmp1 += z2 + z4;
        ; tmp2 += z2 + z3;  tmp3 += z1 + z4;
        ;
        ; (This implementation)
        ; tmp0 = tmp0 * (0.298631336 - 0.899976223) + tmp3 * -0.899976223;
        ; tmp1 = tmp1 * (2.053119869 - 2.562915447) + tmp2 * -2.562915447;
        ; tmp2 = tmp1 * -2.562915447 + tmp2 * (3.072711026 - 2.562915447);
        ; tmp3 = tmp0 * -0.899976223 + tmp3 * (1.501321110 - 0.899976223);
        ; tmp0 += z3;  tmp1 += z4;
        ; tmp2 += z3;  tmp3 += z4;

        movq      mm2,mm3
        movq      mm0,mm3
        punpcklwd mm2,mm4
        punpckhwd mm0,mm4
        movq      mm3,mm2
        movq      mm4,mm0
        pmaddwd   mm2,[GOTOFF(ebx,PW_MF060_MF089)]      ; mm2=tmp0L
        pmaddwd   mm0,[GOTOFF(ebx,PW_MF060_MF089)]      ; mm0=tmp0H
        pmaddwd   mm3,[GOTOFF(ebx,PW_MF089_F060)]       ; mm3=tmp3L
        pmaddwd   mm4,[GOTOFF(ebx,PW_MF089_F060)]       ; mm4=tmp3H

        paddd   mm2, MMWORD [wk(10)]    ; mm2=tmp0L
        paddd   mm0, MMWORD [wk(11)]    ; mm0=tmp0H
        paddd   mm3,mm5                 ; mm3=tmp3L
        paddd   mm4,mm7                 ; mm4=tmp3H

        movq    MMWORD [wk(8)], mm2     ; wk(8)=tmp0L
        movq    MMWORD [wk(9)], mm0     ; wk(9)=tmp0H

        movq      mm2,mm1
        movq      mm0,mm1
        punpcklwd mm2,mm6
        punpckhwd mm0,mm6
        movq      mm1,mm2
        movq      mm6,mm0
        pmaddwd   mm2,[GOTOFF(ebx,PW_MF050_MF256)]      ; mm2=tmp1L
        pmaddwd   mm0,[GOTOFF(ebx,PW_MF050_MF256)]      ; mm0=tmp1H
        pmaddwd   mm1,[GOTOFF(ebx,PW_MF256_F050)]       ; mm1=tmp2L
        pmaddwd   mm6,[GOTOFF(ebx,PW_MF256_F050)]       ; mm6=tmp2H

        paddd   mm2,mm5                 ; mm2=tmp1L
        paddd   mm0,mm7                 ; mm0=tmp1H
        paddd   mm1, MMWORD [wk(10)]    ; mm1=tmp2L
        paddd   mm6, MMWORD [wk(11)]    ; mm6=tmp2H

        movq    MMWORD [wk(10)], mm2    ; wk(10)=tmp1L
        movq    MMWORD [wk(11)], mm0    ; wk(11)=tmp1H

        ; -- Final output stage

        movq    mm5, MMWORD [wk(0)]     ; mm5=tmp10L
        movq    mm7, MMWORD [wk(1)]     ; mm7=tmp10H

        movq    mm2,mm5
        movq    mm0,mm7
        paddd   mm5,mm3                 ; mm5=data0L
        paddd   mm7,mm4                 ; mm7=data0H
        psubd   mm2,mm3                 ; mm2=data7L
        psubd   mm0,mm4                 ; mm0=data7H

        movq    mm3,[GOTOFF(ebx,PD_DESCALE_P2)] ; mm3=[PD_DESCALE_P2]

        paddd   mm5,mm3
        paddd   mm7,mm3
        psrad   mm5,DESCALE_P2
        psrad   mm7,DESCALE_P2
        paddd   mm2,mm3
        paddd   mm0,mm3
        psrad   mm2,DESCALE_P2
        psrad   mm0,DESCALE_P2

        packssdw  mm5,mm7               ; mm5=data0=(00 10 20 30)
        packssdw  mm2,mm0               ; mm2=data7=(07 17 27 37)

        movq    mm4, MMWORD [wk(4)]     ; mm4=tmp11L
        movq    mm3, MMWORD [wk(5)]     ; mm3=tmp11H

        movq    mm7,mm4
        movq    mm0,mm3
        paddd   mm4,mm1                 ; mm4=data1L
        paddd   mm3,mm6                 ; mm3=data1H
        psubd   mm7,mm1                 ; mm7=data6L
        psubd   mm0,mm6                 ; mm0=data6H

        movq    mm1,[GOTOFF(ebx,PD_DESCALE_P2)] ; mm1=[PD_DESCALE_P2]

        paddd   mm4,mm1
        paddd   mm3,mm1
        psrad   mm4,DESCALE_P2
        psrad   mm3,DESCALE_P2
        paddd   mm7,mm1
        paddd   mm0,mm1
        psrad   mm7,DESCALE_P2
        psrad   mm0,DESCALE_P2

        packssdw  mm4,mm3               ; mm4=data1=(01 11 21 31)
        packssdw  mm7,mm0               ; mm7=data6=(06 16 26 36)

        packsswb  mm5,mm7               ; mm5=(00 10 20 30 06 16 26 36)
        packsswb  mm4,mm2               ; mm4=(01 11 21 31 07 17 27 37)

        movq    mm6, MMWORD [wk(6)]     ; mm6=tmp12L
        movq    mm1, MMWORD [wk(7)]     ; mm1=tmp12H
        movq    mm3, MMWORD [wk(10)]    ; mm3=tmp1L
        movq    mm0, MMWORD [wk(11)]    ; mm0=tmp1H

        movq    MMWORD [wk(0)], mm5     ; wk(0)=(00 10 20 30 06 16 26 36)
        movq    MMWORD [wk(1)], mm4     ; wk(1)=(01 11 21 31 07 17 27 37)

        movq    mm7,mm6
        movq    mm2,mm1
        paddd   mm6,mm3                 ; mm6=data2L
        paddd   mm1,mm0                 ; mm1=data2H
        psubd   mm7,mm3                 ; mm7=data5L
        psubd   mm2,mm0                 ; mm2=data5H

        movq    mm5,[GOTOFF(ebx,PD_DESCALE_P2)] ; mm5=[PD_DESCALE_P2]

        paddd   mm6,mm5
        paddd   mm1,mm5
        psrad   mm6,DESCALE_P2
        psrad   mm1,DESCALE_P2
        paddd   mm7,mm5
        paddd   mm2,mm5
        psrad   mm7,DESCALE_P2
        psrad   mm2,DESCALE_P2

        packssdw  mm6,mm1               ; mm6=data2=(02 12 22 32)
        packssdw  mm7,mm2               ; mm7=data5=(05 15 25 35)

        movq    mm4, MMWORD [wk(2)]     ; mm4=tmp13L
        movq    mm3, MMWORD [wk(3)]     ; mm3=tmp13H
        movq    mm0, MMWORD [wk(8)]     ; mm0=tmp0L
        movq    mm5, MMWORD [wk(9)]     ; mm5=tmp0H

        movq    mm1,mm4
        movq    mm2,mm3
        paddd   mm4,mm0                 ; mm4=data3L
        paddd   mm3,mm5                 ; mm3=data3H
        psubd   mm1,mm0                 ; mm1=data4L
        psubd   mm2,mm5                 ; mm2=data4H

        movq    mm0,[GOTOFF(ebx,PD_DESCALE_P2)] ; mm0=[PD_DESCALE_P2]

        paddd   mm4,mm0
        paddd   mm3,mm0
        psrad   mm4,DESCALE_P2
        psrad   mm3,DESCALE_P2
        paddd   mm1,mm0
        paddd   mm2,mm0
        psrad   mm1,DESCALE_P2
        psrad   mm2,DESCALE_P2

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

        packssdw  mm4,mm3               ; mm4=data3=(03 13 23 33)
        packssdw  mm1,mm2               ; mm1=data4=(04 14 24 34)

        movq      mm0, MMWORD [wk(0)]   ; mm0=(00 10 20 30 06 16 26 36)
        movq      mm3, MMWORD [wk(1)]   ; mm3=(01 11 21 31 07 17 27 37)

        packsswb  mm6,mm1               ; mm6=(02 12 22 32 04 14 24 34)
        packsswb  mm4,mm7               ; mm4=(03 13 23 33 05 15 25 35)

        paddb     mm0,mm5
        paddb     mm3,mm5
        paddb     mm6,mm5
        paddb     mm4,mm5

        movq      mm2,mm0               ; transpose coefficients(phase 1)
        punpcklbw mm0,mm3               ; mm0=(00 01 10 11 20 21 30 31)
        punpckhbw mm2,mm3               ; mm2=(06 07 16 17 26 27 36 37)
        movq      mm1,mm6               ; transpose coefficients(phase 1)
        punpcklbw mm6,mm4               ; mm6=(02 03 12 13 22 23 32 33)
        punpckhbw mm1,mm4               ; mm1=(04 05 14 15 24 25 34 35)

        movq      mm7,mm0               ; transpose coefficients(phase 2)
        punpcklwd mm0,mm6               ; mm0=(00 01 02 03 10 11 12 13)
        punpckhwd mm7,mm6               ; mm7=(20 21 22 23 30 31 32 33)
        movq      mm5,mm1               ; transpose coefficients(phase 2)
        punpcklwd mm1,mm2               ; mm1=(04 05 06 07 14 15 16 17)
        punpckhwd mm5,mm2               ; mm5=(24 25 26 27 34 35 36 37)

        movq      mm3,mm0               ; transpose coefficients(phase 3)
        punpckldq mm0,mm1               ; mm0=(00 01 02 03 04 05 06 07)
        punpckhdq mm3,mm1               ; mm3=(10 11 12 13 14 15 16 17)
        movq      mm4,mm7               ; transpose coefficients(phase 3)
        punpckldq mm7,mm5               ; mm7=(20 21 22 23 24 25 26 27)
        punpckhdq mm4,mm5               ; mm4=(30 31 32 33 34 35 36 37)

        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], mm0
        movq    MMWORD [ebx+eax*SIZEOF_JSAMPLE], mm3
        mov     edx, JSAMPROW [edi+2*SIZEOF_JSAMPROW]
        mov     ebx, JSAMPROW [edi+3*SIZEOF_JSAMPROW]
        movq    MMWORD [edx+eax*SIZEOF_JSAMPLE], mm7
        movq    MMWORD [ebx+eax*SIZEOF_JSAMPLE], mm4

        poppic  ebx                     ; restore GOT address

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

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