From ff633bc5d55a309122d306a83d09a4362de28b65 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Wed, 3 Dec 2025 15:19:40 +0000 Subject: [PATCH] include/aarch64/host: Fix atomic16_fetch_{and,or} MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The tmp[lh] variables were defined as inputs to the asm rather than outputs, which meant that the compiler rightly diagnosed uninitialized inputs. Reported-by: Philippe Mathieu-Daudé Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé Signed-off-by: Richard Henderson --- host/include/aarch64/host/atomic128-cas.h.inc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/host/include/aarch64/host/atomic128-cas.h.inc b/host/include/aarch64/host/atomic128-cas.h.inc index aec27df1820..52e98a0bdd7 100644 --- a/host/include/aarch64/host/atomic128-cas.h.inc +++ b/host/include/aarch64/host/atomic128-cas.h.inc @@ -67,9 +67,9 @@ static inline Int128 atomic16_fetch_and(Int128 *ptr, Int128 new) "stlxp %w[tmp], %[tmpl], %[tmph], %[mem]\n\t" "cbnz %w[tmp], 0b" : [mem] "+m"(*ptr), [tmp] "=&r"(tmp), - [oldl] "=&r"(oldl), [oldh] "=&r"(oldh) - : [newl] "r"(newl), [newh] "r"(newh), - [tmpl] "r"(tmpl), [tmph] "r"(tmph) + [oldl] "=&r"(oldl), [oldh] "=&r"(oldh), + [tmpl] "=&r"(tmpl), [tmph] "=&r"(tmph) + : [newl] "r"(newl), [newh] "r"(newh) : "memory"); return int128_make128(oldl, oldh); @@ -87,9 +87,9 @@ static inline Int128 atomic16_fetch_or(Int128 *ptr, Int128 new) "stlxp %w[tmp], %[tmpl], %[tmph], %[mem]\n\t" "cbnz %w[tmp], 0b" : [mem] "+m"(*ptr), [tmp] "=&r"(tmp), - [oldl] "=&r"(oldl), [oldh] "=&r"(oldh) - : [newl] "r"(newl), [newh] "r"(newh), - [tmpl] "r"(tmpl), [tmph] "r"(tmph) + [oldl] "=&r"(oldl), [oldh] "=&r"(oldh), + [tmpl] "=&r"(tmpl), [tmph] "=&r"(tmph) + : [newl] "r"(newl), [newh] "r"(newh) : "memory"); return int128_make128(oldl, oldh); -- 2.47.3