;
;  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
;
;  Use of this source code is governed by a BSD-style license
;  that can be found in the LICENSE file in the root of the source
;  tree. An additional intellectual property rights grant can be found
;  in the file PATENTS.  All contributing project authors may
;  be found in the AUTHORS file in the root of the source tree.
;


%include "vpx_ports/x86_abi_support.asm"

global sym(vp8_sad16x16_mmx)
global sym(vp8_sad8x16_mmx)
global sym(vp8_sad8x8_mmx)
global sym(vp8_sad4x4_mmx)
global sym(vp8_sad16x8_mmx)

;unsigned int vp8_sad16x16_mmx(
;    unsigned char *src_ptr,
;    int  src_stride,
;    unsigned char *ref_ptr,
;    int  ref_stride)
sym(vp8_sad16x16_mmx):
    push        rbp
    mov         rbp, rsp
    SHADOW_ARGS_TO_STACK 4
    push rsi
    push rdi
    ; end prolog

        mov             rsi,        arg(0) ;src_ptr
        mov             rdi,        arg(2) ;ref_ptr

        movsxd          rax,        dword ptr arg(1) ;src_stride
        movsxd          rdx,        dword ptr arg(3) ;ref_stride

        lea             rcx,        [rsi+rax*8]

        lea             rcx,        [rcx+rax*8]
        pxor            mm7,        mm7

        pxor            mm6,        mm6

x16x16sad_mmx_loop:

        movq            mm0,        QWORD PTR [rsi]
        movq            mm2,        QWORD PTR [rsi+8]

        movq            mm1,        QWORD PTR [rdi]
        movq            mm3,        QWORD PTR [rdi+8]

        movq            mm4,        mm0
        movq            mm5,        mm2

        psubusb         mm0,        mm1
        psubusb         mm1,        mm4

        psubusb         mm2,        mm3
        psubusb         mm3,        mm5

        por             mm0,        mm1
        por             mm2,        mm3

        movq            mm1,        mm0
        movq            mm3,        mm2

        punpcklbw       mm0,        mm6
        punpcklbw       mm2,        mm6

        punpckhbw       mm1,        mm6
        punpckhbw       mm3,        mm6

        paddw           mm0,        mm2
        paddw           mm1,        mm3


        lea             rsi,        [rsi+rax]
        add             rdi,        rdx

        paddw           mm7,        mm0
        paddw           mm7,        mm1

        cmp             rsi,        rcx
        jne             x16x16sad_mmx_loop


        movq            mm0,        mm7

        punpcklwd       mm0,        mm6
        punpckhwd       mm7,        mm6

        paddw           mm0,        mm7
        movq            mm7,        mm0


        psrlq           mm0,        32
        paddw           mm7,        mm0

        movq            rax,        mm7

    pop rdi
    pop rsi
    mov rsp, rbp
    ; begin epilog
    UNSHADOW_ARGS
    pop         rbp
    ret


;unsigned int vp8_sad8x16_mmx(
;    unsigned char *src_ptr,
;    int  src_stride,
;    unsigned char *ref_ptr,
;    int  ref_stride)
sym(vp8_sad8x16_mmx):
    push        rbp
    mov         rbp, rsp
    SHADOW_ARGS_TO_STACK 4
    push rsi
    push rdi
    ; end prolog

        mov             rsi,        arg(0) ;src_ptr
        mov             rdi,        arg(2) ;ref_ptr

        movsxd          rax,        dword ptr arg(1) ;src_stride
        movsxd          rdx,        dword ptr arg(3) ;ref_stride

        lea             rcx,        [rsi+rax*8]

        lea             rcx,        [rcx+rax*8]
        pxor            mm7,        mm7

        pxor            mm6,        mm6

x8x16sad_mmx_loop:

        movq            mm0,        QWORD PTR [rsi]
        movq            mm1,        QWORD PTR [rdi]

        movq            mm2,        mm0
        psubusb         mm0,        mm1

        psubusb         mm1,        mm2
        por             mm0,        mm1

        movq            mm2,        mm0
        punpcklbw       mm0,        mm6

        punpckhbw       mm2,        mm6
        lea             rsi,        [rsi+rax]

        add             rdi,        rdx
        paddw           mm7,        mm0

        paddw           mm7,        mm2
        cmp             rsi,        rcx

        jne             x8x16sad_mmx_loop

        movq            mm0,        mm7
        punpcklwd       mm0,        mm6

        punpckhwd       mm7,        mm6
        paddw           mm0,        mm7

        movq            mm7,        mm0
        psrlq           mm0,        32

        paddw           mm7,        mm0
        movq            rax,        mm7

    pop rdi
    pop rsi
    mov rsp, rbp
    ; begin epilog
    UNSHADOW_ARGS
    pop         rbp
    ret


;unsigned int vp8_sad8x8_mmx(
;    unsigned char *src_ptr,
;    int  src_stride,
;    unsigned char *ref_ptr,
;    int  ref_stride)
sym(vp8_sad8x8_mmx):
    push        rbp
    mov         rbp, rsp
    SHADOW_ARGS_TO_STACK 4
    push rsi
    push rdi
    ; end prolog

        mov             rsi,        arg(0) ;src_ptr
        mov             rdi,        arg(2) ;ref_ptr

        movsxd          rax,        dword ptr arg(1) ;src_stride
        movsxd          rdx,        dword ptr arg(3) ;ref_stride

        lea             rcx,        [rsi+rax*8]
        pxor            mm7,        mm7

        pxor            mm6,        mm6

