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

Side by Side Diff: source/row_gcc.cc

Issue 1547703002: bug fix - remove shift from InterpolateRow_AVX2 (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: Created 5 years 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 // 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
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
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
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