From e23282704f3b731534167ee2c689bda574c49dca Mon Sep 17 00:00:00 2001 From: Frank Barchard Date: Mon, 11 May 2026 12:19:18 -0700 Subject: [PATCH] ARGBToYRow_AVX512BW preserve XMM6-XMM15 due to Windows stack alignment Bug: 505124541 Change-Id: Id5ae539f57b314980182bec76a788e33273b2392 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/7835639 Reviewed-by: richard winterton Reviewed-by: James Zern Commit-Queue: Frank Barchard --- README.chromium | 2 +- include/libyuv/version.h | 2 +- source/row_gcc.cc | 18 +++++++++--------- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/README.chromium b/README.chromium index 92d44bc8c..3e36b6704 100644 --- a/README.chromium +++ b/README.chromium @@ -1,6 +1,6 @@ Name: libyuv URL: https://chromium.googlesource.com/libyuv/libyuv/ -Version: 1937 +Version: 1938 Revision: DEPS License: BSD-3-Clause License File: LICENSE diff --git a/include/libyuv/version.h b/include/libyuv/version.h index f384c1efb..1a7808bc2 100644 --- a/include/libyuv/version.h +++ b/include/libyuv/version.h @@ -11,6 +11,6 @@ #ifndef INCLUDE_LIBYUV_VERSION_H_ #define INCLUDE_LIBYUV_VERSION_H_ -#define LIBYUV_VERSION 1937 +#define LIBYUV_VERSION 1938 #endif // INCLUDE_LIBYUV_VERSION_H_ diff --git a/source/row_gcc.cc b/source/row_gcc.cc index 767dc8605..6b44ed666 100644 --- a/source/row_gcc.cc +++ b/source/row_gcc.cc @@ -307,7 +307,7 @@ void RGBToARGBRow_AVX512BW(const uint8_t* src_raw, uint8_t* dst_argb, const uint "+r"(width) // %2 : "m"(kPermdRAWToARGB_AVX512BW), // %3 "m"(*shuffler) // %4 - : "memory", "cc", "rax", "k1", "zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6"); + : "memory", "cc", "rax", "k1", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6"); } void RAWToARGBRow_AVX512BW(const uint8_t* src_raw, uint8_t* dst_argb, int width) { @@ -1615,8 +1615,8 @@ void ARGBToYMatrixRow_AVX512BW(const uint8_t* src_argb, "+r"(width) // %2 : "r"(c), // %3 "m"(kPermdARGBToY_AVX512BW) // %4 - : "memory", "cc", "zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6", - "zmm7", "zmm16"); + : "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", + "xmm7", "xmm16"); } #endif @@ -1757,8 +1757,8 @@ void ARGBToUV444MatrixRow_AVX2(const uint8_t* src_argb, #endif : "r"(c), // %4 "m"(kPermdARGBToY_AVX) // %5 - : "memory", "cc", "ymm0", "ymm1", "ymm2", "ymm3", "ymm4", "ymm5", "ymm6", - "ymm7"); + : "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", + "xmm7"); } #endif // HAS_ARGBTOUV444ROW_AVX2 @@ -1837,8 +1837,8 @@ void ARGBToUV444MatrixRow_AVX512BW(const uint8_t* src_argb, #endif : "r"(c), // %4 "m"(kPermdARGBToY_AVX512BW) // %5 - : "memory", "cc", "zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6", - "zmm7", "zmm16"); + : "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", + "xmm7", "xmm16"); } #endif // HAS_ARGBTOUV444ROW_AVX512BW @@ -2298,8 +2298,8 @@ void ARGBToUVMatrixRow_AVX512BW(const uint8_t* src_argb, "m"(kShuffleAARRGGBB), // %6 "m"(kPermdARGBToY_AVX512BW), // %7 "m"(kPermdARGBToUV_AVX512BW) // %8 - : "memory", "cc", "zmm0", "zmm1", "zmm2", "zmm3", "zmm4", "zmm5", "zmm6", - "zmm7", "zmm16", "zmm17", "zmm18", "zmm19"); + : "memory", "cc", "xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", + "xmm7", "xmm16", "xmm17", "xmm18", "xmm19"); } void ARGBToUVRow_AVX512BW(const uint8_t* src_argb,