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 1690 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1701 "palignr $0xc,%%xmm0,%%xmm1 \n" | 1701 "palignr $0xc,%%xmm0,%%xmm1 \n" |
1702 "movq %%xmm0," MEMACCESS([dst_rgb24]) "\n" | 1702 "movq %%xmm0," MEMACCESS([dst_rgb24]) "\n" |
1703 "movdqu %%xmm1," MEMACCESS2(0x8,[dst_rgb24]) "\n" | 1703 "movdqu %%xmm1," MEMACCESS2(0x8,[dst_rgb24]) "\n" |
1704 "lea " MEMLEA(0x18,[dst_rgb24]) ",%[dst_rgb24] \n" | 1704 "lea " MEMLEA(0x18,[dst_rgb24]) ",%[dst_rgb24] \n" |
1705 "subl $0x8,%[width] \n" | 1705 "subl $0x8,%[width] \n" |
1706 "jg 1b \n" | 1706 "jg 1b \n" |
1707 : [y_buf]"+r"(y_buf), // %[y_buf] | 1707 : [y_buf]"+r"(y_buf), // %[y_buf] |
1708 [u_buf]"+r"(u_buf), // %[u_buf] | 1708 [u_buf]"+r"(u_buf), // %[u_buf] |
1709 [v_buf]"+r"(v_buf), // %[v_buf] | 1709 [v_buf]"+r"(v_buf), // %[v_buf] |
1710 [dst_rgb24]"+r"(dst_rgb24), // %[dst_rgb24] | 1710 [dst_rgb24]"+r"(dst_rgb24), // %[dst_rgb24] |
1711 #if defined(__i386__) && defined(__pic__) | 1711 #if defined(__i386__) |
1712 [width]"+m"(width) // %[width] | 1712 [width]"+m"(width) // %[width] |
1713 #else | 1713 #else |
1714 [width]"+rm"(width) // %[width] | 1714 [width]"+rm"(width) // %[width] |
1715 #endif | 1715 #endif |
1716 : [yuvconstants]"r"(yuvconstants), // %[yuvconstants] | 1716 : [yuvconstants]"r"(yuvconstants), // %[yuvconstants] |
1717 [kShuffleMaskARGBToRGB24_0]"m"(kShuffleMaskARGBToRGB24_0), | 1717 [kShuffleMaskARGBToRGB24_0]"m"(kShuffleMaskARGBToRGB24_0), |
1718 [kShuffleMaskARGBToRGB24]"m"(kShuffleMaskARGBToRGB24) | 1718 [kShuffleMaskARGBToRGB24]"m"(kShuffleMaskARGBToRGB24) |
1719 : "memory", "cc", NACL_R14 YUVTORGB_REGS | 1719 : "memory", "cc", NACL_R14 YUVTORGB_REGS |
1720 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6" | 1720 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6" |
1721 ); | 1721 ); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1765 READYUVA422 | 1765 READYUVA422 |
1766 YUVTORGB(yuvconstants) | 1766 YUVTORGB(yuvconstants) |
1767 STOREARGB | 1767 STOREARGB |
1768 "subl $0x8,%[width] \n" | 1768 "subl $0x8,%[width] \n" |
1769 "jg 1b \n" | 1769 "jg 1b \n" |
1770 : [y_buf]"+r"(y_buf), // %[y_buf] | 1770 : [y_buf]"+r"(y_buf), // %[y_buf] |
1771 [u_buf]"+r"(u_buf), // %[u_buf] | 1771 [u_buf]"+r"(u_buf), // %[u_buf] |
1772 [v_buf]"+r"(v_buf), // %[v_buf] | 1772 [v_buf]"+r"(v_buf), // %[v_buf] |
1773 [a_buf]"+r"(a_buf), // %[a_buf] | 1773 [a_buf]"+r"(a_buf), // %[a_buf] |
1774 [dst_argb]"+r"(dst_argb), // %[dst_argb] | 1774 [dst_argb]"+r"(dst_argb), // %[dst_argb] |
1775 #if defined(__i386__) && defined(__pic__) | 1775 #if defined(__i386__) |
1776 [width]"+m"(width) // %[width] | 1776 [width]"+m"(width) // %[width] |
1777 #else | 1777 #else |
1778 [width]"+rm"(width) // %[width] | 1778 [width]"+rm"(width) // %[width] |
1779 #endif | 1779 #endif |
1780 : [yuvconstants]"r"(yuvconstants) // %[yuvconstants] | 1780 : [yuvconstants]"r"(yuvconstants) // %[yuvconstants] |
1781 : "memory", "cc", NACL_R14 YUVTORGB_REGS | 1781 : "memory", "cc", NACL_R14 YUVTORGB_REGS |
1782 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5" | 1782 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5" |
1783 ); | 1783 ); |
1784 } | 1784 } |
1785 #endif // HAS_I422ALPHATOARGBROW_SSSE3 | 1785 #endif // HAS_I422ALPHATOARGBROW_SSSE3 |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2145 YUVTORGB_AVX2(yuvconstants) | 2145 YUVTORGB_AVX2(yuvconstants) |
2146 STOREARGB_AVX2 | 2146 STOREARGB_AVX2 |
2147 "subl $0x10,%[width] \n" | 2147 "subl $0x10,%[width] \n" |
2148 "jg 1b \n" | 2148 "jg 1b \n" |
2149 "vzeroupper \n" | 2149 "vzeroupper \n" |
2150 : [y_buf]"+r"(y_buf), // %[y_buf] | 2150 : [y_buf]"+r"(y_buf), // %[y_buf] |
2151 [u_buf]"+r"(u_buf), // %[u_buf] | 2151 [u_buf]"+r"(u_buf), // %[u_buf] |
2152 [v_buf]"+r"(v_buf), // %[v_buf] | 2152 [v_buf]"+r"(v_buf), // %[v_buf] |
2153 [a_buf]"+r"(a_buf), // %[a_buf] | 2153 [a_buf]"+r"(a_buf), // %[a_buf] |
2154 [dst_argb]"+r"(dst_argb), // %[dst_argb] | 2154 [dst_argb]"+r"(dst_argb), // %[dst_argb] |
2155 #if defined(__i386__) && defined(__pic__) | 2155 #if defined(__i386__) |
2156 [width]"+m"(width) // %[width] | 2156 [width]"+m"(width) // %[width] |
2157 #else | 2157 #else |
2158 [width]"+rm"(width) // %[width] | 2158 [width]"+rm"(width) // %[width] |
2159 #endif | 2159 #endif |
2160 : [yuvconstants]"r"(yuvconstants) // %[yuvconstants] | 2160 : [yuvconstants]"r"(yuvconstants) // %[yuvconstants] |
2161 : "memory", "cc", NACL_R14 YUVTORGB_REGS_AVX2 | 2161 : "memory", "cc", NACL_R14 YUVTORGB_REGS_AVX2 |
2162 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5" | 2162 "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5" |
2163 ); | 2163 ); |
2164 } | 2164 } |
2165 #endif // HAS_I422ALPHATOARGBROW_AVX2 | 2165 #endif // HAS_I422ALPHATOARGBROW_AVX2 |
(...skipping 3433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5599 ); | 5599 ); |
5600 } | 5600 } |
5601 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 | 5601 #endif // HAS_ARGBLUMACOLORTABLEROW_SSSE3 |
5602 | 5602 |
5603 #endif // defined(__x86_64__) || defined(__i386__) | 5603 #endif // defined(__x86_64__) || defined(__i386__) |
5604 | 5604 |
5605 #ifdef __cplusplus | 5605 #ifdef __cplusplus |
5606 } // extern "C" | 5606 } // extern "C" |
5607 } // namespace libyuv | 5607 } // namespace libyuv |
5608 #endif | 5608 #endif |
OLD | NEW |