From: Catherine Ho Date: Wed, 30 Jan 2019 08:59:54 +0000 (-0500) Subject: tcg: add early clober modifier in atomic16_cmpxchg on aarch64 X-Git-Tag: v4.0.0-rc0~113^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7400d6938c6d455c4eba2b80c06d60c8fa5c5ba3;p=thirdparty%2Fqemu.git tcg: add early clober modifier in atomic16_cmpxchg on aarch64 Without this patch, gcc might up the Input/Output registers and cause unpredictable error. Fixes: 1ec182c33379 ("target/arm: Convert to HAVE_CMPXCHG128") Signed-off-by: Catherine Ho Message-Id: <1548838794-23757-1-git-send-email-catherine.hecx@gmail.com> Signed-off-by: Richard Henderson --- diff --git a/include/qemu/atomic128.h b/include/qemu/atomic128.h index a6af22ff109..ddd0d55d31c 100644 --- a/include/qemu/atomic128.h +++ b/include/qemu/atomic128.h @@ -68,7 +68,7 @@ static inline Int128 atomic16_cmpxchg(Int128 *ptr, Int128 cmp, Int128 new) "cbnz %w[tmp], 0b\n" "1:" : [mem] "+m"(*ptr), [tmp] "=&r"(tmp), - [oldl] "=&r"(oldl), [oldh] "=r"(oldh) + [oldl] "=&r"(oldl), [oldh] "=&r"(oldh) : [cmpl] "r"(cmpl), [cmph] "r"(cmph), [newl] "r"(newl), [newh] "r"(newh) : "memory", "cc");