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

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

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

%macro  unpcklps2 2     ; %1=(0 1 2 3) / %2=(4 5 6 7) => %1=(0 1 4 5)
        shufps  %1,%2,0x44
%endmacro

%macro  unpckhps2 2     ; %1=(0 1 2 3) / %2=(4 5 6 7) => %1=(2 3 6 7)
        shufps  %1,%2,0xEE
%endmacro

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

        alignz  16
        global  EXTN(jconst_idct_float_sse) PRIVATE

EXTN(jconst_idct_float_sse):

PD_1_414        times 4 dd  1.414213562373095048801689
PD_1_847        times 4 dd  1.847759065022573512256366
PD_1_082        times 4 dd  1.082392200292393968799446
PD_M2_613       times 4 dd -2.613125929752753055713286
PD_0_125        times 4 dd  0.125       ; 1/8
PB_CENTERJSAMP  times 8 db  CENTERJSAMPLE

        alignz  16

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

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

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

        align   16
        global  EXTN(jsimd_idct_float_sse) PRIVATE

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

        get_GOT ebx             ; get GOT address

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

;       mov     eax, [original_ebp]
        mov     edx, POINTER [dct_table(eax)]           ; quantptr
        mov     esi, JCOEFPTR [coef_block(eax)]         ; inptr
        lea     edi, [workspace]                        ; FAST_FLOAT *wsptr
        mov     ecx, DCTSIZE/4                          ; ctr
        alignx  16,7