x8x8sad_mmx_loop:

        movq            mm0,        QWORD PTR [rsi]
        movq            mm1,        QWORD PTR [rdi]

        movq            mm2,        mm0
        psubusb         mm0,        mm1

        psubusb         mm1,        mm2
        por             mm0,        mm1

        movq            mm2,        mm0
        punpcklbw       mm0,        mm6

        punpckhbw       mm2,        mm6
        paddw           mm0,        mm2

        lea             rsi,       [rsi+rax]
        add             rdi,        rdx

        paddw           mm7,       mm0
        cmp             rsi,        rcx

        jne             x8x8sad_mmx_loop

        movq            mm0,        mm7
        punpcklwd       mm0,        mm6

        punpckhwd       mm7,        mm6
        paddw           mm0,        mm7

        movq            mm7,        mm0
        psrlq           mm0,        32

        paddw           mm7,        mm0
        movq            rax,        mm7

    pop rdi
    pop rsi
    mov rsp, rbp
    ; begin epilog
    UNSHADOW_ARGS
    pop         rbp
    ret


;unsigned int vp8_sad4x4_mmx(
;    unsigned char *src_ptr,
;    int  src_stride,
;    unsigned char *ref_ptr,
;    int  ref_stride)
sym(vp8_sad4x4_mmx):
    push        rbp
    mov         rbp, rsp
    SHADOW_ARGS_TO_STACK 4
    push rsi
    push rdi
    ; end prolog

        mov             rsi,        arg(0) ;src_ptr
        mov             rdi,        arg(2) ;ref_ptr

        movsxd          rax,        dword ptr arg(1) ;src_stride
        movsxd          rdx,        dword ptr arg(3) ;ref_stride

        movd            mm0,        DWORD PTR [rsi]
        movd            mm1,        DWORD PTR [rdi]

        movd            mm2,        DWORD PTR [rsi+rax]
        movd            mm3,        DWORD PTR [rdi+rdx]

        punpcklbw       mm0,        mm2
        punpcklbw       mm1,        mm3

        movq            mm2,        mm0
        psubusb         mm0,        mm1

        psubusb         mm1,        mm2
        por             mm0,        mm1

        movq            mm2,        mm0
        pxor            mm3,        mm3

        punpcklbw       mm0,        mm3
        punpckhbw       mm2,        mm3

        paddw           mm0,        mm2

        lea             rsi,        [rsi+rax*2]
        lea             rdi,        [rdi+rdx*2]

        movd            mm4,        DWORD PTR [rsi]
        movd            mm5,        DWORD PTR [rdi]

        movd            mm6,        DWORD PTR [rsi+rax]
        movd            mm7,        DWORD PTR [rdi+rdx]

        punpcklbw       mm4,        mm6
        punpcklbw       mm5,        mm7

        movq            mm6,        mm4
        psubusb         mm4,        mm5

        psubusb         mm5,        mm6
        por             mm4,        mm5

        movq            mm5,        mm4
        punpcklbw       mm4,        mm3

        punpckhbw       mm5,        mm3
        paddw           mm4,        mm5

        paddw           mm0,        mm4
        movq            mm1,        mm0

        punpcklwd       mm0,        mm3
        punpckhwd       mm1,        mm3

        paddw           mm0,        mm1
        movq            mm1,        mm0

        psrlq           mm0,        32
        paddw           mm0,        mm1

        movq            rax,        mm0

    pop rdi
    pop rsi
    mov rsp, rbp
    ; begin epilog
    UNSHADOW_ARGS
    pop         rbp
    ret


;unsigned int vp8_sad16x8_mmx(
;    unsigned char *src_ptr,
;    int  src_stride,
;    unsigned char *ref_ptr,
;    int  ref_stride)
sym(vp8_sad16x8_mmx):
    push        rbp
    mov         rbp, rsp
    SHADOW_ARGS_TO_STACK 4
    push rsi
    push rdi
    ; end prolog

        mov             rsi,        arg(0) ;src_ptr
        mov             rdi,        arg(2) ;ref_ptr

        movsxd          rax,        dword ptr arg(1) ;src_stride
        movsxd          rdx,        dword ptr arg(3) ;ref_stride

        lea             rcx,        [rsi+rax*8]
        pxor            mm7,        mm7

        pxor            mm6,        mm6

x16x8sad_mmx_loop:

        movq            mm0,       [rsi]
        movq            mm1,       [rdi]

        movq            mm2,        [rsi+8]
        movq            mm3,        [rdi+8]

        movq            mm4,        mm0
        movq            mm5,        mm2

        psubusb         mm0,        mm1
        psubusb         mm1,        mm4

        psubusb         mm2,        mm3
        psubusb         mm3,        mm5

        por             mm0,        mm1
        por             mm2,        mm3

        movq            mm1,        mm0
        movq            mm3,        mm2

        punpcklbw       mm0,        mm6
        punpckhbw       mm1,        mm6

        punpcklbw       mm2,        mm6
        punpckhbw       mm3,        mm6


        paddw           mm0,        mm2
        paddw           mm1,        mm3

        paddw           mm0,        mm1
        lea             rsi,        [rsi+rax]

        add             rdi,        rdx
        paddw           mm7,        mm0

        cmp             rsi,        rcx
        jne             x16x8sad_mmx_loop

        movq            mm0,        mm7
        punpcklwd       mm0,        mm6

        punpckhwd       mm7,        mm6
        paddw           mm0,        mm7

        movq            mm7,        mm0
        psrlq           mm0,        32

        paddw           mm7,        mm0
        movq            rax,        mm7

    pop rdi
    pop rsi
    mov rsp, rbp
    ; begin epilog
    UNSHADOW_ARGS
    pop         rbp
    ret
