;
; jcqntmmx.asm - sample data conversion and quantization (MMX)
;
; Copyright 2009 Pierre Ossman <ossman@cendio.se> for Cendio AB
;
; Based on
; x86 SIMD extension for IJG JPEG library
; Copyright (C) 1999-2006, MIYASAKA Masaru.
; For conditions of distribution and use, see copyright notice in jsimdext.inc
;
; This file should be assembled with NASM (Netwide Assembler),
; can *not* be assembled with Microsoft's MASM or any compatible
; assembler (including Borland's Turbo Assembler).
; NASM is available from http://nasm.sourceforge.net/ or
; http://sourceforge.net/project/showfiles.php?group_id=6208
;
; [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
