OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2013 The LibYuv Project Authors. All rights reserved. | 2 * Copyright 2013 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 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
282 vmovdqu ymm1, [eax + 32] | 282 vmovdqu ymm1, [eax + 32] |
283 vmovdqu ymm2, [eax + esi] | 283 vmovdqu ymm2, [eax + esi] |
284 vmovdqu ymm3, [eax + esi + 32] | 284 vmovdqu ymm3, [eax + esi + 32] |
285 lea eax, [eax + 64] | 285 lea eax, [eax + 64] |
286 vpmaddubsw ymm0, ymm0, ymm4 // horizontal add | 286 vpmaddubsw ymm0, ymm0, ymm4 // horizontal add |
287 vpmaddubsw ymm1, ymm1, ymm4 | 287 vpmaddubsw ymm1, ymm1, ymm4 |
288 vpmaddubsw ymm2, ymm2, ymm4 | 288 vpmaddubsw ymm2, ymm2, ymm4 |
289 vpmaddubsw ymm3, ymm3, ymm4 | 289 vpmaddubsw ymm3, ymm3, ymm4 |
290 vpaddw ymm0, ymm0, ymm2 // vertical add | 290 vpaddw ymm0, ymm0, ymm2 // vertical add |
291 vpaddw ymm1, ymm1, ymm3 | 291 vpaddw ymm1, ymm1, ymm3 |
292 vpsrlw ymm0, ymm0, 1 | 292 vpsrlw ymm0, ymm0, 1 // (x + 2) / 4 = (x / 2 + 1) / 2 |
293 vpsrlw ymm1, ymm1, 1 | 293 vpsrlw ymm1, ymm1, 1 |
294 vpavgw ymm0, ymm0, ymm5 // (x + 1) / 2 | 294 vpavgw ymm0, ymm0, ymm5 // (x + 1) / 2 |
295 vpavgw ymm1, ymm1, ymm5 | 295 vpavgw ymm1, ymm1, ymm5 |
296 vpackuswb ymm0, ymm0, ymm1 | 296 vpackuswb ymm0, ymm0, ymm1 |
297 vpermq ymm0, ymm0, 0xd8 // unmutate vpackuswb | 297 vpermq ymm0, ymm0, 0xd8 // unmutate vpackuswb |
298 vmovdqu [edx], ymm0 | 298 vmovdqu [edx], ymm0 |
299 lea edx, [edx + 32] | 299 lea edx, [edx + 32] |
300 sub ecx, 32 | 300 sub ecx, 32 |
301 jg wloop | 301 jg wloop |
302 | 302 |
(...skipping 1045 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1348 idiv ecx | 1348 idiv ecx |
1349 ret | 1349 ret |
1350 } | 1350 } |
1351 } | 1351 } |
1352 #endif // !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) | 1352 #endif // !defined(LIBYUV_DISABLE_X86) && defined(_M_IX86) |
1353 | 1353 |
1354 #ifdef __cplusplus | 1354 #ifdef __cplusplus |
1355 } // extern "C" | 1355 } // extern "C" |
1356 } // namespace libyuv | 1356 } // namespace libyuv |
1357 #endif | 1357 #endif |
OLD | NEW |