176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org; 276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org; Copyright (c) 2014 The WebM project authors. All Rights Reserved. 376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org; 476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org; Use of this source code is governed by a BSD-style license 576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org; that can be found in the LICENSE file in the root of the source 676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org; tree. An additional intellectual property rights grant can be found 776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org; in the file PATENTS. All contributing project authors may 876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org; be found in the AUTHORS file in the root of the source tree. 976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org; 1076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 1176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%include "vpx_ports/x86_abi_support.asm" 1276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 1376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%macro GET_PARAM_4 0 1476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rdx, arg(5) ;filter ptr 1576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rsi, arg(0) ;src_ptr 1676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rdi, arg(2) ;output_ptr 1776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rcx, 0x0400040 1876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 1976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm3, [rdx] ;load filters 2076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pshuflw xmm4, xmm3, 11111111b ;k3 2176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org psrldq xmm3, 8 2276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pshuflw xmm3, xmm3, 0b ;k4 2376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpcklqdq xmm4, xmm3 ;k3k4 2476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 2576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movq xmm3, rcx ;rounding 2676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pshufd xmm3, xmm3, 0 2776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 2876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pxor xmm2, xmm2 2976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 3076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movsxd rax, DWORD PTR arg(1) ;pixels_per_line 3176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movsxd rdx, DWORD PTR arg(3) ;out_pitch 3276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movsxd rcx, DWORD PTR arg(4) ;output_height 3376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%endm 3476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 3576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%macro APPLY_FILTER_4 1 3676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 3776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpckldq xmm0, xmm1 ;two row in one register 3876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpcklbw xmm0, xmm2 ;unpack to word 3976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pmullw xmm0, xmm4 ;multiply the filter factors 4076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 4176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm1, xmm0 4276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org psrldq xmm1, 8 4376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org paddsw xmm0, xmm1 4476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 4576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org paddsw xmm0, xmm3 ;rounding 4676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org psraw xmm0, 7 ;shift 4776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org packuswb xmm0, xmm0 ;pack to byte 4876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 4976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%if %1 5076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movd xmm1, [rdi] 5176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pavgb xmm0, xmm1 5276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%endif 5376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 5476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movd [rdi], xmm0 5576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org lea rsi, [rsi + rax] 5676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org lea rdi, [rdi + rdx] 5776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org dec rcx 5876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%endm 5976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 6076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%macro GET_PARAM 0 6176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rdx, arg(5) ;filter ptr 6276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rsi, arg(0) ;src_ptr 6376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rdi, arg(2) ;output_ptr 6476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rcx, 0x0400040 6576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 6676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm7, [rdx] ;load filters 6776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 6876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pshuflw xmm6, xmm7, 11111111b ;k3 6976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pshufhw xmm7, xmm7, 0b ;k4 7076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpcklwd xmm6, xmm6 7176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpckhwd xmm7, xmm7 7276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 7376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movq xmm4, rcx ;rounding 7476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pshufd xmm4, xmm4, 0 7576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 7676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pxor xmm5, xmm5 7776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 7876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movsxd rax, DWORD PTR arg(1) ;pixels_per_line 7976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movsxd rdx, DWORD PTR arg(3) ;out_pitch 8076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movsxd rcx, DWORD PTR arg(4) ;output_height 8176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%endm 8276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 8376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%macro APPLY_FILTER_8 1 8476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpcklbw xmm0, xmm5 8576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpcklbw xmm1, xmm5 8676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 8776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pmullw xmm0, xmm6 8876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pmullw xmm1, xmm7 8976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org paddsw xmm0, xmm1 9076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org paddsw xmm0, xmm4 ;rounding 9176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org psraw xmm0, 7 ;shift 9276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org packuswb xmm0, xmm0 ;pack back to byte 9376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%if %1 9476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movq xmm1, [rdi] 9576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pavgb xmm0, xmm1 9676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%endif 9776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movq [rdi], xmm0 ;store the result 9876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 9976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org lea rsi, [rsi + rax] 10076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org lea rdi, [rdi + rdx] 10176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org dec rcx 10276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%endm 10376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 10476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%macro APPLY_FILTER_16 1 10576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpcklbw xmm0, xmm5 10676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpcklbw xmm1, xmm5 10776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpckhbw xmm2, xmm5 10876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org punpckhbw xmm3, xmm5 10976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 11076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pmullw xmm0, xmm6 11176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pmullw xmm1, xmm7 11276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pmullw xmm2, xmm6 11376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pmullw xmm3, xmm7 11476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 11576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org paddsw xmm0, xmm1 11676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org paddsw xmm2, xmm3 11776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 11876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org paddsw xmm0, xmm4 ;rounding 11976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org paddsw xmm2, xmm4 12076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org psraw xmm0, 7 ;shift 12176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org psraw xmm2, 7 12276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org packuswb xmm0, xmm2 ;pack back to byte 12376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%if %1 12476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm1, [rdi] 12576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pavgb xmm0, xmm1 12676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%endif 12776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu [rdi], xmm0 ;store the result 12876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 12976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org lea rsi, [rsi + rax] 13076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org lea rdi, [rdi + rdx] 13176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org dec rcx 13276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org%endm 13376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 13476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d4_v2_sse2) PRIVATE 13576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d4_v2_sse2): 13676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 13776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 13876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 13976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 14076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 14176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 14276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 14376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM_4 14476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 14576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movd xmm0, [rsi] ;load src 14676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movd xmm1, [rsi + rax] 14776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 14876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_4 0 14976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 15076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 15176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 15276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 15376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 15476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 15576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 15676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 15776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 15876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d8_v2_sse2) PRIVATE 15976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d8_v2_sse2): 16076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 16176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 16276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 16376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SAVE_XMM 7 16476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 16576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 16676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 16776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 16876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM 16976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 17076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movq xmm0, [rsi] ;0 17176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movq xmm1, [rsi + rax] ;1 17276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 17376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_8 0 17476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 17576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 17676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 17776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 17876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 17976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org RESTORE_XMM 18076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 18176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 18276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 18376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 18476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d16_v2_sse2) PRIVATE 18576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d16_v2_sse2): 18676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 18776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 18876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 18976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SAVE_XMM 7 19076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 19176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 19276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 19376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 19476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM 19576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 19676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm0, [rsi] ;0 19776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm1, [rsi + rax] ;1 19876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm2, xmm0 19976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm3, xmm1 20076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 20176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_16 0 20276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 20376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 20476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 20576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 20676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 20776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org RESTORE_XMM 20876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 20976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 21076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 21176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 21276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d4_v2_avg_sse2) PRIVATE 21376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d4_v2_avg_sse2): 21476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 21576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 21676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 21776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 21876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 21976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 22076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 22176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM_4 22276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 22376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movd xmm0, [rsi] ;load src 22476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movd xmm1, [rsi + rax] 22576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 22676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_4 1 22776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 22876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 22976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 23076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 23176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 23276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 23376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 23476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 23576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 23676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d8_v2_avg_sse2) PRIVATE 23776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d8_v2_avg_sse2): 23876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 23976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 24076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 24176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SAVE_XMM 7 24276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 24376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 24476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 24576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 24676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM 24776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 24876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movq xmm0, [rsi] ;0 24976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movq xmm1, [rsi + rax] ;1 25076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 25176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_8 1 25276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 25376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 25476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 25576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 25676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 25776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org RESTORE_XMM 25876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 25976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 26076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 26176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 26276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d16_v2_avg_sse2) PRIVATE 26376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d16_v2_avg_sse2): 26476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 26576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 26676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 26776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SAVE_XMM 7 26876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 26976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 27076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 27176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 27276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM 27376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 27476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm0, [rsi] ;0 27576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm1, [rsi + rax] ;1 27676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm2, xmm0 27776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm3, xmm1 27876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 27976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_16 1 28076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 28176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 28276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 28376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 28476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 28576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org RESTORE_XMM 28676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 28776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 28876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 28976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 29076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d4_h2_sse2) PRIVATE 29176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d4_h2_sse2): 29276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 29376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 29476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 29576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 29676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 29776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 29876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 29976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM_4 30076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 30176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm0, [rsi] ;load src 30276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm1, xmm0 30376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org psrldq xmm1, 1 30476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 30576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_4 0 30676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 30776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 30876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 30976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 31076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 31176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 31276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 31376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 31476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 31576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d8_h2_sse2) PRIVATE 31676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d8_h2_sse2): 31776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 31876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 31976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 32076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SAVE_XMM 7 32176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 32276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 32376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 32476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 32576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM 32676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 32776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm0, [rsi] ;load src 32876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm1, xmm0 32976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org psrldq xmm1, 1 33076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 33176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_8 0 33276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 33376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 33476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 33576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 33676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 33776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org RESTORE_XMM 33876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 33976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 34076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 34176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 34276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d16_h2_sse2) PRIVATE 34376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d16_h2_sse2): 34476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 34576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 34676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 34776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SAVE_XMM 7 34876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 34976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 35076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 35176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 35276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM 35376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 35476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm0, [rsi] ;load src 35576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm1, [rsi + 1] 35676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm2, xmm0 35776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm3, xmm1 35876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 35976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_16 0 36076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 36176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 36276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 36376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 36476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 36576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org RESTORE_XMM 36676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 36776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 36876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 36976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 37076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d4_h2_avg_sse2) PRIVATE 37176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d4_h2_avg_sse2): 37276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 37376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 37476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 37576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 37676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 37776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 37876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 37976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM_4 38076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 38176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm0, [rsi] ;load src 38276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm1, xmm0 38376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org psrldq xmm1, 1 38476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 38576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_4 1 38676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 38776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 38876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 38976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 39076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 39176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 39276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 39376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 39476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 39576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d8_h2_avg_sse2) PRIVATE 39676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d8_h2_avg_sse2): 39776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 39876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 39976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 40076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SAVE_XMM 7 40176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 40276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 40376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 40476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 40576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM 40676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 40776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm0, [rsi] ;load src 40876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm1, xmm0 40976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org psrldq xmm1, 1 41076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 41176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_8 1 41276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 41376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 41476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 41576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 41676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 41776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org RESTORE_XMM 41876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 41976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 42076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 42176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 42276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgglobal sym(vp9_filter_block1d16_h2_avg_sse2) PRIVATE 42376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.orgsym(vp9_filter_block1d16_h2_avg_sse2): 42476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rbp 42576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org mov rbp, rsp 42676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SHADOW_ARGS_TO_STACK 6 42776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org SAVE_XMM 7 42876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rsi 42976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org push rdi 43076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; end prolog 43176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 43276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org GET_PARAM 43376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org.loop: 43476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm0, [rsi] ;load src 43576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqu xmm1, [rsi + 1] 43676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm2, xmm0 43776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org movdqa xmm3, xmm1 43876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 43976e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org APPLY_FILTER_16 1 44076e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org jnz .loop 44176e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org 44276e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ; begin epilog 44376e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rdi 44476e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rsi 44576e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org RESTORE_XMM 44676e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org UNSHADOW_ARGS 44776e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org pop rbp 44876e516e2154f353aa02c504bac88afb0f95fefa7johannkoenig@chromium.org ret 449