;
; jquant.asm - sample data conversion and quantization (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
;
; [TAB8]

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

; --------------------------------------------------------------------------
        SECTION SEG_TEXT
        BITS    32
;
; Load data into workspace, applying unsigned->signed conversion
;
; GLOBAL(void)
; jsimd_convsamp_mmx (JSAMPARRAY sample_data, JDIMENSION start_col,
;                     DCTELEM *workspace);
;

%define sample_data     ebp+8           ; JSAMPARRAY sample_data
%define start_col       ebp+12          ; JDIMENSION start_col
%define workspace       ebp+16          ; DCTELEM *workspace

        align   16
        global  EXTN(jsimd_convsamp_mmx)

EXTN(jsimd_convsamp_mmx):
        push    ebp
        mov     ebp,esp
        push    ebx
;       push    ecx             ; need not be preserved
;       push    edx             ; need not be preserved
        push    esi
        push    edi

        pxor    mm6,mm6                 ; mm6=(all 0's)
        pcmpeqw mm7,mm7
        psllw   mm7,7                   ; mm7={0xFF80 0xFF80 0xFF80 0xFF80}

        mov     esi, JSAMPARRAY [sample_data]   ; (JSAMPROW *)
        mov     eax, JDIMENSION [start_col]
        mov     edi, POINTER [workspace]        ; (DCTELEM *)
        mov     ecx, DCTSIZE/4
        alignx  16,7
.convloop:
        mov     ebx, JSAMPROW [esi+0*SIZEOF_JSAMPROW]   ; (JSAMPLE *)
        mov     edx, JSAMPROW [esi+1*SIZEOF_JSAMPROW]   ; (JSAMPLE *)

        movq    mm0, MMWORD [ebx+eax*SIZEOF_JSAMPLE]    ; mm0=(01234567)
        movq    mm1, MMWORD [edx+eax*SIZEOF_JSAMPLE]    ; mm1=(89ABCDEF)

        mov     ebx, JSAMPROW [esi+2*SIZEOF_JSAMPROW]   ; (JSAMPLE *)
        mov     edx, JSAMPROW [esi+3*SIZEOF_JSAMPROW]   ; (JSAMPLE *)

        movq    mm2, MMWORD [ebx+eax*SIZEOF_JSAMPLE]    ; mm2=(GHIJKLMN)
        movq    mm3, MMWORD [edx+eax*SIZEOF_JSAMPLE]    ; mm3=(OPQRSTUV)

        movq      mm4,mm0
        punpcklbw mm0,mm6               ; mm0=(0123)
        punpckhbw mm4,mm6               ; mm4=(4567)
        movq      mm5,mm1
        punpcklbw mm1,mm6               ; mm1=(89AB)
        punpckhbw mm5,mm6               ; mm5=(CDEF)

        paddw   mm0,mm7
        paddw   mm4,mm7
        paddw   mm1,mm7
        paddw   mm5,mm7

        movq    MMWORD [MMBLOCK(0,0,edi,SIZEOF_DCTELEM)], mm0
        movq    MMWORD [MMBLOCK(0,1,edi,SIZEOF_DCTELEM)], mm4
        movq    MMWORD [MMBLOCK(1,0,edi,SIZEOF_DCTELEM)], mm1
        movq    MMWORD [MMBLOCK(1,1,edi,SIZEOF_DCTELEM)], mm5

        movq      mm0,mm2
        punpcklbw mm2,mm6               ; mm2=(GHIJ)
        punpckhbw mm0,mm6               ; mm0=(KLMN)
        movq      mm4,mm3
        punpcklbw mm3,mm6               ; mm3=(OPQR)
        punpckhbw mm4,mm6               ; mm4=(STUV)

        paddw   mm2,mm7
        paddw   mm0,mm7
        paddw   mm3,mm7
        paddw   mm4,mm7

        movq    MMWORD [MMBLOCK(2,0,edi,SIZEOF_DCTELEM)], mm2
        movq    MMWORD [MMBLOCK(2,1,edi,SIZEOF_DCTELEM)], mm0
        movq    MMWORD [MMBLOCK(3,0,edi,SIZEOF_DCTELEM)], mm3
        movq    MMWORD [MMBLOCK(3,1,edi,SIZEOF_DCTELEM)], mm4

        add     esi, byte 4*SIZEOF_JSAMPROW
        add     edi, byte 4*DCTSIZE*SIZEOF_DCTELEM
        dec     ecx
        jnz     short .convloop

        emms            ; empty MMX state

        pop     edi
        pop     esi
;       pop     edx             ; need not be preserved
;       pop     ecx             ; need not be preserved
        pop     ebx
        pop     ebp
        ret

; --------------------------------------------------------------------------
;
; Quantize/descale the coefficients, and store into coef_block
;
; This implementation is based on an algorithm described in
;   "How to optimize for the Pentium family of microprocessors"
;   (http://www.agner.org/assem/).
;
; GLOBAL(void)
; jsimd_quantize_mmx (JCOEFPTR coef_block, DCTELEM *divisors,
;                     DCTELEM *workspace);
;

%define RECIPROCAL(m,n,b) MMBLOCK(DCTSIZE*0+(m),(n),(b),SIZEOF_DCTELEM)
%define CORRECTION(m,n,b) MMBLOCK(DCTSIZE*1+(m),(n),(b),SIZEOF_DCTELEM)
%define SCALE(m,n,b)      MMBLOCK(DCTSIZE*2+(m),(n),(b),SIZEOF_DCTELEM)
%define SHIFT(m,n,b)      MMBLOCK(DCTSIZE*3+(m),(n),(b),SIZEOF_DCTELEM)

%define coef_block      ebp+8           ; JCOEFPTR coef_block
%define divisors        ebp+12          ; DCTELEM *divisors
%define workspace       ebp+16          ; DCTELEM *workspace

        align   16
        global  EXTN(jsimd_quantize_mmx)

EXTN(jsimd_quantize_mmx):
        push    ebp
        mov     ebp,esp
;       push    ebx             ; unused
;       push    ecx             ; unused
;       push    edx             ; need not be preserved
        push    esi
        push    edi

        mov     esi, POINTER [workspace]
        mov     edx, POINTER [divisors]
        mov     edi, JCOEFPTR [coef_block]
        mov     ah, 2
        alignx  16,7
.quantloop1:
        mov     al, DCTSIZE2/8/2
        alignx  16,7
.quantloop2:
        movq    mm2, MMWORD [MMBLOCK(0,0,esi,SIZEOF_DCTELEM)]
        movq    mm3, MMWORD [MMBLOCK(0,1,esi,SIZEOF_DCTELEM)]

        movq    mm0,mm2
        movq    mm1,mm3

        psraw   mm2,(WORD_BIT-1)  ; -1 if value < 0, 0 otherwise
        psraw   mm3,(WORD_BIT-1)

        pxor    mm0,mm2   ; val = -val
        pxor    mm1,mm3
        psubw   mm0,mm2
        psubw   mm1,mm3

        ;
        ; MMX is an annoyingly crappy instruction set. It has two
        ; misfeatures that are causing problems here:
        ;
        ; - All multiplications are signed.
        ;
        ; - The second operand for the shifts is not treated as packed.
        ;
        ;
        ; We work around the first problem by implementing this algorithm:
        ;
        ; unsigned long unsigned_multiply(unsigned short x, unsigned short y)
        ; {
        ;   enum { SHORT_BIT = 16 };
        ;   signed short sx = (signed short) x;
        ;   signed short sy = (signed short) y;
        ;   signed long sz;
        ;
        ;   sz = (long) sx * (long) sy;     /* signed multiply */
        ;
        ;   if (sx < 0) sz += (long) sy << SHORT_BIT;
        ;   if (sy < 0) sz += (long) sx << SHORT_BIT;
        ;
        ;   return (unsigned long) sz;
        ; }
        ;
        ; (note that a negative sx adds _sy_ and vice versa)
        ;
        ; For the second problem, we replace the shift by a multiplication.
        ; Unfortunately that means we have to deal with the signed issue again.
        ;

        paddw   mm0, MMWORD [CORRECTION(0,0,edx)]   ; correction + roundfactor
        paddw   mm1, MMWORD [CORRECTION(0,1,edx)]

        movq    mm4,mm0   ; store current value for later
        movq    mm5,mm1
        pmulhw  mm0, MMWORD [RECIPROCAL(0,0,edx)]   ; reciprocal
        pmulhw  mm1, MMWORD [RECIPROCAL(0,1,edx)]
        paddw   mm0,mm4         ; reciprocal is always negative (MSB=1),
        paddw   mm1,mm5   ; so we always need to add the initial value
                        ; (input value is never negative as we
                        ; inverted it at the start of this routine)

        ; here it gets a bit tricky as both scale
        ; and mm0/mm1 can be negative
        movq    mm6, MMWORD [SCALE(0,0,edx)]    ; scale
        movq    mm7, MMWORD [SCALE(0,1,edx)]
        movq    mm4,mm0
        movq    mm5,mm1
        pmulhw  mm0,mm6
        pmulhw  mm1,mm7

        psraw   mm6,(WORD_BIT-1)    ; determine if scale is negative
        psraw   mm7,(WORD_BIT-1)

        pand    mm6,mm4             ; and add input if it is
        pand    mm7,mm5
        paddw   mm0,mm6
        paddw   mm1,mm7

        psraw   mm4,(WORD_BIT-1)    ; then check if negative input
        psraw   mm5,(WORD_BIT-1)

        pand    mm4, MMWORD [SCALE(0,0,edx)]    ; and add scale if it is
        pand    mm5, MMWORD [SCALE(0,1,edx)]
        paddw   mm0,mm4
        paddw   mm1,mm5

        pxor    mm0,mm2   ; val = -val
        pxor    mm1,mm3
        psubw   mm0,mm2
        psubw   mm1,mm3

        movq    MMWORD [MMBLOCK(0,0,edi,SIZEOF_DCTELEM)], mm0
        movq    MMWORD [MMBLOCK(0,1,edi,SIZEOF_DCTELEM)], mm1

        add     esi, byte 8*SIZEOF_DCTELEM
        add     edx, byte 8*SIZEOF_DCTELEM
        add     edi, byte 8*SIZEOF_JCOEF
        dec     al
        jnz     near .quantloop2
        dec     ah
        jnz     near .quantloop1        ; to avoid branch misprediction

        emms            ; empty MMX state

        pop     edi
        pop     esi
;       pop     edx             ; need not be preserved
;       pop     ecx             ; unused
;       pop     ebx             ; unused
        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
