OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |