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

Side by Side Diff: source/row_win.cc

Issue 1321773004: avx2 width parameter bug fix (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: Created 5 years, 3 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 | « include/libyuv/version.h ('k') | no next file » | 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 2133 matching lines...) Expand 10 before | Expand all | Expand 10 after
2144 int width) { 2144 int width) {
2145 __asm { 2145 __asm {
2146 push esi 2146 push esi
2147 push edi 2147 push edi
2148 push ebp 2148 push ebp
2149 mov eax, [esp + 12 + 4] // Y 2149 mov eax, [esp + 12 + 4] // Y
2150 mov esi, [esp + 12 + 8] // U 2150 mov esi, [esp + 12 + 8] // U
2151 mov edi, [esp + 12 + 12] // V 2151 mov edi, [esp + 12 + 12] // V
2152 mov edx, [esp + 12 + 16] // argb 2152 mov edx, [esp + 12 + 16] // argb
2153 mov ebp, [esp + 12 + 20] // YuvConstants 2153 mov ebp, [esp + 12 + 20] // YuvConstants
2154 mov ecx, [esp + 12 + 20] // width 2154 mov ecx, [esp + 12 + 24] // width
2155 sub edi, esi 2155 sub edi, esi
2156 vpcmpeqb ymm5, ymm5, ymm5 // generate 0xffffffffffffffff for alpha 2156 vpcmpeqb ymm5, ymm5, ymm5 // generate 0xffffffffffffffff for alpha
2157 2157
2158 convertloop: 2158 convertloop:
2159 READYUV422_AVX2 2159 READYUV422_AVX2
2160 YUVTORGB_AVX2(ebp) 2160 YUVTORGB_AVX2(ebp)
2161 STOREARGB_AVX2 2161 STOREARGB_AVX2
2162 2162
2163 sub ecx, 16 2163 sub ecx, 16
2164 jg convertloop 2164 jg convertloop
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
2391 int width) { 2391 int width) {
2392 __asm { 2392 __asm {
2393 push esi 2393 push esi
2394 push edi 2394 push edi
2395 push ebp 2395 push ebp
2396 mov eax, [esp + 12 + 4] // Y 2396 mov eax, [esp + 12 + 4] // Y
2397 mov esi, [esp + 12 + 8] // U 2397 mov esi, [esp + 12 + 8] // U
2398 mov edi, [esp + 12 + 12] // V 2398 mov edi, [esp + 12 + 12] // V
2399 mov edx, [esp + 12 + 16] // argb 2399 mov edx, [esp + 12 + 16] // argb
2400 mov ebp, [esp + 12 + 20] // YuvConstants 2400 mov ebp, [esp + 12 + 20] // YuvConstants
2401 mov ecx, [esp + 12 + 20] // width 2401 mov ecx, [esp + 12 + 24] // width
2402 sub edi, esi 2402 sub edi, esi
2403 vpcmpeqb ymm5, ymm5, ymm5 // generate 0xffffffffffffffff for alpha 2403 vpcmpeqb ymm5, ymm5, ymm5 // generate 0xffffffffffffffff for alpha
2404 2404
2405 convertloop: 2405 convertloop:
2406 READYUV422_AVX2 2406 READYUV422_AVX2
2407 YUVTORGB_AVX2(ebp) 2407 YUVTORGB_AVX2(ebp)
2408 STOREABGR_AVX2 2408 STOREABGR_AVX2
2409 2409
2410 sub ecx, 16 2410 sub ecx, 16
2411 jg convertloop 2411 jg convertloop
(...skipping 3952 matching lines...) Expand 10 before | Expand all | Expand 10 after
6364 } 6364 }
6365 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 6365 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3
6366 6366
6367 #endif // defined(_M_X64) 6367 #endif // defined(_M_X64)
6368 #endif // !defined(LIBYUV_DISABLE_X86) && (defined(_M_IX86) || defined(_M_X64)) 6368 #endif // !defined(LIBYUV_DISABLE_X86) && (defined(_M_IX86) || defined(_M_X64))
6369 6369
6370 #ifdef __cplusplus 6370 #ifdef __cplusplus
6371 } // extern "C" 6371 } // extern "C"
6372 } // namespace libyuv 6372 } // namespace libyuv
6373 #endif 6373 #endif
OLDNEW
« no previous file with comments | « include/libyuv/version.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698