Commit acce9ed4 authored by fbarchard@google.com's avatar fbarchard@google.com

Nacl port of Polynomial

BUG=265
TESTED=untested
R=nfullagar@google.com

Review URL: https://webrtc-codereview.appspot.com/2196009

git-svn-id: http://libyuv.googlecode.com/svn/trunk@787 16f28f9a-4ce2-e073-06de-1de4eb20be90
parent c3b04796
Name: libyuv Name: libyuv
URL: http://code.google.com/p/libyuv/ URL: http://code.google.com/p/libyuv/
Version: 786 Version: 787
License: BSD License: BSD
License File: LICENSE License File: LICENSE
......
...@@ -47,6 +47,7 @@ extern "C" { ...@@ -47,6 +47,7 @@ extern "C" {
#define HAS_ARGBGRAYROW_SSSE3 #define HAS_ARGBGRAYROW_SSSE3
#define HAS_ARGBMIRRORROW_SSSE3 #define HAS_ARGBMIRRORROW_SSSE3
#define HAS_ARGBMULTIPLYROW_SSE2 #define HAS_ARGBMULTIPLYROW_SSE2
#define HAS_ARGBPOLYNOMIALROW_SSE2
#define HAS_ARGBQUANTIZEROW_SSE2 #define HAS_ARGBQUANTIZEROW_SSE2
#define HAS_ARGBSEPIAROW_SSSE3 #define HAS_ARGBSEPIAROW_SSSE3
#define HAS_ARGBSHADEROW_SSE2 #define HAS_ARGBSHADEROW_SSE2
...@@ -98,7 +99,6 @@ extern "C" { ...@@ -98,7 +99,6 @@ extern "C" {
// Conversions: // Conversions:
#define HAS_ARGB1555TOARGBROW_SSE2 #define HAS_ARGB1555TOARGBROW_SSE2
#define HAS_ARGB4444TOARGBROW_SSE2 #define HAS_ARGB4444TOARGBROW_SSE2
#define HAS_ARGBPOLYNOMIALROW_SSE2
#define HAS_ARGBTOARGB1555ROW_SSE2 #define HAS_ARGBTOARGB1555ROW_SSE2
#define HAS_ARGBTOARGB4444ROW_SSE2 #define HAS_ARGBTOARGB4444ROW_SSE2
#define HAS_ARGBTORAWROW_SSSE3 #define HAS_ARGBTORAWROW_SSSE3
...@@ -144,7 +144,7 @@ extern "C" { ...@@ -144,7 +144,7 @@ extern "C" {
// Effects: // Effects:
#define HAS_ARGBCOLORTABLEROW_X86 #define HAS_ARGBCOLORTABLEROW_X86
#define HAS_RGBCOLORTABLEROW_X86 #define HAS_RGBCOLORTABLEROW_X86
#define HAS_ARGBLUMACOLORTABLEROW_SSE2 //#define HAS_ARGBLUMACOLORTABLEROW_SSSE3
// Caveat: Visual C 2012 required for AVX2. // Caveat: Visual C 2012 required for AVX2.
#if _MSC_VER >= 1700 #if _MSC_VER >= 1700
......
...@@ -11,6 +11,6 @@ ...@@ -11,6 +11,6 @@
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT #ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
#define INCLUDE_LIBYUV_VERSION_H_ #define INCLUDE_LIBYUV_VERSION_H_
#define LIBYUV_VERSION 786 #define LIBYUV_VERSION 787
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
...@@ -5827,8 +5827,8 @@ void ARGBPolynomialRow_SSE2(const uint8* src_argb, ...@@ -5827,8 +5827,8 @@ void ARGBPolynomialRow_SSE2(const uint8* src_argb,
// 2 pixel loop. // 2 pixel loop.
".p2align 4 \n" ".p2align 4 \n"
"1: \n" "1: \n"
"movq (%0),%%xmm0 \n" "movq "MEMACCESS(0)",%%xmm0 \n"
"lea 0x8(%0),%0 \n" "lea "MEMLEA(0x8,0)",%0 \n"
"punpcklbw %%xmm3,%%xmm0 \n" "punpcklbw %%xmm3,%%xmm0 \n"
"movdqa %%xmm0,%%xmm4 \n" "movdqa %%xmm0,%%xmm4 \n"
"punpcklwd %%xmm3,%%xmm0 \n" "punpcklwd %%xmm3,%%xmm0 \n"
...@@ -5837,20 +5837,20 @@ void ARGBPolynomialRow_SSE2(const uint8* src_argb, ...@@ -5837,20 +5837,20 @@ void ARGBPolynomialRow_SSE2(const uint8* src_argb,
"cvtdq2ps %%xmm4,%%xmm4 \n" "cvtdq2ps %%xmm4,%%xmm4 \n"
"movdqa %%xmm0,%%xmm1 \n" "movdqa %%xmm0,%%xmm1 \n"
"movdqa %%xmm4,%%xmm5 \n" "movdqa %%xmm4,%%xmm5 \n"
"mulps 0x10(%3),%%xmm0 \n" "mulps "MEMACCESS2(0x10,3)",%%xmm0 \n"
"mulps 0x10(%3),%%xmm4 \n" "mulps "MEMACCESS2(0x10,3)",%%xmm4 \n"
"addps (%3),%%xmm0 \n" "addps "MEMACCESS(3)",%%xmm0 \n"
"addps (%3),%%xmm4 \n" "addps "MEMACCESS(3)",%%xmm4 \n"
"movdqa %%xmm1,%%xmm2 \n" "movdqa %%xmm1,%%xmm2 \n"
"movdqa %%xmm5,%%xmm6 \n" "movdqa %%xmm5,%%xmm6 \n"
"mulps %%xmm1,%%xmm2 \n" "mulps %%xmm1,%%xmm2 \n"
"mulps %%xmm5,%%xmm6 \n" "mulps %%xmm5,%%xmm6 \n"
"mulps %%xmm2,%%xmm1 \n" "mulps %%xmm2,%%xmm1 \n"
"mulps %%xmm6,%%xmm5 \n" "mulps %%xmm6,%%xmm5 \n"
"mulps 0x20(%3),%%xmm2 \n" "mulps "MEMACCESS2(0x20,3)",%%xmm2 \n"
"mulps 0x20(%3),%%xmm6 \n" "mulps "MEMACCESS2(0x20,3)",%%xmm6 \n"
"mulps 0x30(%3),%%xmm1 \n" "mulps "MEMACCESS2(0x30,3)",%%xmm1 \n"
"mulps 0x30(%3),%%xmm5 \n" "mulps "MEMACCESS2(0x30,3)",%%xmm5 \n"
"addps %%xmm2,%%xmm0 \n" "addps %%xmm2,%%xmm0 \n"
"addps %%xmm6,%%xmm4 \n" "addps %%xmm6,%%xmm4 \n"
"addps %%xmm1,%%xmm0 \n" "addps %%xmm1,%%xmm0 \n"
...@@ -5860,8 +5860,8 @@ void ARGBPolynomialRow_SSE2(const uint8* src_argb, ...@@ -5860,8 +5860,8 @@ void ARGBPolynomialRow_SSE2(const uint8* src_argb,
"packuswb %%xmm4,%%xmm0 \n" "packuswb %%xmm4,%%xmm0 \n"
"packuswb %%xmm0,%%xmm0 \n" "packuswb %%xmm0,%%xmm0 \n"
"sub $0x2,%2 \n" "sub $0x2,%2 \n"
"movq %%xmm0,(%1) \n" "movq %%xmm0,"MEMACCESS(1)" \n"
"lea 0x8(%1),%1 \n" "lea "MEMLEA(0x8,1)",%1 \n"
"jg 1b \n" "jg 1b \n"
: "+r"(src_argb), // %0 : "+r"(src_argb), // %0
"+r"(dst_argb), // %1 "+r"(dst_argb), // %1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment