;
; jidctint.asm - accurate integer IDCT (MMX)
;
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
;
; Based on the 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
