| OLD | NEW |
| 1 // VERSION 2 | 1 // VERSION 2 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 The LibYuv Project Authors. All rights reserved. | 3 * Copyright 2011 The LibYuv Project Authors. All rights reserved. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license | 5 * Use of this source code is governed by a BSD-style license |
| 6 * that can be found in the LICENSE file in the root of the source | 6 * that can be found in the LICENSE file in the root of the source |
| 7 * tree. An additional intellectual property rights grant can be found | 7 * tree. An additional intellectual property rights grant can be found |
| 8 * in the file PATENTS. All contributing project authors may | 8 * in the file PATENTS. All contributing project authors may |
| 9 * be found in the AUTHORS file in the root of the source tree. | 9 * be found in the AUTHORS file in the root of the source tree. |
| 10 */ | 10 */ |
| (...skipping 4853 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4864 ); | 4864 ); |
| 4865 } | 4865 } |
| 4866 #endif // HAS_INTERPOLATEROW_SSSE3 | 4866 #endif // HAS_INTERPOLATEROW_SSSE3 |
| 4867 | 4867 |
| 4868 #ifdef HAS_INTERPOLATEROW_AVX2 | 4868 #ifdef HAS_INTERPOLATEROW_AVX2 |
| 4869 // Bilinear filter 32x2 -> 32x1 | 4869 // Bilinear filter 32x2 -> 32x1 |
| 4870 void InterpolateRow_AVX2(uint8* dst_ptr, const uint8* src_ptr, | 4870 void InterpolateRow_AVX2(uint8* dst_ptr, const uint8* src_ptr, |
| 4871 ptrdiff_t src_stride, int dst_width, | 4871 ptrdiff_t src_stride, int dst_width, |
| 4872 int source_y_fraction) { | 4872 int source_y_fraction) { |
| 4873 asm volatile ( | 4873 asm volatile ( |
| 4874 "shr %3 \n" | |
| 4875 "cmp $0x0,%3 \n" | 4874 "cmp $0x0,%3 \n" |
| 4876 "je 100f \n" | 4875 "je 100f \n" |
| 4877 "sub %1,%0 \n" | 4876 "sub %1,%0 \n" |
| 4878 "cmp $0x40,%3 \n" | 4877 "cmp $0x80,%3 \n" |
| 4879 "je 50f \n" | 4878 "je 50f \n" |
| 4880 | 4879 |
| 4881 "vmovd %3,%%xmm0 \n" | 4880 "vmovd %3,%%xmm0 \n" |
| 4882 "neg %3 \n" | 4881 "neg %3 \n" |
| 4883 "add $0x100,%3 \n" | 4882 "add $0x100,%3 \n" |
| 4884 "vmovd %3,%%xmm5 \n" | 4883 "vmovd %3,%%xmm5 \n" |
| 4885 "vpunpcklbw %%xmm0,%%xmm5,%%xmm5 \n" | 4884 "vpunpcklbw %%xmm0,%%xmm5,%%xmm5 \n" |
| 4886 "vpunpcklwd %%xmm5,%%xmm5,%%xmm5 \n" | 4885 "vpunpcklwd %%xmm5,%%xmm5,%%xmm5 \n" |
| 4887 "vbroadcastss %%xmm5,%%ymm5 \n" | 4886 "vbroadcastss %%xmm5,%%ymm5 \n" |
| 4888 "mov $0x80808080,%%eax \n" | 4887 "mov $0x80808080,%%eax \n" |
| (...skipping 555 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5444 ); | 5443 ); |
| 5445 } | 5444 } |
| 5446 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 | 5445 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 |
| 5447 | 5446 |
| 5448 #endif // defined(__x86_64__) || defined(__i386__) | 5447 #endif // defined(__x86_64__) || defined(__i386__) |
| 5449 | 5448 |
| 5450 #ifdef __cplusplus | 5449 #ifdef __cplusplus |
| 5451 } // extern "C" | 5450 } // extern "C" |
| 5452 } // namespace libyuv | 5451 } // namespace libyuv |
| 5453 #endif | 5452 #endif |
| OLD | NEW |