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

Side by Side Diff: source/row_gcc.cc

Issue 2066933002: android_full_debug x86 fix - use +rm for width count (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: version fixed Created 4 years, 6 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 // 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 3578 matching lines...) Expand 10 before | Expand all | Expand 10 after
3589 "psrlw $0x8,%%xmm0 \n" 3589 "psrlw $0x8,%%xmm0 \n"
3590 "packuswb %%xmm0,%%xmm0 \n" 3590 "packuswb %%xmm0,%%xmm0 \n"
3591 "movq %%xmm0,(%3,%2,1) \n" 3591 "movq %%xmm0,(%3,%2,1) \n"
3592 "lea 0x8(%2),%2 \n" 3592 "lea 0x8(%2),%2 \n"
3593 "sub $0x8,%4 \n" 3593 "sub $0x8,%4 \n"
3594 "jg 1b \n" 3594 "jg 1b \n"
3595 : "+r"(src0), // %0 3595 : "+r"(src0), // %0
3596 "+r"(src1), // %1 3596 "+r"(src1), // %1
3597 "+r"(alpha), // %2 3597 "+r"(alpha), // %2
3598 "+r"(dst), // %3 3598 "+r"(dst), // %3
3599 "+r"(width) // %4 3599 "+rm"(width) // %4
3600 :: "memory", "cc", "eax", "xmm0", "xmm1", "xmm2", "xmm5", "xmm6", "xmm7" 3600 :: "memory", "cc", "eax", "xmm0", "xmm1", "xmm2", "xmm5", "xmm6", "xmm7"
3601 ); 3601 );
3602 } 3602 }
3603 #endif // HAS_BLENDPLANEROW_SSSE3 3603 #endif // HAS_BLENDPLANEROW_SSSE3
3604 3604
3605 #ifdef HAS_BLENDPLANEROW_AVX2 3605 #ifdef HAS_BLENDPLANEROW_AVX2
3606 // Blend 32 pixels at a time. 3606 // Blend 32 pixels at a time.
3607 // unsigned version of math 3607 // unsigned version of math
3608 // =((A2*C2)+(B2*(255-C2))+255)/256 3608 // =((A2*C2)+(B2*(255-C2))+255)/256
3609 // signed version of math 3609 // signed version of math
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
3646 "vpackuswb %%ymm3,%%ymm0,%%ymm0 \n" 3646 "vpackuswb %%ymm3,%%ymm0,%%ymm0 \n"
3647 "vmovdqu %%ymm0,(%3,%2,1) \n" 3647 "vmovdqu %%ymm0,(%3,%2,1) \n"
3648 "lea 0x20(%2),%2 \n" 3648 "lea 0x20(%2),%2 \n"
3649 "sub $0x20,%4 \n" 3649 "sub $0x20,%4 \n"
3650 "jg 1b \n" 3650 "jg 1b \n"
3651 "vzeroupper \n" 3651 "vzeroupper \n"
3652 : "+r"(src0), // %0 3652 : "+r"(src0), // %0
3653 "+r"(src1), // %1 3653 "+r"(src1), // %1
3654 "+r"(alpha), // %2 3654 "+r"(alpha), // %2
3655 "+r"(dst), // %3 3655 "+r"(dst), // %3
3656 "+r"(width) // %4 3656 "+rm"(width) // %4
3657 :: "memory", "cc", "eax", 3657 :: "memory", "cc", "eax",
3658 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7" 3658 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7"
3659 ); 3659 );
3660 } 3660 }
3661 #endif // HAS_BLENDPLANEROW_AVX2 3661 #endif // HAS_BLENDPLANEROW_AVX2
3662 3662
3663 #ifdef HAS_ARGBATTENUATEROW_SSSE3 3663 #ifdef HAS_ARGBATTENUATEROW_SSSE3
3664 // Shuffle table duplicating alpha 3664 // Shuffle table duplicating alpha
3665 static uvec8 kShuffleAlpha0 = { 3665 static uvec8 kShuffleAlpha0 = {
3666 3u, 3u, 3u, 3u, 3u, 3u, 128u, 128u, 7u, 7u, 7u, 7u, 7u, 7u, 128u, 128u 3666 3u, 3u, 3u, 3u, 3u, 3u, 128u, 128u, 7u, 7u, 7u, 7u, 7u, 7u, 128u, 128u
(...skipping 1262 matching lines...) Expand 10 before | Expand all | Expand 10 after
4929 // Blend 100 / 0 - Copy row unchanged. 4929 // Blend 100 / 0 - Copy row unchanged.
4930 LABELALIGN 4930 LABELALIGN
4931 "100: \n" 4931 "100: \n"
4932 "movdqu " MEMACCESS(1) ",%%xmm0 \n" 4932 "movdqu " MEMACCESS(1) ",%%xmm0 \n"
4933 MEMOPMEM(movdqu,xmm0,0x00,1,0,1) 4933 MEMOPMEM(movdqu,xmm0,0x00,1,0,1)
4934 "lea " MEMLEA(0x10,1) ",%1 \n" 4934 "lea " MEMLEA(0x10,1) ",%1 \n"
4935 "sub $0x10,%2 \n" 4935 "sub $0x10,%2 \n"
4936 "jg 100b \n" 4936 "jg 100b \n"
4937 4937
4938 "99: \n" 4938 "99: \n"
4939 : "+r"(dst_ptr), // %0 4939 : "+r"(dst_ptr), // %0
4940 "+r"(src_ptr), // %1 4940 "+r"(src_ptr), // %1
4941 "+r"(dst_width), // %2 4941 "+rm"(dst_width), // %2
4942 "+r"(source_y_fraction) // %3 4942 "+r"(source_y_fraction) // %3
4943 : "r"((intptr_t)(src_stride)) // %4 4943 : "r"((intptr_t)(src_stride)) // %4
4944 : "memory", "cc", "eax", NACL_R14 4944 : "memory", "cc", "eax", NACL_R14
4945 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5" 4945 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5"
4946 ); 4946 );
4947 } 4947 }
4948 #endif // HAS_INTERPOLATEROW_SSSE3 4948 #endif // HAS_INTERPOLATEROW_SSSE3
4949 4949
4950 #ifdef HAS_INTERPOLATEROW_AVX2 4950 #ifdef HAS_INTERPOLATEROW_AVX2
4951 // Bilinear filter 32x2 -> 32x1 4951 // Bilinear filter 32x2 -> 32x1
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
5007 LABELALIGN 5007 LABELALIGN
5008 "100: \n" 5008 "100: \n"
5009 "rep movsb " MEMMOVESTRING(1,0) " \n" 5009 "rep movsb " MEMMOVESTRING(1,0) " \n"
5010 "jmp 999f \n" 5010 "jmp 999f \n"
5011 5011
5012 "99: \n" 5012 "99: \n"
5013 "vzeroupper \n" 5013 "vzeroupper \n"
5014 "999: \n" 5014 "999: \n"
5015 : "+D"(dst_ptr), // %0 5015 : "+D"(dst_ptr), // %0
5016 "+S"(src_ptr), // %1 5016 "+S"(src_ptr), // %1
5017 "+c"(dst_width), // %2 5017 "+cm"(dst_width), // %2
5018 "+r"(source_y_fraction) // %3 5018 "+r"(source_y_fraction) // %3
5019 : "r"((intptr_t)(src_stride)) // %4 5019 : "r"((intptr_t)(src_stride)) // %4
5020 : "memory", "cc", "eax", NACL_R14 5020 : "memory", "cc", "eax", NACL_R14
5021 "xmm0", "xmm1", "xmm2", "xmm4", "xmm5" 5021 "xmm0", "xmm1", "xmm2", "xmm4", "xmm5"
5022 ); 5022 );
5023 } 5023 }
5024 #endif // HAS_INTERPOLATEROW_AVX2 5024 #endif // HAS_INTERPOLATEROW_AVX2
5025 5025
5026 #ifdef HAS_ARGBSHUFFLEROW_SSSE3 5026 #ifdef HAS_ARGBSHUFFLEROW_SSSE3
5027 // For BGRAToARGB, ABGRToARGB, RGBAToARGB, and ARGBToRGBA. 5027 // For BGRAToARGB, ABGRToARGB, RGBAToARGB, and ARGBToRGBA.
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after
5525 ); 5525 );
5526 } 5526 }
5527 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 5527 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3
5528 5528
5529 #endif // defined(__x86_64__) || defined(__i386__) 5529 #endif // defined(__x86_64__) || defined(__i386__)
5530 5530
5531 #ifdef __cplusplus 5531 #ifdef __cplusplus
5532 } // extern "C" 5532 } // extern "C"
5533 } // namespace libyuv 5533 } // namespace libyuv
5534 #endif 5534 #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