mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2025-12-08 01:36:47 +08:00
fix for I411 build error on 32 bit x86
TBR=harrjin@google.com BUG=libyuv:525 Review URL: https://codereview.chromium.org/1461693004 .
This commit is contained in:
parent
528356a128
commit
b7dfb72559
@ -1,6 +1,6 @@
|
||||
Name: libyuv
|
||||
URL: http://code.google.com/p/libyuv/
|
||||
Version: 1542
|
||||
Version: 1543
|
||||
License: BSD
|
||||
License File: LICENSE
|
||||
|
||||
|
||||
@ -11,6 +11,6 @@
|
||||
#ifndef INCLUDE_LIBYUV_VERSION_H_ // NOLINT
|
||||
#define INCLUDE_LIBYUV_VERSION_H_
|
||||
|
||||
#define LIBYUV_VERSION 1542
|
||||
#define LIBYUV_VERSION 1543
|
||||
|
||||
#endif // INCLUDE_LIBYUV_VERSION_H_ NOLINT
|
||||
|
||||
@ -1525,11 +1525,11 @@ void RGBAToUVRow_SSSE3(const uint8* src_rgba0, int src_stride_rgba,
|
||||
// pinsrw fails with drmemory
|
||||
// __asm pinsrw xmm0, [esi], 0 /* U */
|
||||
// __asm pinsrw xmm1, [esi + edi], 0 /* V */
|
||||
#define READYUV411_EBX \
|
||||
"movzwl " MEMACCESS([u_buf]) ",%%ebx \n" \
|
||||
"movd %%ebx,%%xmm0 \n" \
|
||||
MEMOPREG(movzwl,0x00,[u_buf],[v_buf],1,ebx) " \n" \
|
||||
"movd %%ebx,%%xmm1 \n" \
|
||||
#define READYUV411_TEMP \
|
||||
"movzwl " MEMACCESS([u_buf]) ",%[temp] \n" \
|
||||
"movd %[temp],%%xmm0 \n" \
|
||||
MEMOPARG(movzwl,0x00,[u_buf],[v_buf],1,[temp]) " \n" \
|
||||
"movd %[temp],%%xmm1 \n" \
|
||||
"lea " MEMLEA(0x2, [u_buf]) ",%[u_buf] \n" \
|
||||
"punpcklbw %%xmm1,%%xmm0 \n" \
|
||||
"punpcklwd %%xmm0,%%xmm0 \n" \
|
||||
@ -1802,13 +1802,14 @@ void OMITFP I411ToARGBRow_SSSE3(const uint8* y_buf,
|
||||
uint8* dst_argb,
|
||||
const struct YuvConstants* yuvconstants,
|
||||
int width) {
|
||||
int temp = 0;
|
||||
asm volatile (
|
||||
YUVTORGB_SETUP(yuvconstants)
|
||||
"sub %[u_buf],%[v_buf] \n"
|
||||
"pcmpeqb %%xmm5,%%xmm5 \n"
|
||||
LABELALIGN
|
||||
"1: \n"
|
||||
READYUV411_EBX
|
||||
READYUV411_TEMP
|
||||
YUVTORGB(yuvconstants)
|
||||
STOREARGB
|
||||
"sub $0x8,%[width] \n"
|
||||
@ -1817,9 +1818,10 @@ void OMITFP I411ToARGBRow_SSSE3(const uint8* y_buf,
|
||||
[u_buf]"+r"(u_buf), // %[u_buf]
|
||||
[v_buf]"+r"(v_buf), // %[v_buf]
|
||||
[dst_argb]"+r"(dst_argb), // %[dst_argb]
|
||||
[temp]"+r"(temp), // %[temp]
|
||||
[width]"+rm"(width) // %[width]
|
||||
: [yuvconstants]"r"(yuvconstants) // %[yuvconstants]
|
||||
: "memory", "cc", "ebx", NACL_R14 YUVTORGB_REGS
|
||||
: "memory", "cc", NACL_R14 YUVTORGB_REGS
|
||||
"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5"
|
||||
);
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user