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

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)

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
