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

Side by Side Diff: include/libyuv/row.h

Issue 1397673002: port ARGB to 565 dithering SSE2 code to GCC. (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: remove comment about 8 pixels which is wrong Created 5 years, 2 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
« no previous file with comments | « no previous file | source/row_gcc.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 The LibYuv Project Authors. All rights reserved. 2 * Copyright 2011 The LibYuv 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
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 #define HAS_ABGRTOYROW_SSSE3 84 #define HAS_ABGRTOYROW_SSSE3
85 #define HAS_ARGB1555TOARGBROW_SSE2 85 #define HAS_ARGB1555TOARGBROW_SSE2
86 #define HAS_ARGB4444TOARGBROW_SSE2 86 #define HAS_ARGB4444TOARGBROW_SSE2
87 #define HAS_ARGBSETROW_X86 87 #define HAS_ARGBSETROW_X86
88 #define HAS_ARGBSHUFFLEROW_SSE2 88 #define HAS_ARGBSHUFFLEROW_SSE2
89 #define HAS_ARGBSHUFFLEROW_SSSE3 89 #define HAS_ARGBSHUFFLEROW_SSSE3
90 #define HAS_ARGBTOARGB1555ROW_SSE2 90 #define HAS_ARGBTOARGB1555ROW_SSE2
91 #define HAS_ARGBTOARGB4444ROW_SSE2 91 #define HAS_ARGBTOARGB4444ROW_SSE2
92 #define HAS_ARGBTORAWROW_SSSE3 92 #define HAS_ARGBTORAWROW_SSSE3
93 #define HAS_ARGBTORGB24ROW_SSSE3 93 #define HAS_ARGBTORGB24ROW_SSSE3
94 #define HAS_ARGBTORGB565DITHERROW_SSE2
94 #define HAS_ARGBTORGB565ROW_SSE2 95 #define HAS_ARGBTORGB565ROW_SSE2
95 #define HAS_ARGBTOUV422ROW_SSSE3 96 #define HAS_ARGBTOUV422ROW_SSSE3
96 #define HAS_ARGBTOUV444ROW_SSSE3 97 #define HAS_ARGBTOUV444ROW_SSSE3
97 #define HAS_ARGBTOUVJROW_SSSE3 98 #define HAS_ARGBTOUVJROW_SSSE3
98 #define HAS_ARGBTOUVROW_SSSE3 99 #define HAS_ARGBTOUVROW_SSSE3
99 #define HAS_ARGBTOYJROW_SSSE3 100 #define HAS_ARGBTOYJROW_SSSE3
100 #define HAS_ARGBTOYROW_SSSE3 101 #define HAS_ARGBTOYROW_SSSE3
101 #define HAS_BGRATOUVROW_SSSE3 102 #define HAS_BGRATOUVROW_SSSE3
102 #define HAS_BGRATOYROW_SSSE3 103 #define HAS_BGRATOYROW_SSSE3
103 #define HAS_COPYROW_ERMS 104 #define HAS_COPYROW_ERMS
104 #define HAS_COPYROW_SSE2 105 #define HAS_COPYROW_SSE2
106 #define HAS_H422TOABGRROW_SSSE3
107 #define HAS_H422TOARGBROW_SSSE3
105 #define HAS_I400TOARGBROW_SSE2 108 #define HAS_I400TOARGBROW_SSE2
106 #define HAS_I411TOARGBROW_SSSE3 109 #define HAS_I411TOARGBROW_SSSE3
110 #define HAS_I422ALPHATOABGRROW_SSSE3
111 #define HAS_I422ALPHATOARGBROW_SSSE3
107 #define HAS_I422TOABGRROW_SSSE3 112 #define HAS_I422TOABGRROW_SSSE3
108 #define HAS_I422TOARGB1555ROW_SSSE3 113 #define HAS_I422TOARGB1555ROW_SSSE3
109 #define HAS_I422TOARGB4444ROW_SSSE3 114 #define HAS_I422TOARGB4444ROW_SSSE3
110 #define HAS_I422TOARGBROW_SSSE3 115 #define HAS_I422TOARGBROW_SSSE3
111 #define HAS_I422TOBGRAROW_SSSE3 116 #define HAS_I422TOBGRAROW_SSSE3
112 #define HAS_I422TORAWROW_SSSE3 117 #define HAS_I422TORAWROW_SSSE3
113 #define HAS_I422TORGB24ROW_SSSE3 118 #define HAS_I422TORGB24ROW_SSSE3
114 #define HAS_I422TORGB565ROW_SSSE3 119 #define HAS_I422TORGB565ROW_SSSE3
115 #define HAS_I422TORGBAROW_SSSE3 120 #define HAS_I422TORGBAROW_SSSE3
116 #define HAS_I422TOUYVYROW_SSE2 121 #define HAS_I422TOUYVYROW_SSE2
117 #define HAS_I422TOYUY2ROW_SSE2 122 #define HAS_I422TOYUY2ROW_SSE2
123 #define HAS_I444TOABGRROW_SSSE3
124 #define HAS_I444TOARGBROW_SSSE3
118 #define HAS_J400TOARGBROW_SSE2 125 #define HAS_J400TOARGBROW_SSE2
126 #define HAS_J422TOABGRROW_SSSE3
119 #define HAS_J422TOARGBROW_SSSE3 127 #define HAS_J422TOARGBROW_SSSE3
120 #define HAS_J422TOABGRROW_SSSE3
121 #define HAS_H422TOARGBROW_SSSE3
122 #define HAS_H422TOABGRROW_SSSE3
123 #define HAS_MERGEUVROW_SSE2 128 #define HAS_MERGEUVROW_SSE2
124 #define HAS_MIRRORROW_SSSE3 129 #define HAS_MIRRORROW_SSSE3
125 #define HAS_MIRRORROW_UV_SSSE3 130 #define HAS_MIRRORROW_UV_SSSE3
126 #define HAS_MIRRORUVROW_SSSE3 131 #define HAS_MIRRORUVROW_SSSE3
127 #define HAS_NV12TOARGBROW_SSSE3 132 #define HAS_NV12TOARGBROW_SSSE3
128 #define HAS_NV12TORGB565ROW_SSSE3 133 #define HAS_NV12TORGB565ROW_SSSE3
129 #define HAS_NV21TOARGBROW_SSSE3 134 #define HAS_NV21TOARGBROW_SSSE3
130 #define HAS_RAWTOARGBROW_SSSE3 135 #define HAS_RAWTOARGBROW_SSSE3
131 #define HAS_RAWTOYROW_SSSE3 136 #define HAS_RAWTOYROW_SSSE3
132 #define HAS_RGB24TOARGBROW_SSSE3 137 #define HAS_RGB24TOARGBROW_SSSE3
133 #define HAS_RGB24TOYROW_SSSE3 138 #define HAS_RGB24TOYROW_SSSE3
134 #define HAS_RGB565TOARGBROW_SSE2 139 #define HAS_RGB565TOARGBROW_SSE2
135 #define HAS_RGBATOUVROW_SSSE3 140 #define HAS_RGBATOUVROW_SSSE3
136 #define HAS_RGBATOYROW_SSSE3 141 #define HAS_RGBATOYROW_SSSE3
137 #define HAS_SETROW_ERMS 142 #define HAS_SETROW_ERMS
138 #define HAS_SETROW_X86 143 #define HAS_SETROW_X86
139 #define HAS_SPLITUVROW_SSE2 144 #define HAS_SPLITUVROW_SSE2
140 #define HAS_UYVYTOARGBROW_SSSE3 145 #define HAS_UYVYTOARGBROW_SSSE3
141 #define HAS_UYVYTOUV422ROW_SSE2 146 #define HAS_UYVYTOUV422ROW_SSE2
142 #define HAS_UYVYTOUVROW_SSE2 147 #define HAS_UYVYTOUVROW_SSE2
143 #define HAS_UYVYTOYROW_SSE2 148 #define HAS_UYVYTOYROW_SSE2
144 #define HAS_YUY2TOARGBROW_SSSE3 149 #define HAS_YUY2TOARGBROW_SSSE3
145 #define HAS_YUY2TOUV422ROW_SSE2 150 #define HAS_YUY2TOUV422ROW_SSE2
146 #define HAS_YUY2TOUVROW_SSE2 151 #define HAS_YUY2TOUVROW_SSE2
147 #define HAS_YUY2TOYROW_SSE2 152 #define HAS_YUY2TOYROW_SSE2
148 #define HAS_I444TOARGBROW_SSSE3
149 #define HAS_I444TOABGRROW_SSSE3
150 #define HAS_I422ALPHATOARGBROW_SSSE3
151 #define HAS_I422ALPHATOABGRROW_SSSE3
152 153
153 // Effects: 154 // Effects:
154 #define HAS_ARGBADDROW_SSE2 155 #define HAS_ARGBADDROW_SSE2
155 #define HAS_ARGBAFFINEROW_SSE2 156 #define HAS_ARGBAFFINEROW_SSE2
156 #define HAS_ARGBATTENUATEROW_SSSE3 157 #define HAS_ARGBATTENUATEROW_SSSE3
157 #define HAS_ARGBBLENDROW_SSSE3 158 #define HAS_ARGBBLENDROW_SSSE3
158 #define HAS_ARGBCOLORMATRIXROW_SSSE3 159 #define HAS_ARGBCOLORMATRIXROW_SSSE3
159 #define HAS_ARGBCOLORTABLEROW_X86 160 #define HAS_ARGBCOLORTABLEROW_X86
160 #define HAS_ARGBCOPYALPHAROW_SSE2 161 #define HAS_ARGBCOPYALPHAROW_SSE2
161 #define HAS_ARGBCOPYYTOALPHAROW_SSE2 162 #define HAS_ARGBCOPYYTOALPHAROW_SSE2
(...skipping 15 matching lines...) Expand all
177 #define HAS_SOBELROW_SSE2 178 #define HAS_SOBELROW_SSE2
178 #define HAS_SOBELTOPLANEROW_SSE2 179 #define HAS_SOBELTOPLANEROW_SSE2
179 #define HAS_SOBELXROW_SSE2 180 #define HAS_SOBELXROW_SSE2
180 #define HAS_SOBELXYROW_SSE2 181 #define HAS_SOBELXYROW_SSE2
181 #define HAS_SOBELYROW_SSE2 182 #define HAS_SOBELYROW_SSE2
182 #endif 183 #endif
183 184
184 // The following are also available on x64 Visual C. 185 // The following are also available on x64 Visual C.
185 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) && \ 186 #if !defined(LIBYUV_DISABLE_X86) && defined (_M_X64) && \
186 (!defined(__clang__) || defined(__SSSE3__)) 187 (!defined(__clang__) || defined(__SSSE3__))
188 #define HAS_I422ALPHATOABGRROW_SSSE3
189 #define HAS_I422ALPHATOARGBROW_SSSE3
190 #define HAS_I422TOABGRROW_SSSE3
187 #define HAS_I422TOARGBROW_SSSE3 191 #define HAS_I422TOARGBROW_SSSE3
188 #define HAS_I422TOABGRROW_SSSE3
189 #define HAS_I422ALPHATOARGBROW_SSSE3
190 #define HAS_I422ALPHATOABGRROW_SSSE3
191 #endif 192 #endif
192 193
193 // The following are available for AVX2 Visual C and clangcl 32 bit: 194 // The following are available for AVX2 Visual C and clangcl 32 bit:
194 // TODO(fbarchard): Port to gcc. 195 // TODO(fbarchard): Port to gcc.
195 #if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \ 196 #if !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) && \
196 (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2)) 197 (defined(VISUALC_HAS_AVX2) || defined(CLANG_HAS_AVX2))
197 #define HAS_ARGB1555TOARGBROW_AVX2 198 #define HAS_ARGB1555TOARGBROW_AVX2
198 #define HAS_ARGB4444TOARGBROW_AVX2 199 #define HAS_ARGB4444TOARGBROW_AVX2
199 #define HAS_ARGBTOARGB1555ROW_AVX2 200 #define HAS_ARGBTOARGB1555ROW_AVX2
200 #define HAS_ARGBTOARGB4444ROW_AVX2 201 #define HAS_ARGBTOARGB4444ROW_AVX2
201 #define HAS_ARGBTORGB565DITHERROW_AVX2 202 #define HAS_ARGBTORGB565DITHERROW_AVX2
202 #define HAS_ARGBTORGB565DITHERROW_SSE2
203 #define HAS_ARGBTORGB565ROW_AVX2 203 #define HAS_ARGBTORGB565ROW_AVX2
204 #define HAS_I411TOARGBROW_AVX2 204 #define HAS_I411TOARGBROW_AVX2
205 #define HAS_I422TOARGB1555ROW_AVX2 205 #define HAS_I422TOARGB1555ROW_AVX2
206 #define HAS_I422TOARGB4444ROW_AVX2 206 #define HAS_I422TOARGB4444ROW_AVX2
207 #define HAS_I422TORGB565ROW_AVX2 207 #define HAS_I422TORGB565ROW_AVX2
208 #define HAS_I444TOABGRROW_AVX2
208 #define HAS_I444TOARGBROW_AVX2 209 #define HAS_I444TOARGBROW_AVX2
209 #define HAS_I444TOABGRROW_AVX2
210 #define HAS_J400TOARGBROW_AVX2 210 #define HAS_J400TOARGBROW_AVX2
211 #define HAS_NV12TORGB565ROW_AVX2
211 #define HAS_RGB565TOARGBROW_AVX2 212 #define HAS_RGB565TOARGBROW_AVX2
212 #define HAS_NV12TORGB565ROW_AVX2
213 #endif 213 #endif
214 214
215 // The following are available on all x86 platforms, but 215 // The following are available on all x86 platforms, but
216 // require VS2012, clang 3.4 or gcc 4.7. 216 // require VS2012, clang 3.4 or gcc 4.7.
217 // The code supports NaCL but requires a new compiler and validator. 217 // The code supports NaCL but requires a new compiler and validator.
218 #if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \ 218 #if !defined(LIBYUV_DISABLE_X86) && (defined(VISUALC_HAS_AVX2) || \
219 defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2)) 219 defined(CLANG_HAS_AVX2) || defined(GCC_HAS_AVX2))
220 #define HAS_ARGBCOPYALPHAROW_AVX2 220 #define HAS_ARGBCOPYALPHAROW_AVX2
221 #define HAS_ARGBCOPYYTOALPHAROW_AVX2 221 #define HAS_ARGBCOPYYTOALPHAROW_AVX2
222 #define HAS_ARGBMIRRORROW_AVX2 222 #define HAS_ARGBMIRRORROW_AVX2
223 #define HAS_ARGBPOLYNOMIALROW_AVX2 223 #define HAS_ARGBPOLYNOMIALROW_AVX2
224 #define HAS_ARGBSHUFFLEROW_AVX2 224 #define HAS_ARGBSHUFFLEROW_AVX2
225 #define HAS_ARGBTOUVROW_AVX2 225 #define HAS_ARGBTOUVROW_AVX2
226 #define HAS_ARGBTOYJROW_AVX2 226 #define HAS_ARGBTOYJROW_AVX2
227 #define HAS_ARGBTOYROW_AVX2 227 #define HAS_ARGBTOYROW_AVX2
228 #define HAS_COPYROW_AVX 228 #define HAS_COPYROW_AVX
229 #define HAS_H422TOABGRROW_AVX2
230 #define HAS_H422TOARGBROW_AVX2
229 #define HAS_I400TOARGBROW_AVX2 231 #define HAS_I400TOARGBROW_AVX2
232 #define HAS_I422ALPHATOABGRROW_AVX2
233 #define HAS_I422ALPHATOARGBROW_AVX2
230 #define HAS_I422TOABGRROW_AVX2 234 #define HAS_I422TOABGRROW_AVX2
231 #define HAS_I422TOARGBROW_AVX2 235 #define HAS_I422TOARGBROW_AVX2
232 #define HAS_I422TOBGRAROW_AVX2 236 #define HAS_I422TOBGRAROW_AVX2
233 #define HAS_I422TORAWROW_AVX2 237 #define HAS_I422TORAWROW_AVX2
234 #define HAS_I422TORGB24ROW_AVX2 238 #define HAS_I422TORGB24ROW_AVX2
235 #define HAS_I422TORGBAROW_AVX2 239 #define HAS_I422TORGBAROW_AVX2
236 #define HAS_INTERPOLATEROW_AVX2 240 #define HAS_INTERPOLATEROW_AVX2
241 #define HAS_J422TOABGRROW_AVX2
237 #define HAS_J422TOARGBROW_AVX2 242 #define HAS_J422TOARGBROW_AVX2
238 #define HAS_J422TOABGRROW_AVX2
239 #define HAS_H422TOARGBROW_AVX2
240 #define HAS_H422TOABGRROW_AVX2
241 #define HAS_MERGEUVROW_AVX2 243 #define HAS_MERGEUVROW_AVX2
242 #define HAS_MIRRORROW_AVX2 244 #define HAS_MIRRORROW_AVX2
245 #define HAS_NV12TOARGBROW_AVX2
246 #define HAS_NV21TOARGBROW_AVX2
243 #define HAS_SPLITUVROW_AVX2 247 #define HAS_SPLITUVROW_AVX2
244 #define HAS_UYVYTOARGBROW_AVX2 248 #define HAS_UYVYTOARGBROW_AVX2
245 #define HAS_UYVYTOUV422ROW_AVX2 249 #define HAS_UYVYTOUV422ROW_AVX2
246 #define HAS_UYVYTOUVROW_AVX2 250 #define HAS_UYVYTOUVROW_AVX2
247 #define HAS_UYVYTOYROW_AVX2 251 #define HAS_UYVYTOYROW_AVX2
248 #define HAS_YUY2TOARGBROW_AVX2 252 #define HAS_YUY2TOARGBROW_AVX2
249 #define HAS_YUY2TOUV422ROW_AVX2 253 #define HAS_YUY2TOUV422ROW_AVX2
250 #define HAS_YUY2TOUVROW_AVX2 254 #define HAS_YUY2TOUVROW_AVX2
251 #define HAS_YUY2TOYROW_AVX2 255 #define HAS_YUY2TOYROW_AVX2
252 #define HAS_NV12TOARGBROW_AVX2
253 #define HAS_NV21TOARGBROW_AVX2
254 #define HAS_I422ALPHATOARGBROW_AVX2
255 #define HAS_I422ALPHATOABGRROW_AVX2
256 256
257 // Effects: 257 // Effects:
258 #define HAS_ARGBADDROW_AVX2 258 #define HAS_ARGBADDROW_AVX2
259 #define HAS_ARGBATTENUATEROW_AVX2 259 #define HAS_ARGBATTENUATEROW_AVX2
260 #define HAS_ARGBMULTIPLYROW_AVX2 260 #define HAS_ARGBMULTIPLYROW_AVX2
261 #define HAS_ARGBSUBTRACTROW_AVX2 261 #define HAS_ARGBSUBTRACTROW_AVX2
262 #define HAS_ARGBUNATTENUATEROW_AVX2 262 #define HAS_ARGBUNATTENUATEROW_AVX2
263 #endif 263 #endif
264 264
265 // The following are available on Neon platforms: 265 // The following are available on Neon platforms:
266 #if !defined(LIBYUV_DISABLE_NEON) && \ 266 #if !defined(LIBYUV_DISABLE_NEON) && \
267 (defined(__aarch64__) || defined(__ARM_NEON__) || defined(LIBYUV_NEON)) 267 (defined(__aarch64__) || defined(__ARM_NEON__) || defined(LIBYUV_NEON))
268 #define HAS_ABGRTOUVROW_NEON 268 #define HAS_ABGRTOUVROW_NEON
269 #define HAS_ABGRTOYROW_NEON 269 #define HAS_ABGRTOYROW_NEON
270 #define HAS_ARGB1555TOARGBROW_NEON 270 #define HAS_ARGB1555TOARGBROW_NEON
271 #define HAS_ARGB1555TOUVROW_NEON 271 #define HAS_ARGB1555TOUVROW_NEON
272 #define HAS_ARGB1555TOYROW_NEON 272 #define HAS_ARGB1555TOYROW_NEON
273 #define HAS_ARGB4444TOARGBROW_NEON 273 #define HAS_ARGB4444TOARGBROW_NEON
274 #define HAS_ARGB4444TOUVROW_NEON 274 #define HAS_ARGB4444TOUVROW_NEON
275 #define HAS_ARGB4444TOYROW_NEON 275 #define HAS_ARGB4444TOYROW_NEON
276 #define HAS_ARGBSETROW_NEON
276 #define HAS_ARGBTOARGB1555ROW_NEON 277 #define HAS_ARGBTOARGB1555ROW_NEON
277 #define HAS_ARGBTOARGB4444ROW_NEON 278 #define HAS_ARGBTOARGB4444ROW_NEON
278 #define HAS_ARGBTORAWROW_NEON 279 #define HAS_ARGBTORAWROW_NEON
279 #define HAS_ARGBTORGB24ROW_NEON 280 #define HAS_ARGBTORGB24ROW_NEON
281 #define HAS_ARGBTORGB565DITHERROW_NEON
280 #define HAS_ARGBTORGB565ROW_NEON 282 #define HAS_ARGBTORGB565ROW_NEON
281 #define HAS_ARGBTOUV411ROW_NEON 283 #define HAS_ARGBTOUV411ROW_NEON
282 #define HAS_ARGBTOUV422ROW_NEON 284 #define HAS_ARGBTOUV422ROW_NEON
283 #define HAS_ARGBTOUV444ROW_NEON 285 #define HAS_ARGBTOUV444ROW_NEON
284 #define HAS_ARGBTOUVJROW_NEON 286 #define HAS_ARGBTOUVJROW_NEON
285 #define HAS_ARGBTOUVROW_NEON 287 #define HAS_ARGBTOUVROW_NEON
286 #define HAS_ARGBTOYJROW_NEON 288 #define HAS_ARGBTOYJROW_NEON
287 #define HAS_ARGBTOYROW_NEON 289 #define HAS_ARGBTOYROW_NEON
288 #define HAS_BGRATOUVROW_NEON 290 #define HAS_BGRATOUVROW_NEON
289 #define HAS_BGRATOYROW_NEON 291 #define HAS_BGRATOYROW_NEON
290 #define HAS_COPYROW_NEON 292 #define HAS_COPYROW_NEON
291 #define HAS_J400TOARGBROW_NEON 293 #define HAS_I400TOARGBROW_NEON
292 #define HAS_I411TOARGBROW_NEON 294 #define HAS_I411TOARGBROW_NEON
293 #define HAS_I422TOARGBROW_NEON
294 #define HAS_I422TOABGRROW_NEON 295 #define HAS_I422TOABGRROW_NEON
295 #define HAS_I422TOARGB1555ROW_NEON 296 #define HAS_I422TOARGB1555ROW_NEON
296 #define HAS_I422TOARGB4444ROW_NEON 297 #define HAS_I422TOARGB4444ROW_NEON
297 // TODO(fbarchard): Implement aarch64 neon version 298 #define HAS_I422TOARGBROW_NEON
298 #ifndef __aarch64__
299 #define HAS_J422TOARGBROW_NEON
300 #define HAS_J422TOABGRROW_NEON
301 #define HAS_H422TOARGBROW_NEON
302 #define HAS_H422TOABGRROW_NEON
303 #endif
304 #define HAS_I422TOBGRAROW_NEON 299 #define HAS_I422TOBGRAROW_NEON
305 #define HAS_I422TORAWROW_NEON 300 #define HAS_I422TORAWROW_NEON
306 #define HAS_I422TORGB24ROW_NEON 301 #define HAS_I422TORGB24ROW_NEON
307 #define HAS_I422TORGB565ROW_NEON 302 #define HAS_I422TORGB565ROW_NEON
308 #define HAS_I422TORGBAROW_NEON 303 #define HAS_I422TORGBAROW_NEON
309 #define HAS_I422TOUYVYROW_NEON 304 #define HAS_I422TOUYVYROW_NEON
310 #define HAS_I422TOYUY2ROW_NEON 305 #define HAS_I422TOYUY2ROW_NEON
311 #define HAS_I444TOARGBROW_NEON 306 #define HAS_I444TOARGBROW_NEON
307 #define HAS_J400TOARGBROW_NEON
312 #define HAS_MERGEUVROW_NEON 308 #define HAS_MERGEUVROW_NEON
313 #define HAS_MIRRORROW_NEON 309 #define HAS_MIRRORROW_NEON
314 #define HAS_MIRRORUVROW_NEON 310 #define HAS_MIRRORUVROW_NEON
315 #define HAS_NV12TOARGBROW_NEON 311 #define HAS_NV12TOARGBROW_NEON
316 #define HAS_NV12TORGB565ROW_NEON 312 #define HAS_NV12TORGB565ROW_NEON
317 #define HAS_NV21TOARGBROW_NEON 313 #define HAS_NV21TOARGBROW_NEON
318 #define HAS_RAWTOARGBROW_NEON 314 #define HAS_RAWTOARGBROW_NEON
319 #define HAS_RAWTOUVROW_NEON 315 #define HAS_RAWTOUVROW_NEON
320 #define HAS_RAWTOYROW_NEON 316 #define HAS_RAWTOYROW_NEON
321 #define HAS_RGB24TOARGBROW_NEON 317 #define HAS_RGB24TOARGBROW_NEON
322 #define HAS_RGB24TOUVROW_NEON 318 #define HAS_RGB24TOUVROW_NEON
323 #define HAS_RGB24TOYROW_NEON 319 #define HAS_RGB24TOYROW_NEON
324 #define HAS_RGB565TOARGBROW_NEON 320 #define HAS_RGB565TOARGBROW_NEON
325 #define HAS_RGB565TOUVROW_NEON 321 #define HAS_RGB565TOUVROW_NEON
326 #define HAS_RGB565TOYROW_NEON 322 #define HAS_RGB565TOYROW_NEON
327 #define HAS_RGBATOUVROW_NEON 323 #define HAS_RGBATOUVROW_NEON
328 #define HAS_RGBATOYROW_NEON 324 #define HAS_RGBATOYROW_NEON
329 #define HAS_SETROW_NEON 325 #define HAS_SETROW_NEON
330 #define HAS_ARGBSETROW_NEON
331 #define HAS_SPLITUVROW_NEON 326 #define HAS_SPLITUVROW_NEON
332 #define HAS_UYVYTOARGBROW_NEON 327 #define HAS_UYVYTOARGBROW_NEON
333 #define HAS_UYVYTOUV422ROW_NEON 328 #define HAS_UYVYTOUV422ROW_NEON
334 #define HAS_UYVYTOUVROW_NEON 329 #define HAS_UYVYTOUVROW_NEON
335 #define HAS_UYVYTOYROW_NEON 330 #define HAS_UYVYTOYROW_NEON
336 #define HAS_I400TOARGBROW_NEON
337 #define HAS_YUY2TOARGBROW_NEON 331 #define HAS_YUY2TOARGBROW_NEON
338 #define HAS_YUY2TOUV422ROW_NEON 332 #define HAS_YUY2TOUV422ROW_NEON
339 #define HAS_YUY2TOUVROW_NEON 333 #define HAS_YUY2TOUVROW_NEON
340 #define HAS_YUY2TOYROW_NEON 334 #define HAS_YUY2TOYROW_NEON
341 #define HAS_ARGBTORGB565DITHERROW_NEON
342 335
343 // Effects: 336 // Effects:
344 #define HAS_ARGBADDROW_NEON 337 #define HAS_ARGBADDROW_NEON
345 #define HAS_ARGBATTENUATEROW_NEON 338 #define HAS_ARGBATTENUATEROW_NEON
346 #define HAS_ARGBBLENDROW_NEON 339 #define HAS_ARGBBLENDROW_NEON
340 #define HAS_ARGBCOLORMATRIXROW_NEON
347 #define HAS_ARGBGRAYROW_NEON 341 #define HAS_ARGBGRAYROW_NEON
348 #define HAS_ARGBMIRRORROW_NEON 342 #define HAS_ARGBMIRRORROW_NEON
349 #define HAS_ARGBMULTIPLYROW_NEON 343 #define HAS_ARGBMULTIPLYROW_NEON
350 #define HAS_ARGBQUANTIZEROW_NEON 344 #define HAS_ARGBQUANTIZEROW_NEON
351 #define HAS_ARGBSEPIAROW_NEON 345 #define HAS_ARGBSEPIAROW_NEON
352 #define HAS_ARGBSHADEROW_NEON 346 #define HAS_ARGBSHADEROW_NEON
347 #define HAS_ARGBSHUFFLEROW_NEON
353 #define HAS_ARGBSUBTRACTROW_NEON 348 #define HAS_ARGBSUBTRACTROW_NEON
354 #define HAS_INTERPOLATEROW_NEON 349 #define HAS_INTERPOLATEROW_NEON
355 #define HAS_SOBELROW_NEON 350 #define HAS_SOBELROW_NEON
356 #define HAS_SOBELTOPLANEROW_NEON 351 #define HAS_SOBELTOPLANEROW_NEON
357 #define HAS_SOBELXROW_NEON 352 #define HAS_SOBELXROW_NEON
358 #define HAS_SOBELXYROW_NEON 353 #define HAS_SOBELXYROW_NEON
359 #define HAS_SOBELYROW_NEON 354 #define HAS_SOBELYROW_NEON
360 #define HAS_ARGBCOLORMATRIXROW_NEON
361 #define HAS_ARGBSHUFFLEROW_NEON
362 #endif 355 #endif
363 356
364 // The following are available on Mips platforms: 357 // The following are available on Mips platforms:
365 #if !defined(LIBYUV_DISABLE_MIPS) && defined(__mips__) && \ 358 #if !defined(LIBYUV_DISABLE_MIPS) && defined(__mips__) && \
366 (_MIPS_SIM == _MIPS_SIM_ABI32) && (__mips_isa_rev < 6) 359 (_MIPS_SIM == _MIPS_SIM_ABI32) && (__mips_isa_rev < 6)
367 #define HAS_COPYROW_MIPS 360 #define HAS_COPYROW_MIPS
368 #if defined(__mips_dsp) && (__mips_dsp_rev >= 2) 361 #if defined(__mips_dsp) && (__mips_dsp_rev >= 2)
369 #define HAS_I422TOABGRROW_MIPS_DSPR2 362 #define HAS_I422TOABGRROW_MIPS_DSPR2
370 #define HAS_I422TOARGBROW_MIPS_DSPR2 363 #define HAS_I422TOARGBROW_MIPS_DSPR2
371 #define HAS_I422TOBGRAROW_MIPS_DSPR2 364 #define HAS_I422TOBGRAROW_MIPS_DSPR2
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
450 // Offsets into YuvConstants structure 443 // Offsets into YuvConstants structure
451 #define KUVTOB 0 444 #define KUVTOB 0
452 #define KUVTOG 32 445 #define KUVTOG 32
453 #define KUVTOR 64 446 #define KUVTOR 64
454 #define KUVBIASB 96 447 #define KUVBIASB 96
455 #define KUVBIASG 128 448 #define KUVBIASG 128
456 #define KUVBIASR 160 449 #define KUVBIASR 160
457 #define KYTORGB 192 450 #define KYTORGB 192
458 #endif 451 #endif
459 452
460 extern struct YuvConstants kYuvConstants; 453 extern struct YuvConstants kYuvConstants; // BT.601
461 extern struct YuvConstants kYuvJConstants; 454 extern struct YuvConstants kYuvJConstants; // JPeg color space
462 extern struct YuvConstants kYuvHConstants; 455 extern struct YuvConstants kYuvHConstants; // BT.709
463 456
464 #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__) 457 #if defined(__APPLE__) || defined(__x86_64__) || defined(__llvm__)
465 #define OMITFP 458 #define OMITFP
466 #else 459 #else
467 #define OMITFP __attribute__((optimize("omit-frame-pointer"))) 460 #define OMITFP __attribute__((optimize("omit-frame-pointer")))
468 #endif 461 #endif
469 462
470 // NaCL macros for GCC x86 and x64. 463 // NaCL macros for GCC x86 and x64.
471 #if defined(__native_client__) 464 #if defined(__native_client__)
472 #define LABELALIGN ".p2align 5\n" 465 #define LABELALIGN ".p2align 5\n"
(...skipping 1663 matching lines...) Expand 10 before | Expand all | Expand 10 after
2136 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb, 2129 void ARGBLumaColorTableRow_SSSE3(const uint8* src_argb, uint8* dst_argb,
2137 int width, 2130 int width,
2138 const uint8* luma, uint32 lumacoeff); 2131 const uint8* luma, uint32 lumacoeff);
2139 2132
2140 #ifdef __cplusplus 2133 #ifdef __cplusplus
2141 } // extern "C" 2134 } // extern "C"
2142 } // namespace libyuv 2135 } // namespace libyuv
2143 #endif 2136 #endif
2144 2137
2145 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT 2138 #endif // INCLUDE_LIBYUV_ROW_H_ NOLINT
OLDNEW
« no previous file with comments | « no previous file | source/row_gcc.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698