Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(68)

Side by Side Diff: third_party/libvpx/source/libvpx/vp9/common/x86/vp9_copy_sse2.asm

Issue 1158913006: Move libvpx from DEPS to src (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add DEPS file with #include paths Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 ;
2 ; Copyright (c) 2010 The WebM project authors. All Rights Reserved.
3 ;
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
6 ; tree. An additional intellectual property rights grant can be found
7 ; in the file PATENTS. All contributing project authors may
8 ; be found in the AUTHORS file in the root of the source tree.
9 ;
10
11 %include "third_party/x86inc/x86inc.asm"
12
13 SECTION .text
14
15 %macro convolve_fn 1
16 INIT_XMM sse2
17 cglobal convolve_%1, 4, 7, 4, src, src_stride, dst, dst_stride, \
18 fx, fxs, fy, fys, w, h
19 mov r4d, dword wm
20 cmp r4d, 4
21 je .w4
22 cmp r4d, 8
23 je .w8
24 cmp r4d, 16
25 je .w16
26 cmp r4d, 32
27 je .w32
28
29 mov r4d, dword hm
30 .loop64:
31 movu m0, [srcq]
32 movu m1, [srcq+16]
33 movu m2, [srcq+32]
34 movu m3, [srcq+48]
35 add srcq, src_strideq
36 %ifidn %1, avg
37 pavgb m0, [dstq]
38 pavgb m1, [dstq+16]
39 pavgb m2, [dstq+32]
40 pavgb m3, [dstq+48]
41 %endif
42 mova [dstq ], m0
43 mova [dstq+16], m1
44 mova [dstq+32], m2
45 mova [dstq+48], m3
46 add dstq, dst_strideq
47 dec r4d
48 jnz .loop64
49 RET
50
51 .w32:
52 mov r4d, dword hm
53 .loop32:
54 movu m0, [srcq]
55 movu m1, [srcq+16]
56 movu m2, [srcq+src_strideq]
57 movu m3, [srcq+src_strideq+16]
58 lea srcq, [srcq+src_strideq*2]
59 %ifidn %1, avg
60 pavgb m0, [dstq]
61 pavgb m1, [dstq +16]
62 pavgb m2, [dstq+dst_strideq]
63 pavgb m3, [dstq+dst_strideq+16]
64 %endif
65 mova [dstq ], m0
66 mova [dstq +16], m1
67 mova [dstq+dst_strideq ], m2
68 mova [dstq+dst_strideq+16], m3
69 lea dstq, [dstq+dst_strideq*2]
70 sub r4d, 2
71 jnz .loop32
72 RET
73
74 .w16:
75 mov r4d, dword hm
76 lea r5q, [src_strideq*3]
77 lea r6q, [dst_strideq*3]
78 .loop16:
79 movu m0, [srcq]
80 movu m1, [srcq+src_strideq]
81 movu m2, [srcq+src_strideq*2]
82 movu m3, [srcq+r5q]
83 lea srcq, [srcq+src_strideq*4]
84 %ifidn %1, avg
85 pavgb m0, [dstq]
86 pavgb m1, [dstq+dst_strideq]
87 pavgb m2, [dstq+dst_strideq*2]
88 pavgb m3, [dstq+r6q]
89 %endif
90 mova [dstq ], m0
91 mova [dstq+dst_strideq ], m1
92 mova [dstq+dst_strideq*2], m2
93 mova [dstq+r6q ], m3
94 lea dstq, [dstq+dst_strideq*4]
95 sub r4d, 4
96 jnz .loop16
97 RET
98
99 INIT_MMX sse
100 .w8:
101 mov r4d, dword hm
102 lea r5q, [src_strideq*3]
103 lea r6q, [dst_strideq*3]
104 .loop8:
105 movu m0, [srcq]
106 movu m1, [srcq+src_strideq]
107 movu m2, [srcq+src_strideq*2]
108 movu m3, [srcq+r5q]
109 lea srcq, [srcq+src_strideq*4]
110 %ifidn %1, avg
111 pavgb m0, [dstq]
112 pavgb m1, [dstq+dst_strideq]
113 pavgb m2, [dstq+dst_strideq*2]
114 pavgb m3, [dstq+r6q]
115 %endif
116 mova [dstq ], m0
117 mova [dstq+dst_strideq ], m1
118 mova [dstq+dst_strideq*2], m2
119 mova [dstq+r6q ], m3
120 lea dstq, [dstq+dst_strideq*4]
121 sub r4d, 4
122 jnz .loop8
123 RET
124
125 .w4:
126 mov r4d, dword hm
127 lea r5q, [src_strideq*3]
128 lea r6q, [dst_strideq*3]
129 .loop4:
130 movh m0, [srcq]
131 movh m1, [srcq+src_strideq]
132 movh m2, [srcq+src_strideq*2]
133 movh m3, [srcq+r5q]
134 lea srcq, [srcq+src_strideq*4]
135 %ifidn %1, avg
136 movh m4, [dstq]
137 movh m5, [dstq+dst_strideq]
138 movh m6, [dstq+dst_strideq*2]
139 movh m7, [dstq+r6q]
140 pavgb m0, m4
141 pavgb m1, m5
142 pavgb m2, m6
143 pavgb m3, m7
144 %endif
145 movh [dstq ], m0
146 movh [dstq+dst_strideq ], m1
147 movh [dstq+dst_strideq*2], m2
148 movh [dstq+r6q ], m3
149 lea dstq, [dstq+dst_strideq*4]
150 sub r4d, 4
151 jnz .loop4
152 RET
153 %endmacro
154
155 convolve_fn copy
156 convolve_fn avg
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698