| OLD | NEW |
| 1 ; | 1 ; |
| 2 ; Copyright (c) 2012 The WebM project authors. All Rights Reserved. | 2 ; Copyright (c) 2015 The WebM project authors. All Rights Reserved. |
| 3 ; | 3 ; |
| 4 ; Use of this source code is governed by a BSD-style license | 4 ; Use of this source code is governed by a BSD-style license |
| 5 ; that can be found in the LICENSE file in the root of the source | 5 ; that can be found in the LICENSE file in the root of the source |
| 6 ; tree. An additional intellectual property rights grant can be found | 6 ; tree. An additional intellectual property rights grant can be found |
| 7 ; in the file PATENTS. All contributing project authors may | 7 ; in the file PATENTS. All contributing project authors may |
| 8 ; be found in the AUTHORS file in the root of the source tree. | 8 ; be found in the AUTHORS file in the root of the source tree. |
| 9 ; | 9 ; |
| 10 | 10 |
| 11 | 11 ; This file is a duplicate of mfqe_sse2.asm in VP8. |
| 12 ; TODO(jackychen): Find a way to fix the duplicate. |
| 12 %include "vpx_ports/x86_abi_support.asm" | 13 %include "vpx_ports/x86_abi_support.asm" |
| 13 | 14 |
| 14 ;void vp8_filter_by_weight16x16_sse2 | 15 ;void vp9_filter_by_weight16x16_sse2 |
| 15 ;( | 16 ;( |
| 16 ; unsigned char *src, | 17 ; unsigned char *src, |
| 17 ; int src_stride, | 18 ; int src_stride, |
| 18 ; unsigned char *dst, | 19 ; unsigned char *dst, |
| 19 ; int dst_stride, | 20 ; int dst_stride, |
| 20 ; int src_weight | 21 ; int src_weight |
| 21 ;) | 22 ;) |
| 22 global sym(vp8_filter_by_weight16x16_sse2) PRIVATE | 23 global sym(vp9_filter_by_weight16x16_sse2) PRIVATE |
| 23 sym(vp8_filter_by_weight16x16_sse2): | 24 sym(vp9_filter_by_weight16x16_sse2): |
| 24 push rbp | 25 push rbp |
| 25 mov rbp, rsp | 26 mov rbp, rsp |
| 26 SHADOW_ARGS_TO_STACK 5 | 27 SHADOW_ARGS_TO_STACK 5 |
| 27 SAVE_XMM 6 | 28 SAVE_XMM 6 |
| 28 GET_GOT rbx | 29 GET_GOT rbx |
| 29 push rsi | 30 push rsi |
| 30 push rdi | 31 push rdi |
| 31 ; end prolog | 32 ; end prolog |
| 32 | 33 |
| 33 movd xmm0, arg(4) ; src_weight | 34 movd xmm0, arg(4) ; src_weight |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 ; begin epilog | 83 ; begin epilog |
| 83 pop rdi | 84 pop rdi |
| 84 pop rsi | 85 pop rsi |
| 85 RESTORE_GOT | 86 RESTORE_GOT |
| 86 RESTORE_XMM | 87 RESTORE_XMM |
| 87 UNSHADOW_ARGS | 88 UNSHADOW_ARGS |
| 88 pop rbp | 89 pop rbp |
| 89 | 90 |
| 90 ret | 91 ret |
| 91 | 92 |
| 92 ;void vp8_filter_by_weight8x8_sse2 | 93 ;void vp9_filter_by_weight8x8_sse2 |
| 93 ;( | 94 ;( |
| 94 ; unsigned char *src, | 95 ; unsigned char *src, |
| 95 ; int src_stride, | 96 ; int src_stride, |
| 96 ; unsigned char *dst, | 97 ; unsigned char *dst, |
| 97 ; int dst_stride, | 98 ; int dst_stride, |
| 98 ; int src_weight | 99 ; int src_weight |
| 99 ;) | 100 ;) |
| 100 global sym(vp8_filter_by_weight8x8_sse2) PRIVATE | 101 global sym(vp9_filter_by_weight8x8_sse2) PRIVATE |
| 101 sym(vp8_filter_by_weight8x8_sse2): | 102 sym(vp9_filter_by_weight8x8_sse2): |
| 102 push rbp | 103 push rbp |
| 103 mov rbp, rsp | 104 mov rbp, rsp |
| 104 SHADOW_ARGS_TO_STACK 5 | 105 SHADOW_ARGS_TO_STACK 5 |
| 105 GET_GOT rbx | 106 GET_GOT rbx |
| 106 push rsi | 107 push rsi |
| 107 push rdi | 108 push rdi |
| 108 ; end prolog | 109 ; end prolog |
| 109 | 110 |
| 110 movd xmm0, arg(4) ; src_weight | 111 movd xmm0, arg(4) ; src_weight |
| 111 pshuflw xmm0, xmm0, 0x0 ; replicate to all low words | 112 pshuflw xmm0, xmm0, 0x0 ; replicate to all low words |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 149 | 150 |
| 150 ; begin epilog | 151 ; begin epilog |
| 151 pop rdi | 152 pop rdi |
| 152 pop rsi | 153 pop rsi |
| 153 RESTORE_GOT | 154 RESTORE_GOT |
| 154 UNSHADOW_ARGS | 155 UNSHADOW_ARGS |
| 155 pop rbp | 156 pop rbp |
| 156 | 157 |
| 157 ret | 158 ret |
| 158 | 159 |
| 159 ;void vp8_variance_and_sad_16x16_sse2 | arg | 160 ;void vp9_variance_and_sad_16x16_sse2 | arg |
| 160 ;( | 161 ;( |
| 161 ; unsigned char *src1, 0 | 162 ; unsigned char *src1, 0 |
| 162 ; int stride1, 1 | 163 ; int stride1, 1 |
| 163 ; unsigned char *src2, 2 | 164 ; unsigned char *src2, 2 |
| 164 ; int stride2, 3 | 165 ; int stride2, 3 |
| 165 ; unsigned int *variance, 4 | 166 ; unsigned int *variance, 4 |
| 166 ; unsigned int *sad, 5 | 167 ; unsigned int *sad, 5 |
| 167 ;) | 168 ;) |
| 168 global sym(vp8_variance_and_sad_16x16_sse2) PRIVATE | 169 global sym(vp9_variance_and_sad_16x16_sse2) PRIVATE |
| 169 sym(vp8_variance_and_sad_16x16_sse2): | 170 sym(vp9_variance_and_sad_16x16_sse2): |
| 170 push rbp | 171 push rbp |
| 171 mov rbp, rsp | 172 mov rbp, rsp |
| 172 SHADOW_ARGS_TO_STACK 6 | 173 SHADOW_ARGS_TO_STACK 6 |
| 173 GET_GOT rbx | 174 GET_GOT rbx |
| 174 push rsi | 175 push rsi |
| 175 push rdi | 176 push rdi |
| 176 ; end prolog | 177 ; end prolog |
| 177 | 178 |
| 178 mov rax, arg(0) ; src1 | 179 mov rax, arg(0) ; src1 |
| 179 mov rcx, arg(1) ; stride1 | 180 mov rcx, arg(1) ; stride1 |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 dq 0, 128 | 278 dq 0, 128 |
| 278 %else | 279 %else |
| 279 dq 128, 0 | 280 dq 128, 0 |
| 280 %endif | 281 %endif |
| 281 align 16 | 282 align 16 |
| 282 tMFQE: ; 1 << MFQE_PRECISION | 283 tMFQE: ; 1 << MFQE_PRECISION |
| 283 times 8 dw 0x10 | 284 times 8 dw 0x10 |
| 284 align 16 | 285 align 16 |
| 285 tMFQE_round: ; 1 << (MFQE_PRECISION - 1) | 286 tMFQE_round: ; 1 << (MFQE_PRECISION - 1) |
| 286 times 8 dw 0x08 | 287 times 8 dw 0x08 |
| 287 | |
| OLD | NEW |