| 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 3136 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3147 vmovdqu [edx], ymm0 | 3147 vmovdqu [edx], ymm0 |
| 3148 lea edx, [edx + 32] | 3148 lea edx, [edx + 32] |
| 3149 sub ecx, 32 | 3149 sub ecx, 32 |
| 3150 jg convertloop | 3150 jg convertloop |
| 3151 vzeroupper | 3151 vzeroupper |
| 3152 ret | 3152 ret |
| 3153 } | 3153 } |
| 3154 } | 3154 } |
| 3155 #endif // HAS_MIRRORROW_AVX2 | 3155 #endif // HAS_MIRRORROW_AVX2 |
| 3156 | 3156 |
| 3157 #ifdef HAS_MIRRORROW_UV_SSSE3 | 3157 #ifdef HAS_MIRRORUVROW_SSSE3 |
| 3158 // Shuffle table for reversing the bytes of UV channels. | 3158 // Shuffle table for reversing the bytes of UV channels. |
| 3159 static const uvec8 kShuffleMirrorUV = { | 3159 static const uvec8 kShuffleMirrorUV = { |
| 3160 14u, 12u, 10u, 8u, 6u, 4u, 2u, 0u, 15u, 13u, 11u, 9u, 7u, 5u, 3u, 1u | 3160 14u, 12u, 10u, 8u, 6u, 4u, 2u, 0u, 15u, 13u, 11u, 9u, 7u, 5u, 3u, 1u |
| 3161 }; | 3161 }; |
| 3162 | 3162 |
| 3163 __declspec(naked) | 3163 __declspec(naked) |
| 3164 void MirrorUVRow_SSSE3(const uint8* src, uint8* dst_u, uint8* dst_v, | 3164 void MirrorUVRow_SSSE3(const uint8* src, uint8* dst_u, uint8* dst_v, |
| 3165 int width) { | 3165 int width) { |
| 3166 __asm { | 3166 __asm { |
| 3167 push edi | 3167 push edi |
| (...skipping 12 matching lines...) Expand all Loading... |
| 3180 movlpd qword ptr [edx], xmm0 | 3180 movlpd qword ptr [edx], xmm0 |
| 3181 movhpd qword ptr [edx + edi], xmm0 | 3181 movhpd qword ptr [edx + edi], xmm0 |
| 3182 lea edx, [edx + 8] | 3182 lea edx, [edx + 8] |
| 3183 sub ecx, 8 | 3183 sub ecx, 8 |
| 3184 jg convertloop | 3184 jg convertloop |
| 3185 | 3185 |
| 3186 pop edi | 3186 pop edi |
| 3187 ret | 3187 ret |
| 3188 } | 3188 } |
| 3189 } | 3189 } |
| 3190 #endif // HAS_MIRRORROW_UV_SSSE3 | 3190 #endif // HAS_MIRRORUVROW_SSSE3 |
| 3191 | 3191 |
| 3192 #ifdef HAS_ARGBMIRRORROW_SSE2 | 3192 #ifdef HAS_ARGBMIRRORROW_SSE2 |
| 3193 __declspec(naked) | 3193 __declspec(naked) |
| 3194 void ARGBMirrorRow_SSE2(const uint8* src, uint8* dst, int width) { | 3194 void ARGBMirrorRow_SSE2(const uint8* src, uint8* dst, int width) { |
| 3195 __asm { | 3195 __asm { |
| 3196 mov eax, [esp + 4] // src | 3196 mov eax, [esp + 4] // src |
| 3197 mov edx, [esp + 8] // dst | 3197 mov edx, [esp + 8] // dst |
| 3198 mov ecx, [esp + 12] // width | 3198 mov ecx, [esp + 12] // width |
| 3199 lea eax, [eax - 16 + ecx * 4] // last 4 pixels. | 3199 lea eax, [eax - 16 + ecx * 4] // last 4 pixels. |
| 3200 | 3200 |
| (...skipping 3022 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6223 } | 6223 } |
| 6224 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 | 6224 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 |
| 6225 | 6225 |
| 6226 #endif // defined(_M_X64) | 6226 #endif // defined(_M_X64) |
| 6227 #endif // !defined(LIBYUV_DISABLE_X86) && (defined(_M_IX86) || defined(_M_X64)) | 6227 #endif // !defined(LIBYUV_DISABLE_X86) && (defined(_M_IX86) || defined(_M_X64)) |
| 6228 | 6228 |
| 6229 #ifdef __cplusplus | 6229 #ifdef __cplusplus |
| 6230 } // extern "C" | 6230 } // extern "C" |
| 6231 } // namespace libyuv | 6231 } // namespace libyuv |
| 6232 #endif | 6232 #endif |
| OLD | NEW |