On 4/30/25 23:23, Pierrick Bouvier wrote:
Signed-off-by: Pierrick Bouvier <pierrick.bouv...@linaro.org>
---
target/arm/ptw.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/target/arm/ptw.c b/target/arm/ptw.c
index 424d1b54275..f428c9b9267 100644
--- a/target/arm/ptw.c
+++ b/target/arm/ptw.c
@@ -737,7 +737,14 @@ static uint64_t arm_casq_ptw(CPUARMState *env, uint64_t
old_val,
uint64_t new_val, S1Translate *ptw,
ARMMMUFaultInfo *fi)
{
-#if defined(TARGET_AARCH64) && defined(CONFIG_TCG)
+#ifndef CONFIG_TCG
+ /* non-TCG guests only use debug-mode. */
+ g_assert_not_reached();
+#endif
+
+ /* AArch32 does not have FEAT_HADFS */
+ g_assert(arm_feature(env, ARM_FEATURE_AARCH64));
+
I don't think we need an assert here.
The ifdef for aarch64 also protects the qatomic_cmpxchg__nocheck below, because aarch64
guest can only be built with a 64-bit host.
Are we still able to build qemu-system-arm on a 32-bit host with these changes? It may be
tricky to check, because the two easiest 32-bit hosts (i686, armv7) also happen to have a
64-bit cmpxchg. I think "make docker-test-build@debian-mipsel-cross" will be the right test.
If that fails, I think you could s/TARGET_AARCH64/CONFIG_ATOMIC64/ here.
r~