.columnloop:
%ifndef NO_ZERO_COLUMN_TEST_FLOAT_SSE
        mov     eax, DWORD [DWBLOCK(1,0,esi,SIZEOF_JCOEF)]
        or      eax, DWORD [DWBLOCK(2,0,esi,SIZEOF_JCOEF)]
        jnz     near .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)]

        punpckhwd mm1,mm0                       ; mm1=(** 02 ** 03)
        punpcklwd mm0,mm0                       ; mm0=(00 00 01 01)
        psrad     mm1,(DWORD_BIT-WORD_BIT)      ; mm1=in0H=(02 03)
        psrad     mm0,(DWORD_BIT-WORD_BIT)      ; mm0=in0L=(00 01)
        cvtpi2ps  xmm3,mm1                      ; xmm3=(02 03 ** **)
        cvtpi2ps  xmm0,mm0                      ; xmm0=(00 01 ** **)
        movlhps   xmm0,xmm3                     ; xmm0=in0=(00 01 02 03)

        mulps   xmm0, XMMWORD [XMMBLOCK(0,0,edx,SIZEOF_FLOAT_MULT_TYPE)]

        movaps  xmm1,xmm0
        movaps  xmm2,xmm0
        movaps  xmm3,xmm0

        shufps  xmm0,xmm0,0x00                  ; xmm0=(00 00 00 00)
        shufps  xmm1,xmm1,0x55                  ; xmm1=(01 01 01 01)
        shufps  xmm2,xmm2,0xAA                  ; xmm2=(02 02 02 02)
        shufps  xmm3,xmm3,0xFF                  ; xmm3=(03 03 03 03)

        movaps  XMMWORD [XMMBLOCK(0,0,edi,SIZEOF_FAST_FLOAT)], xmm0
        movaps  XMMWORD [XMMBLOCK(0,1,edi,SIZEOF_FAST_FLOAT)], xmm0
        movaps  XMMWORD [XMMBLOCK(1,0,edi,SIZEOF_FAST_FLOAT)], xmm1
        movaps  XMMWORD [XMMBLOCK(1,1,edi,SIZEOF_FAST_FLOAT)], xmm1
        movaps  XMMWORD [XMMBLOCK(2,0,edi,SIZEOF_FAST_FLOAT)], xmm2
        movaps  XMMWORD [XMMBLOCK(2,1,edi,SIZEOF_FAST_FLOAT)], xmm2
        movaps  XMMWORD [XMMBLOCK(3,0,edi,SIZEOF_FAST_FLOAT)], xmm3
        movaps  XMMWORD [XMMBLOCK(3,1,edi,SIZEOF_FAST_FLOAT)], xmm3
        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)]
        movq      mm2, MMWORD [MMBLOCK(4,0,esi,SIZEOF_JCOEF)]
        movq      mm3, MMWORD [MMBLOCK(6,0,esi,SIZEOF_JCOEF)]

        punpckhwd mm4,mm0                       ; mm4=(** 02 ** 03)
        punpcklwd mm0,mm0                       ; mm0=(00 00 01 01)
        punpckhwd mm5,mm1                       ; mm5=(** 22 ** 23)
        punpcklwd mm1,mm1                       ; mm1=(20 20 21 21)

        psrad     mm4,(DWORD_BIT-WORD_BIT)      ; mm4=in0H=(02 03)
        psrad     mm0,(DWORD_BIT-WORD_BIT)      ; mm0=in0L=(00 01)
        cvtpi2ps  xmm4,mm4                      ; xmm4=(02 03 ** **)
        cvtpi2ps  xmm0,mm0                      ; xmm0=(00 01 ** **)
        psrad     mm5,(DWORD_BIT-WORD_BIT)      ; mm5=in2H=(22 23)
        psrad     mm1,(DWORD_BIT-WORD_BIT)      ; mm1=in2L=(20 21)
        cvtpi2ps  xmm5,mm5                      ; xmm5=(22 23 ** **)
        cvtpi2ps  xmm1,mm1                      ; xmm1=(20 21 ** **)

        punpckhwd mm6,mm2                       ; mm6=(** 42 ** 43)
        punpcklwd mm2,mm2                       ; mm2=(40 40 41 41)
        punpckhwd mm7,mm3                       ; mm7=(** 62 ** 63)
        punpcklwd mm3,mm3                       ; mm3=(60 60 61 61)

        psrad     mm6,(DWORD_BIT-WORD_BIT)      ; mm6=in4H=(42 43)
        psrad     mm2,(DWORD_BIT-WORD_BIT)      ; mm2=in4L=(40 41)
        cvtpi2ps  xmm6,mm6                      ; xmm6=(42 43 ** **)
        cvtpi2ps  xmm2,mm2                      ; xmm2=(40 41 ** **)
        psrad     mm7,(DWORD_BIT-WORD_BIT)      ; mm7=in6H=(62 63)
        psrad     mm3,(DWORD_BIT-WORD_BIT)      ; mm3=in6L=(60 61)
        cvtpi2ps  xmm7,mm7                      ; xmm7=(62 63 ** **)
        cvtpi2ps  xmm3,mm3                      ; xmm3=(60 61 ** **)

        movlhps   xmm0,xmm4                     ; xmm0=in0=(00 01 02 03)
        movlhps   xmm1,xmm5                     ; xmm1=in2=(20 21 22 23)
        mulps     xmm0, XMMWORD [XMMBLOCK(0,0,edx,SIZEOF_FLOAT_MULT_TYPE)]
        mulps     xmm1, XMMWORD [XMMBLOCK(2,0,edx,SIZEOF_FLOAT_MULT_TYPE)]

        movlhps   xmm2,xmm6                     ; xmm2=in4=(40 41 42 43)
        movlhps   xmm3,xmm7                     ; xmm3=in6=(60 61 62 63)
        mulps     xmm2, XMMWORD [XMMBLOCK(4,0,edx,SIZEOF_FLOAT_MULT_TYPE)]
        mulps     xmm3, XMMWORD [XMMBLOCK(6,0,edx,SIZEOF_FLOAT_MULT_TYPE)]

        movaps  xmm4,xmm0
        movaps  xmm5,xmm1
        subps   xmm0,xmm2               ; xmm0=tmp11
        subps   xmm1,xmm3
        addps   xmm4,xmm2               ; xmm4=tmp10
        addps   xmm5,xmm3               ; xmm5=tmp13

        mulps   xmm1,[GOTOFF(ebx,PD_1_414)]
        subps   xmm1,xmm5               ; xmm1=tmp12

        movaps  xmm6,xmm4
        movaps  xmm7,xmm0
        subps   xmm4,xmm5               ; xmm4=tmp3
        subps   xmm0,xmm1               ; xmm0=tmp2
        addps   xmm6,xmm5               ; xmm6=tmp0
        addps   xmm7,xmm1               ; xmm7=tmp1

        movaps  XMMWORD [wk(1)], xmm4   ; tmp3
        movaps  XMMWORD [wk(0)], xmm0   ; tmp2

        ; -- Odd part

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

        punpckhwd mm6,mm4                       ; mm6=(** 12 ** 13)
        punpcklwd mm4,mm4                       ; mm4=(10 10 11 11)
        punpckhwd mm2,mm0                       ; mm2=(** 32 ** 33)
        punpcklwd mm0,mm0                       ; mm0=(30 30 31 31)

        psrad     mm6,(DWORD_BIT-WORD_BIT)      ; mm6=in1H=(12 13)
        psrad     mm4,(DWORD_BIT-WORD_BIT)      ; mm4=in1L=(10 11)
        cvtpi2ps  xmm4,mm6                      ; xmm4=(12 13 ** **)
        cvtpi2ps  xmm2,mm4                      ; xmm2=(10 11 ** **)
        psrad     mm2,(DWORD_BIT-WORD_BIT)      ; mm2=in3H=(32 33)
        psrad     mm0,(DWORD_BIT-WORD_BIT)      ; mm0=in3L=(30 31)
        cvtpi2ps  xmm0,mm2                      ; xmm0=(32 33 ** **)
        cvtpi2ps  xmm3,mm0                      ; xmm3=(30 31 ** **)

        punpckhwd mm7,mm5                       ; mm7=(** 52 ** 53)
        punpcklwd mm5,mm5                       ; mm5=(50 50 51 51)
        punpckhwd mm3,mm1                       ; mm3=(** 72 ** 73)
        punpcklwd mm1,mm1                       ; mm1=(70 70 71 71)

        movlhps   xmm2,xmm4                     ; xmm2=in1=(10 11 12 13)
        movlhps   xmm3,xmm0                     ; xmm3=in3=(30 31 32 33)

        psrad     mm7,(DWORD_BIT-WORD_BIT)      ; mm7=in5H=(52 53)
        psrad     mm5,(DWORD_BIT-WORD_BIT)      ; mm5=in5L=(50 51)
        cvtpi2ps  xmm4,mm7                      ; xmm4=(52 53 ** **)
        cvtpi2ps  xmm5,mm5                      ; xmm5=(50 51 ** **)
        psrad     mm3,(DWORD_BIT-WORD_BIT)      ; mm3=in7H=(72 73)
        psrad     mm1,(DWORD_BIT-WORD_BIT)      ; mm1=in7L=(70 71)
        cvtpi2ps  xmm0,mm3                      ; xmm0=(72 73 ** **)
        cvtpi2ps  xmm1,mm1                      ; xmm1=(70 71 ** **)

        mulps     xmm2, XMMWORD [XMMBLOCK(1,0,edx,SIZEOF_FLOAT_MULT_TYPE)]
        mulps     xmm3, XMMWORD [XMMBLOCK(3,0,edx,SIZEOF_FLOAT_MULT_TYPE)]

        movlhps   xmm5,xmm4                     ; xmm5=in5=(50 51 52 53)
        movlhps   xmm1,xmm0                     ; xmm1=in7=(70 71 72 73)
        mulps     xmm5, XMMWORD [XMMBLOCK(5,0,edx,SIZEOF_FLOAT_MULT_TYPE)]
        mulps     xmm1, XMMWORD [XMMBLOCK(7,0,edx,SIZEOF_FLOAT_MULT_TYPE)]

        movaps  xmm4,xmm2
        movaps  xmm0,xmm5
        addps   xmm2,xmm1               ; xmm2=z11
        addps   xmm5,xmm3               ; xmm5=z13
        subps   xmm4,xmm1               ; xmm4=z12
        subps   xmm0,xmm3               ; xmm0=z10

        movaps  xmm1,xmm2
        subps   xmm2,xmm5
        addps   xmm1,xmm5               ; xmm1=tmp7

        mulps   xmm2,[GOTOFF(ebx,PD_1_414)]     ; xmm2=tmp11

        movaps  xmm3,xmm0
        addps   xmm0,xmm4
        mulps   xmm0,[GOTOFF(ebx,PD_1_847)]     ; xmm0=z5
        mulps   xmm3,[GOTOFF(ebx,PD_M2_613)]    ; xmm3=(z10 * -2.613125930)
        mulps   xmm4,[GOTOFF(ebx,PD_1_082)]     ; xmm4=(z12 * 1.082392200)
        addps   xmm3,xmm0               ; xmm3=tmp12
        subps   xmm4,xmm0               ; xmm4=tmp10

        ; -- Final output stage

        subps   xmm3,xmm1               ; xmm3=tmp6
        movaps  xmm5,xmm6
        movaps  xmm0,xmm7
        addps   xmm6,xmm1               ; xmm6=data0=(00 01 02 03)
        addps   xmm7,xmm3               ; xmm7=data1=(10 11 12 13)
        subps   xmm5,xmm1               ; xmm5=data7=(70 71 72 73)
        subps   xmm0,xmm3               ; xmm0=data6=(60 61 62 63)
        subps   xmm2,xmm3               ; xmm2=tmp5

        movaps    xmm1,xmm6             ; transpose coefficients(phase 1)
        unpcklps  xmm6,xmm7             ; xmm6=(00 10 01 11)
        unpckhps  xmm1,xmm7             ; xmm1=(02 12 03 13)
        movaps    xmm3,xmm0             ; transpose coefficients(phase 1)
        unpcklps  xmm0,xmm5             ; xmm0=(60 70 61 71)
        unpckhps  xmm3,xmm5             ; xmm3=(62 72 63 73)

        movaps  xmm7, XMMWORD [wk(0)]   ; xmm7=tmp2
        movaps  xmm5, XMMWORD [wk(1)]   ; xmm5=tmp3

        movaps  XMMWORD [wk(0)], xmm0   ; wk(0)=(60 70 61 71)
        movaps  XMMWORD [wk(1)], xmm3   ; wk(1)=(62 72 63 73)

        addps   xmm4,xmm2               ; xmm4=tmp4
        movaps  xmm0,xmm7
        movaps  xmm3,xmm5
        addps   xmm7,xmm2               ; xmm7=data2=(20 21 22 23)
        addps   xmm5,xmm4               ; xmm5=data4=(40 41 42 43)
        subps   xmm0,xmm2               ; xmm0=data5=(50 51 52 53)
        subps   xmm3,xmm4               ; xmm3=data3=(30 31 32 33)

        movaps    xmm2,xmm7             ; transpose coefficients(phase 1)
        unpcklps  xmm7,xmm3             ; xmm7=(20 30 21 31)
        unpckhps  xmm2,xmm3             ; xmm2=(22 32 23 33)
        movaps    xmm4,xmm5             ; transpose coefficients(phase 1)
        unpcklps  xmm5,xmm0             ; xmm5=(40 50 41 51)
        unpckhps  xmm4,xmm0             ; xmm4=(42 52 43 53)

        movaps    xmm3,xmm6             ; transpose coefficients(phase 2)
        unpcklps2 xmm6,xmm7             ; xmm6=(00 10 20 30)
        unpckhps2 xmm3,xmm7             ; xmm3=(01 11 21 31)
        movaps    xmm0,xmm1             ; transpose coefficients(phase 2)
        unpcklps2 xmm1,xmm2             ; xmm1=(02 12 22 32)
        unpckhps2 xmm0,xmm2             ; xmm0=(03 13 23 33)

        movaps  xmm7, XMMWORD [wk(0)]   ; xmm7=(60 70 61 71)
        movaps  xmm2, XMMWORD [wk(1)]   ; xmm2=(62 72 63 73)

        movaps  XMMWORD [XMMBLOCK(0,0,edi,SIZEOF_FAST_FLOAT)], xmm6
        movaps  XMMWORD [XMMBLOCK(1,0,edi,SIZEOF_FAST_FLOAT)], xmm3
        movaps  XMMWORD [XMMBLOCK(2,0,edi,SIZEOF_FAST_FLOAT)], xmm1
        movaps  XMMWORD [XMMBLOCK(3,0,edi,SIZEOF_FAST_FLOAT)], xmm0

        movaps    xmm6,xmm5             ; transpose coefficients(phase 2)
        unpcklps2 xmm5,xmm7             ; xmm5=(40 50 60 70)
        unpckhps2 xmm6,xmm7             ; xmm6=(41 51 61 71)
        movaps    xmm3,xmm4             ; transpose coefficients(phase 2)
        unpcklps2 xmm4,xmm2             ; xmm4=(42 52 62 72)
        unpckhps2 xmm3,xmm2             ; xmm3=(43 53 63 73)

        movaps  XMMWORD [XMMBLOCK(0,1,edi,SIZEOF_FAST_FLOAT)], xmm5
        movaps  XMMWORD [XMMBLOCK(1,1,edi,SIZEOF_FAST_FLOAT)], xmm6
        movaps  XMMWORD [XMMBLOCK(2,1,edi,SIZEOF_FAST_FLOAT)], xmm4
        movaps  XMMWORD [XMMBLOCK(3,1,edi,SIZEOF_FAST_FLOAT)], xmm3

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

        ; -- Prefetch the next coefficient block

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

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

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

        ; -- Even part

        movaps  xmm0, XMMWORD [XMMBLOCK(0,0,esi,SIZEOF_FAST_FLOAT)]
        movaps  xmm1, XMMWORD [XMMBLOCK(2,0,esi,SIZEOF_FAST_FLOAT)]
        movaps  xmm2, XMMWORD [XMMBLOCK(4,0,esi,SIZEOF_FAST_FLOAT)]
        movaps  xmm3, XMMWORD [XMMBLOCK(6,0,esi,SIZEOF_FAST_FLOAT)]

        movaps  xmm4,xmm0
        movaps  xmm5,xmm1
        subps   xmm0,xmm2               ; xmm0=tmp11
        subps   xmm1,xmm3
        addps   xmm4,xmm2               ; xmm4=tmp10
        addps   xmm5,xmm3               ; xmm5=tmp13

        mulps   xmm1,[GOTOFF(ebx,PD_1_414)]
        subps   xmm1,xmm5               ; xmm1=tmp12

        movaps  xmm6,xmm4
        movaps  xmm7,xmm0
        subps   xmm4,xmm5               ; xmm4=tmp3
        subps   xmm0,xmm1               ; xmm0=tmp2
        addps   xmm6,xmm5               ; xmm6=tmp0
        addps   xmm7,xmm1               ; xmm7=tmp1

        movaps  XMMWORD [wk(1)], xmm4   ; tmp3
        movaps  XMMWORD [wk(0)], xmm0   ; tmp2

        ; -- Odd part

        movaps  xmm2, XMMWORD [XMMBLOCK(1,0,esi,SIZEOF_FAST_FLOAT)]
        movaps  xmm3, XMMWORD [XMMBLOCK(3,0,esi,SIZEOF_FAST_FLOAT)]
        movaps  xmm5, XMMWORD [XMMBLOCK(5,0,esi,SIZEOF_FAST_FLOAT)]
        movaps  xmm1, XMMWORD [XMMBLOCK(7,0,esi,SIZEOF_FAST_FLOAT)]

        movaps  xmm4,xmm2
        movaps  xmm0,xmm5
        addps   xmm2,xmm1               ; xmm2=z11
        addps   xmm5,xmm3               ; xmm5=z13
        subps   xmm4,xmm1               ; xmm4=z12
        subps   xmm0,xmm3               ; xmm0=z10

        movaps  xmm1,xmm2
        subps   xmm2,xmm5
        addps   xmm1,xmm5               ; xmm1=tmp7

        mulps   xmm2,[GOTOFF(ebx,PD_1_414)]     ; xmm2=tmp11

        movaps  xmm3,xmm0
        addps   xmm0,xmm4
        mulps   xmm0,[GOTOFF(ebx,PD_1_847)]     ; xmm0=z5
        mulps   xmm3,[GOTOFF(ebx,PD_M2_613)]    ; xmm3=(z10 * -2.613125930)
        mulps   xmm4,[GOTOFF(ebx,PD_1_082)]     ; xmm4=(z12 * 1.082392200)
        addps   xmm3,xmm0               ; xmm3=tmp12
        subps   xmm4,xmm0               ; xmm4=tmp10

        ; -- Final output stage

        subps   xmm3,xmm1               ; xmm3=tmp6
        movaps  xmm5,xmm6
        movaps  xmm0,xmm7
        addps   xmm6,xmm1               ; xmm6=data0=(00 10 20 30)
        addps   xmm7,xmm3               ; xmm7=data1=(01 11 21 31)
        subps   xmm5,xmm1               ; xmm5=data7=(07 17 27 37)
        subps   xmm0,xmm3               ; xmm0=data6=(06 16 26 36)
        subps   xmm2,xmm3               ; xmm2=tmp5

        movaps  xmm1,[GOTOFF(ebx,PD_0_125)]     ; xmm1=[PD_0_125]

        mulps   xmm6,xmm1               ; descale(1/8)
        mulps   xmm7,xmm1               ; descale(1/8)
        mulps   xmm5,xmm1               ; descale(1/8)
        mulps   xmm0,xmm1               ; descale(1/8)

        movhlps   xmm3,xmm6
        movhlps   xmm1,xmm7
        cvtps2pi  mm0,xmm6              ; round to int32, mm0=data0L=(00 10)
        cvtps2pi  mm1,xmm7              ; round to int32, mm1=data1L=(01 11)
        cvtps2pi  mm2,xmm3              ; round to int32, mm2=data0H=(20 30)
        cvtps2pi  mm3,xmm1              ; round to int32, mm3=data1H=(21 31)
        packssdw  mm0,mm2               ; mm0=data0=(00 10 20 30)
        packssdw  mm1,mm3               ; mm1=data1=(01 11 21 31)

        movhlps   xmm6,xmm5
        movhlps   xmm7,xmm0
        cvtps2pi  mm4,xmm5              ; round to int32, mm4=data7L=(07 17)
        cvtps2pi  mm5,xmm0              ; round to int32, mm5=data6L=(06 16)
        cvtps2pi  mm6,xmm6              ; round to int32, mm6=data7H=(27 37)
        cvtps2pi  mm7,xmm7              ; round to int32, mm7=data6H=(26 36)
        packssdw  mm4,mm6               ; mm4=data7=(07 17 27 37)
        packssdw  mm5,mm7               ; mm5=data6=(06 16 26 36)

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

        movaps  xmm3, XMMWORD [wk(0)]   ; xmm3=tmp2
        movaps  xmm1, XMMWORD [wk(1)]   ; xmm1=tmp3

        movaps  xmm6,[GOTOFF(ebx,PD_0_125)]     ; xmm6=[PD_0_125]

        addps   xmm4,xmm2               ; xmm4=tmp4
        movaps  xmm5,xmm3
        movaps  xmm0,xmm1
        addps   xmm3,xmm2               ; xmm3=data2=(02 12 22 32)
        addps   xmm1,xmm4               ; xmm1=data4=(04 14 24 34)
        subps   xmm5,xmm2               ; xmm5=data5=(05 15 25 35)
        subps   xmm0,xmm4               ; xmm0=data3=(03 13 23 33)

        mulps   xmm3,xmm6               ; descale(1/8)
        mulps   xmm1,xmm6               ; descale(1/8)
        mulps   xmm5,xmm6               ; descale(1/8)
        mulps   xmm0,xmm6               ; descale(1/8)

        movhlps   xmm7,xmm3
        movhlps   xmm2,xmm1
        cvtps2pi  mm2,xmm3              ; round to int32, mm2=data2L=(02 12)
        cvtps2pi  mm3,xmm1              ; round to int32, mm3=data4L=(04 14)
        cvtps2pi  mm6,xmm7              ; round to int32, mm6=data2H=(22 32)
        cvtps2pi  mm7,xmm2              ; round to int32, mm7=data4H=(24 34)
        packssdw  mm2,mm6               ; mm2=data2=(02 12 22 32)
        packssdw  mm3,mm7               ; mm3=data4=(04 14 24 34)

        movhlps   xmm4,xmm5
        movhlps   xmm6,xmm0
        cvtps2pi  mm5,xmm5              ; round to int32, mm5=data5L=(05 15)
        cvtps2pi  mm4,xmm0              ; round to int32, mm4=data3L=(03 13)
        cvtps2pi  mm6,xmm4              ; round to int32, mm6=data5H=(25 35)
        cvtps2pi  mm7,xmm6              ; round to int32, mm7=data3H=(23 33)
        packssdw  mm5,mm6               ; mm5=data5=(05 15 25 35)
        packssdw  mm4,mm7               ; mm4=data3=(03 13 23 33)

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

        packsswb  mm2,mm3               ; mm2=(02 12 22 32 04 14 24 34)
        packsswb  mm4,mm5               ; mm4=(03 13 23 33 05 15 25 35)

        paddb     mm0,mm6
        paddb     mm1,mm6
        paddb     mm2,mm6
        paddb     mm4,mm6

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

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

        movq      mm1,mm0               ; transpose coefficients(phase 3)
        punpckldq mm0,mm3               ; mm0=(00 01 02 03 04 05 06 07)
        punpckhdq mm1,mm3               ; mm1=(10 11 12 13 14 15 16 17)
        movq      mm4,mm5               ; transpose coefficients(phase 3)
        punpckldq mm5,mm6               ; mm5=(20 21 22 23 24 25 26 27)
        punpckhdq mm4,mm6               ; 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], mm1
        mov     edx, JSAMPROW [edi+2*SIZEOF_JSAMPROW]
        mov     ebx, JSAMPROW [edi+3*SIZEOF_JSAMPROW]
        movq    MMWORD [edx+eax*SIZEOF_JSAMPLE], mm5
        movq    MMWORD [ebx+eax*SIZEOF_JSAMPLE], mm4

        poppic  ebx                     ; restore GOT address

        add     esi, byte 4*SIZEOF_FAST_FLOAT   ; 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
