From b7d97d5f3f8f897b88872b6935e4c996b955bc1f Mon Sep 17 00:00:00 2001 From: George Steed Date: Tue, 5 Aug 2025 16:51:40 +0100 Subject: [PATCH] [AArch64] Fix compilation due to incorrect register constraint The y0_fraction and y1_fraction variables in InterpolateRow_NEON were marked as modified by the inline-asm block, however 5eea7812826c551559fdcd4a6988fcf1fbe341f6 marked these variables as `const` which caused both LLVM and GCC to emit errors about modification of const variables. There is no need for these variables to be modified in the loop since they are read-only, so simply update the inline asm block constraints to match. Change-Id: I94ca3696c4163ede6ad27d645f0f445fcfb0a1c3 Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/6818289 Reviewed-by: Justin Green Reviewed-by: Frank Barchard --- source/row_neon64.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/source/row_neon64.cc b/source/row_neon64.cc index 1f0d6e164..c0fdc6d0d 100644 --- a/source/row_neon64.cc +++ b/source/row_neon64.cc @@ -4032,13 +4032,12 @@ void InterpolateRow_NEON(uint8_t* dst_ptr, "b.gt 100b \n" "99: \n" - : "+r"(dst_ptr), // %0 - "+r"(src_ptr), // %1 - "+r"(src_ptr1), // %2 - "+r"(dst_width), // %3 - "+r"(y1_fraction), // %4 - "+r"(y0_fraction) // %5 - : + : "+r"(dst_ptr), // %0 + "+r"(src_ptr), // %1 + "+r"(src_ptr1), // %2 + "+r"(dst_width) // %3 + : "r"(y1_fraction), // %4 + "r"(y0_fraction) // %5 : "cc", "memory", "v0", "v1", "v3", "v4", "v5"); }