From cdbdf5b7237e9c720e57c9b7a0c7211094feddd1 Mon Sep 17 00:00:00 2001 From: Frank Barchard Date: Wed, 28 Oct 2015 14:27:29 -0700 Subject: [PATCH] Fix debug compilation problems for gcc and 32 bit x86. In some methods with 7 arguments gcc fails to find enough registers to compile the assembler code when compiling debug. Simplest solution is to skip the assembler version in debug of those particular functions (I422Alpha -> ARBG/ABGR) R=harryjin@google.com,bratell@opera.com BUG=libyuv:517 Review URL: https://codereview.chromium.org/1423283002 . --- include/libyuv/row.h | 12 ++++++++++-- source/row_gcc.cc | 2 ++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/libyuv/row.h b/include/libyuv/row.h index b0483c1c1..061e9ab7a 100644 --- a/include/libyuv/row.h +++ b/include/libyuv/row.h @@ -107,7 +107,11 @@ extern "C" { #define HAS_H422TOARGBROW_SSSE3 #define HAS_I400TOARGBROW_SSE2 #define HAS_I411TOARGBROW_SSSE3 -#define HAS_I422ALPHATOARGBROW_SSSE3 + +// TODO(fbarchard): fix build error on android_full_debug=1 +// https://code.google.com/p/libyuv/issues/detail?id=517 +// #define HAS_I422ALPHATOARGBROW_SSSE3 + #define HAS_I422TOABGRROW_SSSE3 #define HAS_I422TOARGB1555ROW_SSSE3 #define HAS_I422TOARGB4444ROW_SSSE3 @@ -198,7 +202,11 @@ extern "C" { #define HAS_H422TOABGRROW_AVX2 #define HAS_H422TOARGBROW_AVX2 #define HAS_I400TOARGBROW_AVX2 -#define HAS_I422ALPHATOARGBROW_AVX2 + +// TODO(fbarchard): fix build error on android_full_debug=1 +// https://code.google.com/p/libyuv/issues/detail?id=517 +// #define HAS_I422ALPHATOARGBROW_AVX2 + #define HAS_I422TOABGRROW_AVX2 #define HAS_I422TOARGBROW_AVX2 #define HAS_I422TOBGRAROW_AVX2 diff --git a/source/row_gcc.cc b/source/row_gcc.cc index 9c2123044..6efae28f2 100644 --- a/source/row_gcc.cc +++ b/source/row_gcc.cc @@ -1734,6 +1734,7 @@ void OMITFP I422ToARGBRow_SSSE3(const uint8* y_buf, ); } +#ifdef HAS_I422ALPHATOARGBROW_SSSE3 void OMITFP I422AlphaToARGBRow_SSSE3(const uint8* y_buf, const uint8* u_buf, const uint8* v_buf, @@ -1765,6 +1766,7 @@ void OMITFP I422AlphaToARGBRow_SSSE3(const uint8* y_buf, "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5" ); } +#endif // HAS_I422ALPHATOARGBROW_SSSE3 void OMITFP I411ToARGBRow_SSSE3(const uint8* y_buf, const uint8* u_buf,