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 |