Commit be11f500 authored by Frank Barchard's avatar Frank Barchard

Use ebp to point to conversion table.

Proof of concept that conversions can table color matrix as a parameter.

R=harryjin@google.com

BUG=libyuv:472, libyuv:488

Review URL: https://webrtc-codereview.appspot.com/58489004.
parent 3c4f5735
Name: libyuv Name: libyuv
URL: http://code.google.com/p/libyuv/ URL: http://code.google.com/p/libyuv/
Version: 1474 Version: 1475
License: BSD License: BSD
License File: LICENSE License File: LICENSE
......
...@@ -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 1474 #define LIBYUV_VERSION 1475
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT #endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
...@@ -2701,22 +2701,25 @@ void I422ToARGBRow_SSSE3(const uint8* y_buf, ...@@ -2701,22 +2701,25 @@ void I422ToARGBRow_SSSE3(const uint8* y_buf,
__asm { __asm {
push esi push esi
push edi push edi
mov eax, [esp + 8 + 4] // Y push ebp
mov esi, [esp + 8 + 8] // U mov eax, [esp + 12 + 4] // Y
mov edi, [esp + 8 + 12] // V mov esi, [esp + 12 + 8] // U
mov edx, [esp + 8 + 16] // argb mov edi, [esp + 12 + 12] // V
mov ecx, [esp + 8 + 20] // width mov edx, [esp + 12 + 16] // argb
mov ecx, [esp + 12 + 20] // width
lea ebp, kYuvConstants
sub edi, esi sub edi, esi
pcmpeqb xmm5, xmm5 // generate 0xffffffff for alpha pcmpeqb xmm5, xmm5 // generate 0xffffffff for alpha
convertloop: convertloop:
READYUV422 READYUV422
YUVTORGB(kYuvConstants) YUVTORGB(ebp)
STOREARGB STOREARGB
sub ecx, 8 sub ecx, 8
jg convertloop jg convertloop
pop ebp
pop edi pop edi
pop esi pop esi
ret ret
......
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