mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-07 09:16:48 +08:00
CopyRow_SSE2 ported to Nacl with munging removed
BUG=253 TESTED=libyuvTest.TestCopyPlane R=wuwang@google.com Review URL: https://webrtc-codereview.appspot.com/2060006 git-svn-id: http://libyuv.googlecode.com/svn/trunk@765 16f28f9a-4ce2-e073-06de-1de4eb20be90
This commit is contained in:
parent
1c710a0606
commit
c140b9d150
@ -1,6 +1,6 @@
|
||||
Name: libyuv
|
||||
URL: http://code.google.com/p/libyuv/
|
||||
Version: 764
|
||||
Version: 765
|
||||
License: BSD
|
||||
License File: LICENSE
|
||||
|
||||
|
||||
@ -67,6 +67,7 @@ extern "C" {
|
||||
#define HAS_ARGBTOYJROW_SSSE3
|
||||
#define HAS_ARGBTOYROW_SSSE3
|
||||
#define HAS_COPYROW_ERMS
|
||||
#define HAS_COPYROW_SSE2
|
||||
#define HAS_COPYROW_X86
|
||||
#define HAS_FIXEDDIV_X86
|
||||
#define HAS_I400TOARGBROW_SSE2
|
||||
@ -94,7 +95,6 @@ extern "C" {
|
||||
#define HAS_ARGBTOUVJROW_SSSE3
|
||||
#define HAS_BGRATOUVROW_SSSE3
|
||||
#define HAS_BGRATOYROW_SSSE3
|
||||
#define HAS_COPYROW_SSE2
|
||||
#define HAS_HALFROW_SSE2
|
||||
#define HAS_I411TOARGBROW_SSSE3
|
||||
#define HAS_I422TOABGRROW_SSSE3
|
||||
@ -133,8 +133,6 @@ extern "C" {
|
||||
#define HAS_YUY2TOUV422ROW_SSE2
|
||||
#define HAS_YUY2TOUVROW_SSE2
|
||||
#define HAS_YUY2TOYROW_SSE2
|
||||
|
||||
// Effects:
|
||||
#endif
|
||||
|
||||
// The following are Windows only:
|
||||
|
||||
@ -11,6 +11,6 @@
|
||||
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
|
||||
#define INCLUDE_LIBYUV_VERSION_H_
|
||||
|
||||
#define LIBYUV_VERSION 764
|
||||
#define LIBYUV_VERSION 765
|
||||
|
||||
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
|
||||
|
||||
@ -3034,14 +3034,14 @@ void MergeUVRow_Unaligned_SSE2(const uint8* src_u, const uint8* src_v,
|
||||
#ifdef HAS_COPYROW_SSE2
|
||||
void CopyRow_SSE2(const uint8* src, uint8* dst, int count) {
|
||||
asm volatile (
|
||||
"sub %0,%1 \n"
|
||||
".p2align 4 \n"
|
||||
"1: \n"
|
||||
"movdqa (%0),%%xmm0 \n"
|
||||
"movdqa 0x10(%0),%%xmm1 \n"
|
||||
"movdqa %%xmm0,(%0,%1) \n"
|
||||
"movdqa %%xmm1,0x10(%0,%1) \n"
|
||||
"lea 0x20(%0),%0 \n"
|
||||
"movdqa "MEMACCESS(0)",%%xmm0 \n"
|
||||
"movdqa "MEMACCESS2(0x10,0)",%%xmm1 \n"
|
||||
"lea "MEMLEA(0x20,0)",%0 \n"
|
||||
"movdqa %%xmm0,"MEMACCESS(1)" \n"
|
||||
"movdqa %%xmm1,"MEMACCESS2(0x10,1)" \n"
|
||||
"lea "MEMLEA(0x20,1)",%1 \n"
|
||||
"sub $0x20,%2 \n"
|
||||
"jg 1b \n"
|
||||
: "+r"(src), // %0
|
||||
|
||||
@ -3585,15 +3585,15 @@ void CopyRow_SSE2(const uint8* src, uint8* dst, int count) {
|
||||
mov eax, [esp + 4] // src
|
||||
mov edx, [esp + 8] // dst
|
||||
mov ecx, [esp + 12] // count
|
||||
sub edx, eax
|
||||
|
||||
align 16
|
||||
convertloop:
|
||||
movdqa xmm0, [eax]
|
||||
movdqa xmm1, [eax + 16]
|
||||
movdqa [eax + edx], xmm0
|
||||
movdqa [eax + edx + 16], xmm1
|
||||
lea eax, [eax + 32]
|
||||
movdqa [edx], xmm0
|
||||
movdqa [edx + 16], xmm1
|
||||
lea edx, [edx + 32]
|
||||
sub ecx, 32
|
||||
jg convertloop
|
||||
ret
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user