Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Unified Diff: source/row_gcc.cc

Issue 1461693004: fix for I411 build error on 32 bit x86 (Closed) Base URL: https://chromium.googlesource.com/libyuv/libyuv@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « include/libyuv/version.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: source/row_gcc.cc
diff --git a/source/row_gcc.cc b/source/row_gcc.cc
index 63577da10d891e5fd832e0ffce5f355724a0b5c6..0c8cf25d265770cb40d69fd83fed21902f7e91db 100644
--- a/source/row_gcc.cc
+++ b/source/row_gcc.cc
@@ -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"
);
}
« no previous file with comments | « include/libyuv/version.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698