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

Side by Side Diff: source/row_gcc.cc

Issue 1535433003: use memory for loop counter to work around nearly out of registers (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 | « no previous file | 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 1795 matching lines...) Expand 10 before | Expand all | Expand 10 after
1806 int temp = 0; 1806 int temp = 0;
1807 asm volatile ( 1807 asm volatile (
1808 YUVTORGB_SETUP(yuvconstants) 1808 YUVTORGB_SETUP(yuvconstants)
1809 "sub %[u_buf],%[v_buf] \n" 1809 "sub %[u_buf],%[v_buf] \n"
1810 "pcmpeqb %%xmm5,%%xmm5 \n" 1810 "pcmpeqb %%xmm5,%%xmm5 \n"
1811 LABELALIGN 1811 LABELALIGN
1812 "1: \n" 1812 "1: \n"
1813 READYUV411_TEMP 1813 READYUV411_TEMP
1814 YUVTORGB(yuvconstants) 1814 YUVTORGB(yuvconstants)
1815 STOREARGB 1815 STOREARGB
1816 "sub $0x8,%[width] \n" 1816 "subl $0x8,%[width] \n"
1817 "jg 1b \n" 1817 "jg 1b \n"
1818 : [y_buf]"+r"(y_buf), // %[y_buf] 1818 : [y_buf]"+r"(y_buf), // %[y_buf]
1819 [u_buf]"+r"(u_buf), // %[u_buf] 1819 [u_buf]"+r"(u_buf), // %[u_buf]
1820 [v_buf]"+r"(v_buf), // %[v_buf] 1820 [v_buf]"+r"(v_buf), // %[v_buf]
1821 [dst_argb]"+r"(dst_argb), // %[dst_argb] 1821 [dst_argb]"+r"(dst_argb), // %[dst_argb]
1822 [temp]"+r"(temp), // %[temp] 1822 [temp]"+r"(temp), // %[temp]
1823 #if defined(__i386__) && defined(__pic__)
1824 [width]"+m"(width) // %[width]
1825 #else
1823 [width]"+rm"(width) // %[width] 1826 [width]"+rm"(width) // %[width]
1827 #endif
1824 : [yuvconstants]"r"(yuvconstants) // %[yuvconstants] 1828 : [yuvconstants]"r"(yuvconstants) // %[yuvconstants]
1825 : "memory", "cc", NACL_R14 YUVTORGB_REGS 1829 : "memory", "cc", NACL_R14 YUVTORGB_REGS
1826 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5" 1830 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5"
1827 ); 1831 );
1828 } 1832 }
1829 #endif 1833 #endif
1830 1834
1831 void OMITFP NV12ToARGBRow_SSSE3(const uint8* y_buf, 1835 void OMITFP NV12ToARGBRow_SSSE3(const uint8* y_buf,
1832 const uint8* uv_buf, 1836 const uint8* uv_buf,
1833 uint8* dst_argb, 1837 uint8* dst_argb,
(...skipping 3763 matching lines...) Expand 10 before | Expand all | Expand 10 after
5597 ); 5601 );
5598 } 5602 }
5599 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 5603 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3
5600 5604
5601 #endif // defined(__x86_64__) || defined(__i386__) 5605 #endif // defined(__x86_64__) || defined(__i386__)
5602 5606
5603 #ifdef __cplusplus 5607 #ifdef __cplusplus
5604 } // extern "C" 5608 } // extern "C"
5605 } // namespace libyuv 5609 } // namespace libyuv
5606 #endif 5610 #endif
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698