From nobody Wed Apr  2 05:28:12 2025
Delivered-To: importer@patchew.org
Authentication-Results: mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass(p=none dis=none)  header.from=linaro.org
ARC-Seal: i=1; a=rsa-sha256; t=1742580997; cv=none;
	d=zohomail.com; s=zohoarc;
	b=frdIc6Ajg6+Zyftz4Zqt5kXc7U1qtp7HYEfF9Wq9Bz9ppISunwQ2HmHosmhgrKjkxKVHvaXJTaMITYmScQpJag+FPQ6Mt60ISP64Xa+1wxaf2dO48I5DmPsitG4geqLGSHoFRnSEiqMMzUqSeB7EJFu55N3Hw7q7Lir3c4lW1ro=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;
 s=zohoarc;
	t=1742580997;
 h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To;
	bh=hDYLQeEzwKvti/AAv4oJ1/mMbnXRlKRnnyKbgiaN8yY=;
	b=NeorBVgCXsZSsH5GbnFj2r3B9zj+K2Md/aIBC2xR7/JkDMFetRUiEYd0KtbgSURqgvO4ZEfuX+DqRksuURPJGSvCyn4+S8jmg/xgCBdNWW7Typ/7jUh1iUPtCM23dDx+ZPr13Zxr5T3J1LmNeOVLgYHl+bO9Sy4zkCARQk3ucHY=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass header.from=<philmd@linaro.org> (p=none dis=none)
Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org>
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by
 mx.zohomail.com
	with SMTPS id 1742580996999661.5887090078015;
 Fri, 21 Mar 2025 11:16:36 -0700 (PDT)
Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <qemu-devel-bounces@nongnu.org>)
	id 1tvgui-000876-Ng; Fri, 21 Mar 2025 14:16:13 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguY-000862-4S
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:02 -0400
Received: from mail-wm1-x330.google.com ([2a00:1450:4864:20::330])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguW-0008BP-4x
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:01 -0400
Received: by mail-wm1-x330.google.com with SMTP id
 5b1f17b1804b1-43d07ca6a80so11328885e9.1
 for <qemu-devel@nongnu.org>; Fri, 21 Mar 2025 11:15:59 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3997f9e65besm3004863f8f.65.2025.03.21.11.15.56
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Fri, 21 Mar 2025 11:15:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=linaro.org; s=google; t=1742580957; x=1743185757; darn=nongnu.org;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=hDYLQeEzwKvti/AAv4oJ1/mMbnXRlKRnnyKbgiaN8yY=;
 b=ybM/cJ8/cw7Ne4aDiO/LdR+6sbSKxcAJXOxyO7UUiz8OIs6G46AQIbasl7pvF/uzJn
 Eo3EdcbA6wBQXm9/t89iV8Xkls17INsHUT29P+4NDu9pMhWUbTZTgpNannF3oPVGX8G+
 icdZXMo278BnURMbEDLRbBO5UOvhByxDQQlkOKyKWERjEYzMsuECQzi7kkpvBOmnbIP3
 +69FfD9j/Zfweq9fwvU3vmOK2D0TnlCHAdSEoHbJ53sdMHULWpqyt1lfYvQxqi3nFRt2
 kueXY4J4wRC8Bpj2R48c6qwvTV+1YSJ7MjPIqNz0qv1GlWZQwCyT3Y17sn5zsYhF5XqC
 641w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742580957; x=1743185757;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=hDYLQeEzwKvti/AAv4oJ1/mMbnXRlKRnnyKbgiaN8yY=;
 b=LZ5tVa/Sh3mbhirZD+nC6jyANPpDfnkyfir/hMImPXCN/PNA8kbERQZGR1xDDVwmpg
 RvErMW+hfwOwcUczgYobgWjM1amD63TwNt1lbCjn+M7exlPc+5zZhJM3RDz/mB++xxnV
 VrFW7b6+UysB/DDQinvAOqDmJ7FwKa71N6jwr39lR7JjajbPwspG+TTmU1EsKkew3KPJ
 4fzw89GtlXG9UqOaAVJPeb9pP5QaBmOR2sS1Flg5ok3wBLWwH3JL/RF6dILTFfTFEyYy
 6bg1hYNBKiu2py3/U+cjt3sjJVwBN4ctOaol0RMSMC52YAXNveYmeKjtDk/i4Eb1/A5C
 HIpA==
X-Gm-Message-State: AOJu0YznNYjx6BTMLWjlCy6CcqdV5VUSlWDlBuUNggOeunFwGj5f0A7T
 /iXCCNBimATzv0gC4wezQWtjT1EQBTR60fxcaw9LHvxWYEh41UeYhJnj0zUVB7cMtdNWA61uQ7K
 u
X-Gm-Gg: ASbGncvGmOkO3qftRr2xcolszINZ8GU2WR6CX42LjtlOgiOwuCjBy7Vo0p7VsD+7zBq
 Q+RZW2qp/hdClEM1H/beS8D2w6a6xszbWl57BNxf6mSzVIDIqF0NWo0tqq5XOI7sEB6BdRvddaL
 udy70yJuhrpHZJX1QX2lbIwAy8cY/aMppvCl9V2MRijtnFIz5rkWKHgpxQLZRyJnNegIcJ8UcnI
 9lBz4fLL026V2t7CQpCDbxAj4rIg4CaGLIIszu8u8QMMqWvOntmSsU7BKN92eqBYc/ACnYZxgmg
 V4GewdkwLEppMGRaHv1sg2z3zr4jSdZymrKtxd8RAxxY2UiiBUZxyiPLiKJQeqmX1xF1RWk/Aux
 G5XqbeNEuopzm/c0Vssw=
X-Google-Smtp-Source: 
 AGHT+IE47HtKiaoYpWKT3wwixHDdaoB3pjhiZhg4zFey8S0/ytP6D/1tKWYdwzYPdDcq2KgS/3KL+A==
X-Received: by 2002:a05:6000:2b10:b0:391:401f:bfd8 with SMTP id
 ffacd0b85a97d-3997f939a54mr3319477f8f.55.1742580957278;
 Fri, 21 Mar 2025 11:15:57 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org,
	Richard Henderson <richard.henderson@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
 Pierrick Bouvier <pierrick.bouvier@linaro.org>,
 =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Anton Johansson <anjo@rev.ng>,
 =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH-for-10.1 v2 1/7] tcg: Always define TCG_GUEST_DEFAULT_MO
Date: Fri, 21 Mar 2025 19:15:43 +0100
Message-ID: <20250321181549.3331-2-philmd@linaro.org>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <20250321181549.3331-1-philmd@linaro.org>
References: <20250321181549.3331-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17
 as permitted sender) client-ip=209.51.188.17;
 envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org;
 helo=lists.gnu.org;
Received-SPF: pass client-ip=2a00:1450:4864:20::330;
 envelope-from=philmd@linaro.org; helo=mail-wm1-x330.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: qemu-devel@nongnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <qemu-devel.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>
List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel>
List-Post: <mailto:qemu-devel@nongnu.org>
List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>
Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org
Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org
X-ZohoMail-DKIM: pass (identity @linaro.org)
X-ZM-MESSAGEID: 1742580997780019000

We only require the TCG_GUEST_DEFAULT_MO for MTTCG-enabled
frontends, otherwise we use a default value of TCG_MO_ALL.

In order to simplify, require the definition for all targets,
defining it for hexagon, m68k, rx, sh4 and tricore.

Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
Reviewed-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
 target/hexagon/cpu-param.h | 3 +++
 target/m68k/cpu-param.h    | 3 +++
 target/rx/cpu-param.h      | 3 +++
 target/sh4/cpu-param.h     | 3 +++
 target/tricore/cpu-param.h | 3 +++
 accel/tcg/translate-all.c  | 4 ----
 6 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h
index 45ee7b46409..2d57ea6caf9 100644
--- a/target/hexagon/cpu-param.h
+++ b/target/hexagon/cpu-param.h
@@ -23,4 +23,7 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 36
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
=20
+/* MTTCG not yet supported: require strict ordering */
+#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
+
 #endif
diff --git a/target/m68k/cpu-param.h b/target/m68k/cpu-param.h
index 7afbf6d302d..1a909eaa13e 100644
--- a/target/m68k/cpu-param.h
+++ b/target/m68k/cpu-param.h
@@ -17,4 +17,7 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
=20
+/* MTTCG not yet supported: require strict ordering */
+#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
+
 #endif
diff --git a/target/rx/cpu-param.h b/target/rx/cpu-param.h
index ef1970a09e9..2ce199164d7 100644
--- a/target/rx/cpu-param.h
+++ b/target/rx/cpu-param.h
@@ -24,4 +24,7 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
=20
+/* MTTCG not yet supported: require strict ordering */
+#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
+
 #endif
diff --git a/target/sh4/cpu-param.h b/target/sh4/cpu-param.h
index 2b6e11dd0ac..1bc90d4695e 100644
--- a/target/sh4/cpu-param.h
+++ b/target/sh4/cpu-param.h
@@ -16,4 +16,7 @@
 # define TARGET_VIRT_ADDR_SPACE_BITS 32
 #endif
=20
+/* MTTCG not yet supported: require strict ordering */
+#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
+
 #endif
diff --git a/target/tricore/cpu-param.h b/target/tricore/cpu-param.h
index 790242ef3d2..923459370cc 100644
--- a/target/tricore/cpu-param.h
+++ b/target/tricore/cpu-param.h
@@ -12,4 +12,7 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
=20
+/* MTTCG not yet supported: require strict ordering */
+#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
+
 #endif
diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index 82bc16bd535..fb9f83dbba3 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -349,11 +349,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
     tcg_ctx->tlb_dyn_max_bits =3D CPU_TLB_DYN_MAX_BITS;
 #endif
     tcg_ctx->insn_start_words =3D TARGET_INSN_START_WORDS;
-#ifdef TCG_GUEST_DEFAULT_MO
     tcg_ctx->guest_mo =3D TCG_GUEST_DEFAULT_MO;
-#else
-    tcg_ctx->guest_mo =3D TCG_MO_ALL;
-#endif
=20
  restart_translate:
     trace_translate_block(tb, pc, tb->tc.ptr);
--=20
2.47.1


From nobody Wed Apr  2 05:28:12 2025
Delivered-To: importer@patchew.org
Authentication-Results: mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass(p=none dis=none)  header.from=linaro.org
ARC-Seal: i=1; a=rsa-sha256; t=1742581066; cv=none;
	d=zohomail.com; s=zohoarc;
	b=NYcs1LuEGcBHluhDzf9hJjuVDGw/+6axyNysMKH2YOmu45L4GvZ7ElOtAxQe68s6RLopSDrCpmapnYb8DsGXkD0MNLjbaEuVMZPz6QTn5y11DFIfH80CSg9URhskTx6wFa4S7eeTikwXaucH1OC06sJvmCETp/65+0LygN+wsQU=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;
 s=zohoarc;
	t=1742581066;
 h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To;
	bh=P3gKBXZln9nMsOOdNbaWiLIoe8aJQ76mDsXOYG6g2pk=;
	b=VxihcmF5CfRT6Nl1BEQZcxy7ZDvOuTZIQVMxyQphJgojjVVXWMBTFNNshU3udJRvAzGWOD173uevANxtImVCqaDqFVQXDBr/XJSWwbpa2AXW7XFW+UWxKmZFbYMEEb54qvZzXw2a6NtXpPhHEyDEbTpY/InkVXt+d49uYlhkjHA=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass header.from=<philmd@linaro.org> (p=none dis=none)
Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org>
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by
 mx.zohomail.com
	with SMTPS id 1742581066280231.32441338472916;
 Fri, 21 Mar 2025 11:17:46 -0700 (PDT)
Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <qemu-devel-bounces@nongnu.org>)
	id 1tvgup-00089R-5J; Fri, 21 Mar 2025 14:16:19 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguh-00087I-Qg
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:12 -0400
Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguc-0008O7-EC
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:11 -0400
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-4393dc02b78so15763885e9.3
 for <qemu-devel@nongnu.org>; Fri, 21 Mar 2025 11:16:04 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43d43f332adsm85183635e9.3.2025.03.21.11.16.01
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Fri, 21 Mar 2025 11:16:01 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=linaro.org; s=google; t=1742580962; x=1743185762; darn=nongnu.org;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=P3gKBXZln9nMsOOdNbaWiLIoe8aJQ76mDsXOYG6g2pk=;
 b=wvcYqtDTM4O08FAznAdHGWTcKpb8MBGRheJjAxJAkRudT2U7VOZGVmCBHUplBLnVxW
 S+70YaA2365WFnOaSXAc5288pAMUUX7K13tWwk1Ta+jHquD1fXpk8JNRrGubYB4U8CJt
 60S6ohvSCNCIMGaIaX1Ku7XFB3gZAcVVjjJSj0dYMZgRB3sH+QtfOKLFSPCPisEYwkd3
 lzRmWtvVttOWLGD21349dpfT7mcGSBtS43BymQ9HQB0rxThJFmdiX6BNKo9soqZLeezg
 N7cNJ/3Fu0tiB+O4FNl5tHoQsnaN1GTwVS35p8gaKtT+qKiLPy3X0reSlwlLNPJXAbqO
 f2EQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742580962; x=1743185762;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=P3gKBXZln9nMsOOdNbaWiLIoe8aJQ76mDsXOYG6g2pk=;
 b=U6f2XfGIoyOjLG1NcyGlwYqYuu+jZtAOeGjricHV4taNhk1JlQdJZvt/7rL0Sj369c
 a4SUlxWu25iBl2qHr4ZPOs6xlkkjYg8ujtJfRuvhbssAYAJNqHV/KzOfSgd6zHM5I6cc
 weEm4JO8Wdb7j9b8ga6e5NSt8jKy5oAWzP7HjsS9lZparSom3BZFwRBBkYDTnueCjkti
 K7pYgq0/6MqtbH7EeRhhY0dz+G4rIPb65LZ6rAwVkQkrm6qnRXz8JqwqJj45at4Xh326
 LHhAzYh4Ohwjw98gnC9MA0rwNnNNm/V/6DZBeDmhdVVMrlboDV7u8DiL1DY9diPonu+E
 G0sg==
X-Gm-Message-State: AOJu0YxwhH5AQqOVeeTHX6Rohr33EjObfnEyzrOfknR9r9lXKGi2eyTL
 hZvcxHCz4qKisrD+eZ2CyIp15S2IjtOp8KNNtOJXWn1r/5PMM9ZspGvG+6p68dTWXrOKqS4rk/p
 g
X-Gm-Gg: ASbGncvex0vFO1pxkzt5Ox/cuGyeNd9Hr/xXqVXfBZOu30KhgukSDlsssM40AeulDWt
 PyB1DxzSxt2mc3pRf8Hsa5eoxTkH3O+nJt4JcYsYnN54/3JfSbZvR8luV3YrkFdW0RP3fMr6F1t
 p12m5NVvqS3sMa0w42tFFYEABWFre+bvq0OoQ970Sz9neMRNODkIQaK7HwzTM8bnOqLeRxgN2dv
 4C3vTyLH/ypVDU/qETgGpn6F0fFshqPm48y+y/a0J3mKa2gxokAhtBErHyA9PNiQevL9pu+zZqp
 E9AXKytmXNq77PKZ2yg9OLVCWk03KQunB2X9IGMbDNq/uUzMPAun5/BIXnbBlXahAjM/cxLtdH+
 biqy9BNpnvDcvTFW+BMg=
X-Google-Smtp-Source: 
 AGHT+IHOZbA0ooO0KX7y3Azur3bFSJytur53/xrOCcLL+OXaI/A3wmWM2w60iCevPk7Bz0Juwca2BA==
X-Received: by 2002:a05:600c:1e8f:b0:43c:fbba:41ba with SMTP id
 5b1f17b1804b1-43d50a3c949mr34411605e9.28.1742580962205;
 Fri, 21 Mar 2025 11:16:02 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org,
	Richard Henderson <richard.henderson@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
 Pierrick Bouvier <pierrick.bouvier@linaro.org>,
 =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Anton Johansson <anjo@rev.ng>,
 =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH-for-10.1 v2 2/7] tcg: Simplify tcg_req_mo() macro
Date: Fri, 21 Mar 2025 19:15:44 +0100
Message-ID: <20250321181549.3331-3-philmd@linaro.org>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <20250321181549.3331-1-philmd@linaro.org>
References: <20250321181549.3331-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17
 as permitted sender) client-ip=209.51.188.17;
 envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org;
 helo=lists.gnu.org;
Received-SPF: pass client-ip=2a00:1450:4864:20::334;
 envelope-from=philmd@linaro.org; helo=mail-wm1-x334.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: qemu-devel@nongnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <qemu-devel.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>
List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel>
List-Post: <mailto:qemu-devel@nongnu.org>
List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>
Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org
Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org
X-ZohoMail-DKIM: pass (identity @linaro.org)
X-ZM-MESSAGEID: 1742581068117019100

Now that TCG_GUEST_DEFAULT_MO is always defined,
simplify the tcg_req_mo() macro.

Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
Reviewed-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
 accel/tcg/internal-target.h | 9 +--------
 accel/tcg/tcg-all.c         | 3 ---
 2 files changed, 1 insertion(+), 11 deletions(-)

diff --git a/accel/tcg/internal-target.h b/accel/tcg/internal-target.h
index 2cdf11c905e..1cb35dba99e 100644
--- a/accel/tcg/internal-target.h
+++ b/accel/tcg/internal-target.h
@@ -50,17 +50,10 @@ G_NORETURN void cpu_io_recompile(CPUState *cpu, uintptr=
_t retaddr);
  * memory ordering vs the host memory ordering.  A non-zero
  * result indicates that some barrier is required.
  *
- * If TCG_GUEST_DEFAULT_MO is not defined, assume that the
- * guest requires strict ordering.
- *
  * This is a macro so that it's constant even without optimization.
  */
-#ifdef TCG_GUEST_DEFAULT_MO
-# define tcg_req_mo(type) \
+#define tcg_req_mo(type) \
     ((type) & TCG_GUEST_DEFAULT_MO & ~TCG_TARGET_DEFAULT_MO)
-#else
-# define tcg_req_mo(type) ((type) & ~TCG_TARGET_DEFAULT_MO)
-#endif
=20
 /**
  * cpu_req_mo:
diff --git a/accel/tcg/tcg-all.c b/accel/tcg/tcg-all.c
index c1a30b01219..cb632cc8cc7 100644
--- a/accel/tcg/tcg-all.c
+++ b/accel/tcg/tcg-all.c
@@ -77,9 +77,6 @@ static bool default_mttcg_enabled(void)
         return false;
     }
 #ifdef TARGET_SUPPORTS_MTTCG
-# ifndef TCG_GUEST_DEFAULT_MO
-#  error "TARGET_SUPPORTS_MTTCG without TCG_GUEST_DEFAULT_MO"
-# endif
     return true;
 #else
     return false;
--=20
2.47.1


From nobody Wed Apr  2 05:28:12 2025
Delivered-To: importer@patchew.org
Authentication-Results: mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass(p=none dis=none)  header.from=linaro.org
ARC-Seal: i=1; a=rsa-sha256; t=1742581058; cv=none;
	d=zohomail.com; s=zohoarc;
	b=Bmnz3EWmpHDwcw8esglRfSblJkiCinl9i2w78QeaiiUnt7ZVfS997eEGENGZRlli0myCJG8DJQ9nc2R9tF8V7DJ/OidhqEKBk/H/sjOzCt8enlaMcNDpo5YmQ2XEKn4F0T5rtKgcnQ6VXvS60yrPdB7TTmFhLo2hy9MhKe64gXk=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;
 s=zohoarc;
	t=1742581058;
 h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To;
	bh=C+P/qiSsaGl+lH3pYajCrL8gi0KanTXsuPLvggnpxkE=;
	b=j82YZchpENa048j5T590slyfak7BppHT2/C/xsq/t/YNrl3QFa0F2JmJWlM9rKsSTv8iZqtCDGdcUClPAmPXQvwKLaqQF1ftPKOHISv8p1tJz1ieQ0stZWHJgOkOvTeV+DN2U/LCUvZ6f2hXLX17qSPW3Ows3ZzXMIN+Qpnz9P8=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass header.from=<philmd@linaro.org> (p=none dis=none)
Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org>
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by
 mx.zohomail.com
	with SMTPS id 174258105800176.74055583944198;
 Fri, 21 Mar 2025 11:17:38 -0700 (PDT)
Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <qemu-devel-bounces@nongnu.org>)
	id 1tvgup-00089Q-3x; Fri, 21 Mar 2025 14:16:19 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguh-00087J-Rx
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:12 -0400
Received: from mail-wm1-x32b.google.com ([2a00:1450:4864:20::32b])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguf-0000JL-K5
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:11 -0400
Received: by mail-wm1-x32b.google.com with SMTP id
 5b1f17b1804b1-43bb6b0b898so20454845e9.1
 for <qemu-devel@nongnu.org>; Fri, 21 Mar 2025 11:16:08 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3997f9b565bsm3044365f8f.58.2025.03.21.11.16.06
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Fri, 21 Mar 2025 11:16:06 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=linaro.org; s=google; t=1742580967; x=1743185767; darn=nongnu.org;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=C+P/qiSsaGl+lH3pYajCrL8gi0KanTXsuPLvggnpxkE=;
 b=JTxrG3HDfXM5nnBWb1VsdycoWuonvqeBs5bdCYM+qcOftmFg2DZ1iKC0y+6G1g8Mnx
 yG+Ar2R4QI6IJ/CASnjQBEHeWxnwJhzNXr9C611Fkhe6hDzQ22Op3/7hLGh4rkUC6cH9
 Aa45rAole/QbEZNWMQGqnrq96Joq69HYx9JJ+YtLtRvDh/W9NZWQWw7yoKagy5UPXwuZ
 qnRMB9oPfMx62iXnrweNEw0sIt6RT7ksVKrSbhI4DPcY1qZl0Yblg/JfROsWMlIuStMh
 Nm+PFU4xGkQuxU4xk4UuTHraqaVuBT08/YKnRfsdJQEsKShhADGQ1UpORJybXXjGAiDT
 D4ag==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742580967; x=1743185767;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=C+P/qiSsaGl+lH3pYajCrL8gi0KanTXsuPLvggnpxkE=;
 b=YVjV/tHsKVDasS5SkmH0J8qmCKEdB7zXBiCVMyvjW+zirx9sZtl/s00V+v79Cs1F5I
 wJH5a0bvheMvbwLe0+XGNRezeaONiuQDJqNTOPwz9hDGVZ8JnJN7J5j23nDQJ9w6iORW
 aQEfq4j9+iytppRSLZIoA9ZVfcUBnDMUAy588GDQNk5bPP5ww8MC6k9I9CS8E6IFPUU0
 hH+dlOcru5q+b17jTXYP4hCAbCVpOkknFq2R04mN4+2mjdf7LHOBXibxhmmTgqMky/ls
 Ya2CPeTGaqKjxDMIedyeQUZasRu3h1aC9/fPmleS4exl4VQ9s3kF3jHNurI+dLAg/ISn
 thFQ==
X-Gm-Message-State: AOJu0YzQ2TQcKnvhWac5tjU6FdWaixCu4HJ5hiVSFXU7Uqagenx0gZAr
 NNvoPgwcL9Mm6EiXCYCaLJznfhKRQHY8cAocP1TAHnhUiWObTmZzKondhVclUcWXYgiicLqseYu
 n
X-Gm-Gg: ASbGncs35isqPQ+oiMIC94xzVVsyZ4vVIT++BqV0/yuTIA9Zfvm7zyGpoKyj6iVDS8y
 i0nRU08t2a2aEIFuld56E//d5Kz5gJwdh3StnPDBNHmjeiqfaDKJ7hhot69eQTfRlxn2VmUkULp
 OF0AhG+j9WuutgHIJ4oCyhHK53TSqmkhgfPOC/eHNQgFDEtSjBRI/qrWi9w6QlTw9XYfUQ4itSQ
 wR3qv6xM+KpuUKJ3JYekL6JXxsfxVBlkbHsTXSz4QZytbBUxLKMZcjS+VxeDVOo6ElUjr53Sgue
 ZDiv16e1aJSWrtPhN5DpvCcQGVcX3sToD0z4TwEmycOdrNpVoJ7LLbPNxq8Tx9oQMpCS8CHKvbT
 KwlkQa58FhRsMKNzo76o=
X-Google-Smtp-Source: 
 AGHT+IGIpf6UGASi+Ylv1FcadaYCpwbb4xBSs6WsFzczXUxeP5XqqaAllv6KcRaC4poBq3yqZN7lCg==
X-Received: by 2002:a05:600c:510d:b0:43d:40cc:bdc1 with SMTP id
 5b1f17b1804b1-43d50a1d881mr32140485e9.19.1742580967171;
 Fri, 21 Mar 2025 11:16:07 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org,
	Richard Henderson <richard.henderson@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
 Pierrick Bouvier <pierrick.bouvier@linaro.org>,
 =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Anton Johansson <anjo@rev.ng>,
 =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH-for-10.1 v2 3/7] tcg: Define guest_default_memory_order in
 TCGCPUOps
Date: Fri, 21 Mar 2025 19:15:45 +0100
Message-ID: <20250321181549.3331-4-philmd@linaro.org>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <20250321181549.3331-1-philmd@linaro.org>
References: <20250321181549.3331-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17
 as permitted sender) client-ip=209.51.188.17;
 envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org;
 helo=lists.gnu.org;
Received-SPF: pass client-ip=2a00:1450:4864:20::32b;
 envelope-from=philmd@linaro.org; helo=mail-wm1-x32b.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: qemu-devel@nongnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <qemu-devel.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>
List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel>
List-Post: <mailto:qemu-devel@nongnu.org>
List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>
Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org
Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org
X-ZohoMail-DKIM: pass (identity @linaro.org)
X-ZM-MESSAGEID: 1742581060301019100

Add the TCGCPUOps::guest_default_memory_order field and have
each target initialize it.

Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
Reviewed-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
 include/accel/tcg/cpu-ops.h | 8 ++++++++
 target/alpha/cpu.c          | 2 ++
 target/arm/cpu.c            | 2 ++
 target/arm/tcg/cpu-v7m.c    | 2 ++
 target/avr/cpu.c            | 1 +
 target/hexagon/cpu.c        | 1 +
 target/hppa/cpu.c           | 2 ++
 target/i386/tcg/tcg-cpu.c   | 2 ++
 target/loongarch/cpu.c      | 2 ++
 target/m68k/cpu.c           | 2 ++
 target/microblaze/cpu.c     | 2 ++
 target/mips/cpu.c           | 2 ++
 target/openrisc/cpu.c       | 2 ++
 target/ppc/cpu_init.c       | 2 ++
 target/riscv/tcg/tcg-cpu.c  | 2 ++
 target/rx/cpu.c             | 2 ++
 target/s390x/cpu.c          | 2 ++
 target/sh4/cpu.c            | 2 ++
 target/sparc/cpu.c          | 2 ++
 target/tricore/cpu.c        | 1 +
 target/xtensa/cpu.c         | 2 ++
 21 files changed, 45 insertions(+)

diff --git a/include/accel/tcg/cpu-ops.h b/include/accel/tcg/cpu-ops.h
index f60e5303f21..5fd299cefb6 100644
--- a/include/accel/tcg/cpu-ops.h
+++ b/include/accel/tcg/cpu-ops.h
@@ -16,8 +16,16 @@
 #include "exec/memop.h"
 #include "exec/mmu-access-type.h"
 #include "exec/vaddr.h"
+#include "tcg/tcg-mo.h"
=20
 struct TCGCPUOps {
+
+    /**
+     * @guest_default_memory_order: default barrier that is required
+     *                              for the guest memory ordering.
+     */
+    TCGBar guest_default_memory_order;
+
     /**
      * @initialize: Initialize TCG state
      *
diff --git a/target/alpha/cpu.c b/target/alpha/cpu.c
index 584c2aa76bd..00905d48621 100644
--- a/target/alpha/cpu.c
+++ b/target/alpha/cpu.c
@@ -239,6 +239,8 @@ static const TCGCPUOps alpha_tcg_ops =3D {
     .synchronize_from_tb =3D alpha_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D alpha_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifdef CONFIG_USER_ONLY
     .record_sigsegv =3D alpha_cpu_record_sigsegv,
     .record_sigbus =3D alpha_cpu_record_sigbus,
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index 01786ac7879..9e858ae8c77 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -2675,6 +2675,8 @@ static const TCGCPUOps arm_tcg_ops =3D {
     .debug_excp_handler =3D arm_debug_excp_handler,
     .restore_state_to_opc =3D arm_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifdef CONFIG_USER_ONLY
     .record_sigsegv =3D arm_cpu_record_sigsegv,
     .record_sigbus =3D arm_cpu_record_sigbus,
diff --git a/target/arm/tcg/cpu-v7m.c b/target/arm/tcg/cpu-v7m.c
index c4dd3092726..6f714324ffd 100644
--- a/target/arm/tcg/cpu-v7m.c
+++ b/target/arm/tcg/cpu-v7m.c
@@ -238,6 +238,8 @@ static const TCGCPUOps arm_v7m_tcg_ops =3D {
     .debug_excp_handler =3D arm_debug_excp_handler,
     .restore_state_to_opc =3D arm_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifdef CONFIG_USER_ONLY
     .record_sigsegv =3D arm_cpu_record_sigsegv,
     .record_sigbus =3D arm_cpu_record_sigbus,
diff --git a/target/avr/cpu.c b/target/avr/cpu.c
index 834c7082aa7..330e50f74e7 100644
--- a/target/avr/cpu.c
+++ b/target/avr/cpu.c
@@ -216,6 +216,7 @@ static const TCGCPUOps avr_tcg_ops =3D {
     .cpu_exec_halt =3D avr_cpu_has_work,
     .tlb_fill =3D avr_cpu_tlb_fill,
     .do_interrupt =3D avr_cpu_do_interrupt,
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
 };
=20
 static void avr_cpu_class_init(ObjectClass *oc, void *data)
diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c
index 766b6786511..669f7440f52 100644
--- a/target/hexagon/cpu.c
+++ b/target/hexagon/cpu.c
@@ -324,6 +324,7 @@ static const TCGCPUOps hexagon_tcg_ops =3D {
     .translate_code =3D hexagon_translate_code,
     .synchronize_from_tb =3D hexagon_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D hexagon_restore_state_to_opc,
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
 };
=20
 static void hexagon_cpu_class_init(ObjectClass *c, void *data)
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 2a85495d02f..15cbcd2d957 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -257,6 +257,8 @@ static const TCGCPUOps hppa_tcg_ops =3D {
     .synchronize_from_tb =3D hppa_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D hppa_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifndef CONFIG_USER_ONLY
     .tlb_fill_align =3D hppa_cpu_tlb_fill_align,
     .cpu_exec_interrupt =3D hppa_cpu_exec_interrupt,
diff --git a/target/i386/tcg/tcg-cpu.c b/target/i386/tcg/tcg-cpu.c
index b8aff825eec..de2fe8e04f4 100644
--- a/target/i386/tcg/tcg-cpu.c
+++ b/target/i386/tcg/tcg-cpu.c
@@ -128,6 +128,8 @@ static const TCGCPUOps x86_tcg_ops =3D {
     .debug_check_breakpoint =3D x86_debug_check_breakpoint,
     .need_replay_interrupt =3D x86_need_replay_interrupt,
 #endif /* !CONFIG_USER_ONLY */
+
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
 };
=20
 static void x86_tcg_cpu_init_ops(AccelCPUClass *accel_cpu, CPUClass *cc)
diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index ea1665e2705..5b9dd5048d4 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -869,6 +869,8 @@ static const TCGCPUOps loongarch_tcg_ops =3D {
     .synchronize_from_tb =3D loongarch_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D loongarch_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D loongarch_cpu_tlb_fill,
     .cpu_exec_interrupt =3D loongarch_cpu_exec_interrupt,
diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c
index 0065e1c1ca5..dc742ddc2cb 100644
--- a/target/m68k/cpu.c
+++ b/target/m68k/cpu.c
@@ -593,6 +593,8 @@ static const TCGCPUOps m68k_tcg_ops =3D {
     .translate_code =3D m68k_translate_code,
     .restore_state_to_opc =3D m68k_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D m68k_cpu_tlb_fill,
     .cpu_exec_interrupt =3D m68k_cpu_exec_interrupt,
diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c
index f3bebea856e..32f9e32502c 100644
--- a/target/microblaze/cpu.c
+++ b/target/microblaze/cpu.c
@@ -432,6 +432,8 @@ static const TCGCPUOps mb_tcg_ops =3D {
     .synchronize_from_tb =3D mb_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D mb_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D mb_cpu_tlb_fill,
     .cpu_exec_interrupt =3D mb_cpu_exec_interrupt,
diff --git a/target/mips/cpu.c b/target/mips/cpu.c
index b207106dd79..207b7d3c8db 100644
--- a/target/mips/cpu.c
+++ b/target/mips/cpu.c
@@ -554,6 +554,8 @@ static const TCGCPUOps mips_tcg_ops =3D {
     .synchronize_from_tb =3D mips_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D mips_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #if !defined(CONFIG_USER_ONLY)
     .tlb_fill =3D mips_cpu_tlb_fill,
     .cpu_exec_interrupt =3D mips_cpu_exec_interrupt,
diff --git a/target/openrisc/cpu.c b/target/openrisc/cpu.c
index e8abf1f8b5c..c6a1d603afb 100644
--- a/target/openrisc/cpu.c
+++ b/target/openrisc/cpu.c
@@ -248,6 +248,8 @@ static const TCGCPUOps openrisc_tcg_ops =3D {
     .synchronize_from_tb =3D openrisc_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D openrisc_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D openrisc_cpu_tlb_fill,
     .cpu_exec_interrupt =3D openrisc_cpu_exec_interrupt,
diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index 8b590e7f17c..28f6f6bc2ba 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -7490,6 +7490,8 @@ static const TCGCPUOps ppc_tcg_ops =3D {
   .translate_code =3D ppc_translate_code,
   .restore_state_to_opc =3D ppc_restore_state_to_opc,
=20
+  .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifdef CONFIG_USER_ONLY
   .record_sigsegv =3D ppc_cpu_record_sigsegv,
 #else
diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c
index 5aef9eef366..0e5fa10784d 100644
--- a/target/riscv/tcg/tcg-cpu.c
+++ b/target/riscv/tcg/tcg-cpu.c
@@ -139,6 +139,8 @@ static const TCGCPUOps riscv_tcg_ops =3D {
     .synchronize_from_tb =3D riscv_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D riscv_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D riscv_cpu_tlb_fill,
     .cpu_exec_interrupt =3D riscv_cpu_exec_interrupt,
diff --git a/target/rx/cpu.c b/target/rx/cpu.c
index 0ba0d55ab5b..ae78c661079 100644
--- a/target/rx/cpu.c
+++ b/target/rx/cpu.c
@@ -212,6 +212,8 @@ static const TCGCPUOps rx_tcg_ops =3D {
     .cpu_exec_interrupt =3D rx_cpu_exec_interrupt,
     .cpu_exec_halt =3D rx_cpu_has_work,
     .do_interrupt =3D rx_cpu_do_interrupt,
+
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
 };
=20
 static void rx_cpu_class_init(ObjectClass *klass, void *data)
diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
index d73142600bf..975b8353026 100644
--- a/target/s390x/cpu.c
+++ b/target/s390x/cpu.c
@@ -360,6 +360,8 @@ static const TCGCPUOps s390_tcg_ops =3D {
     .debug_excp_handler =3D s390x_cpu_debug_excp_handler,
     .do_unaligned_access =3D s390x_cpu_do_unaligned_access,
 #endif /* !CONFIG_USER_ONLY */
+
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
 };
 #endif /* CONFIG_TCG */
=20
diff --git a/target/sh4/cpu.c b/target/sh4/cpu.c
index ce84bdf539a..6d319dd01c7 100644
--- a/target/sh4/cpu.c
+++ b/target/sh4/cpu.c
@@ -267,6 +267,8 @@ static const TCGCPUOps superh_tcg_ops =3D {
     .synchronize_from_tb =3D superh_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D superh_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D superh_cpu_tlb_fill,
     .cpu_exec_interrupt =3D superh_cpu_exec_interrupt,
diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c
index 57161201173..961c7f92a84 100644
--- a/target/sparc/cpu.c
+++ b/target/sparc/cpu.c
@@ -1005,6 +1005,8 @@ static const TCGCPUOps sparc_tcg_ops =3D {
     .synchronize_from_tb =3D sparc_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D sparc_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D sparc_cpu_tlb_fill,
     .cpu_exec_interrupt =3D sparc_cpu_exec_interrupt,
diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c
index 16acc4ecb92..960e7093f1c 100644
--- a/target/tricore/cpu.c
+++ b/target/tricore/cpu.c
@@ -179,6 +179,7 @@ static const TCGCPUOps tricore_tcg_ops =3D {
     .tlb_fill =3D tricore_cpu_tlb_fill,
     .cpu_exec_interrupt =3D tricore_cpu_exec_interrupt,
     .cpu_exec_halt =3D tricore_cpu_has_work,
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
 };
=20
 static void tricore_cpu_class_init(ObjectClass *c, void *data)
diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c
index 7663b62d01e..0a4068ad7bf 100644
--- a/target/xtensa/cpu.c
+++ b/target/xtensa/cpu.c
@@ -237,6 +237,8 @@ static const TCGCPUOps xtensa_tcg_ops =3D {
     .debug_excp_handler =3D xtensa_breakpoint_handler,
     .restore_state_to_opc =3D xtensa_restore_state_to_opc,
=20
+    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D xtensa_cpu_tlb_fill,
     .cpu_exec_interrupt =3D xtensa_cpu_exec_interrupt,
--=20
2.47.1


From nobody Wed Apr  2 05:28:12 2025
Delivered-To: importer@patchew.org
Authentication-Results: mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass(p=none dis=none)  header.from=linaro.org
ARC-Seal: i=1; a=rsa-sha256; t=1742580995; cv=none;
	d=zohomail.com; s=zohoarc;
	b=VdtVVHDXGLNt83KgXFFOYy378uTe/Vu1xBFlDkhADTYbRohOeYNVI5V6nrS0AIkRbL4O+v9OwSjsw9/+lMJWg2acDvh8a2bJ4eIloVxJASOYuoo+JtpCj4TQx19BbwKTqIm0Ag6hR/YIiUBdbFai1dL9Hu8w96SX8bYg6myYeT4=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;
 s=zohoarc;
	t=1742580995;
 h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To;
	bh=3eigCKA57FDdckzJucxLxWrPBLxcaGkw0LIij0a/Esg=;
	b=P9wJ8vBLPCBF3R0mEEu6mJiQWTkMQ0Gz+UD7lXPVd1HibIVjxZChNCXfN+h+d+4Pw0UD/CJta/wmZwK+B2xwf1Eld+QuYooIyMHdv/CWIMGSZz9iT1nVxc8n2Ao/xQ4FBAlOeDKd0CLoMjwZgEa3YHVvK/DRJxrt3/DHGT5mlLc=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass header.from=<philmd@linaro.org> (p=none dis=none)
Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org>
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by
 mx.zohomail.com
	with SMTPS id 1742580995364833.3433996153457;
 Fri, 21 Mar 2025 11:16:35 -0700 (PDT)
Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <qemu-devel-bounces@nongnu.org>)
	id 1tvgup-00089h-UN; Fri, 21 Mar 2025 14:16:19 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvgul-00088n-PH
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:15 -0400
Received: from mail-wr1-x42a.google.com ([2a00:1450:4864:20::42a])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguj-0000Xo-VV
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:15 -0400
Received: by mail-wr1-x42a.google.com with SMTP id
 ffacd0b85a97d-3913958ebf2so1942512f8f.3
 for <qemu-devel@nongnu.org>; Fri, 21 Mar 2025 11:16:13 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3997f9a3b4bsm2972568f8f.25.2025.03.21.11.16.10
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Fri, 21 Mar 2025 11:16:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=linaro.org; s=google; t=1742580972; x=1743185772; darn=nongnu.org;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=3eigCKA57FDdckzJucxLxWrPBLxcaGkw0LIij0a/Esg=;
 b=elU4qrGXsGj/K7PdG5QiWpJoPJq9GEDfcxvdbhTUDsJkajqY7JgkXGEv91hghrBiGo
 m4EcrX4t0lo3436NjBuPlKAUzqqkMhOsoFwYvAR+Lti66NmQIfB6knRXDOKDjDEWiCYe
 S7kUIBxEzyqAXOlgsFfZuKZGTMDMTrfObfnyh5p8uKu36bRY7qWashU91gxKNmYJnr4h
 93O2HnqkKWRV4PFIh+Nco1/1KHP/N97RpD7oFcRquyE65gJOfg3BXitVbjNO7GQLVbyz
 q8qebaG5ueieg6bZbk5TJhv1qHsgMnxLVCm1UKCjHYNTAjwmt/rDC6msbqzqCT2lTdX0
 5yWA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742580972; x=1743185772;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=3eigCKA57FDdckzJucxLxWrPBLxcaGkw0LIij0a/Esg=;
 b=wkZrsXoJa7s32RBaiPm8IuKB3inS/4hUuXar1I3Tv4nP4u9fMuvTD/qiQP3G6SE6UR
 47pWU8b/r9hyf6V+QWQmDOiZR6//74oVcIb3QNRywuRpG56oA2FKsQzbEmpFWsHYOdLr
 OrAxLFzk2N7t8eIP3F93zWld2NIZTg3Emq+q6uXQH8lT/yGOYOCyoEIfNIP6j8/PiRAn
 3b9zpsAtEodvoaCBvnQoKD6Dds0NH9mS/Jry1EoD8v+Mc0cCsTqz7D2WXV6HVndWuYMG
 ZSXptAr2nv8HqgNcio2Ir2EGWX3iU2DaaTr3hr0axIebXGJPz3dzimdt6mgzVEGmxC/l
 JV/A==
X-Gm-Message-State: AOJu0YznGnthwM5u1JEXihESR4EPaqlnDD53aMdFxjwKwstwZV5fhmev
 bDmzxsXwhzLlaOSP4b7HMhk/Wq2WtenXRRkGuJ7yVg5v17MQ2UC7Pcsmt6lCV+Vi+aL/peAtjhs
 F
X-Gm-Gg: ASbGncubyGjh1SYhSYKWVe+WPUvM0pZFIFVfsHnO+BDEaZugnQKfC8Ukg/q3dmfC4D3
 wKnrpEPmGfXMMIBcab01VLH9HLZmaDXemaK1IFOwQucoQui/qxmj2mfddrUqZwQHykmFcztrfTA
 8GV8Y59YagFIeqOoPfLYiuDsyHLnuprONElEdYQ6HgVm/cLmXSEmTnEyuLo6+8nMcn+XsgagyFc
 6mskIfqkuETcOvNtCRgJNXE+UFOgTyMdWvmSBvv5TqjWP37CGfOxbSt9EptI5jAB1a91vFjESG0
 2xzglABQw2USQ2iigILPGIXs3i+z87RmVEgB+AUi/PDayes24nDxwxH5CYK6sDIXycDo2vm2wd0
 9IZY+AsHOMrGVszphoPZ+6CInU7SR2Q==
X-Google-Smtp-Source: 
 AGHT+IGTcNc4gonc4wjHqUg5TijMWxyEU+//+Upm1LKtczYPT77WNfQUQQKhExyvuXd+vJktNYEb3A==
X-Received: by 2002:a05:6000:418a:b0:38d:eb33:79c2 with SMTP id
 ffacd0b85a97d-3997f9154e2mr3257491f8f.32.1742580971926;
 Fri, 21 Mar 2025 11:16:11 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org,
	Richard Henderson <richard.henderson@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
 Pierrick Bouvier <pierrick.bouvier@linaro.org>,
 =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Anton Johansson <anjo@rev.ng>,
 =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH-for-10.1 v2 4/7] tcg: Remove use of TCG_GUEST_DEFAULT_MO in
 tb_gen_code()
Date: Fri, 21 Mar 2025 19:15:46 +0100
Message-ID: <20250321181549.3331-5-philmd@linaro.org>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <20250321181549.3331-1-philmd@linaro.org>
References: <20250321181549.3331-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17
 as permitted sender) client-ip=209.51.188.17;
 envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org;
 helo=lists.gnu.org;
Received-SPF: pass client-ip=2a00:1450:4864:20::42a;
 envelope-from=philmd@linaro.org; helo=mail-wr1-x42a.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: qemu-devel@nongnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <qemu-devel.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>
List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel>
List-Post: <mailto:qemu-devel@nongnu.org>
List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>
Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org
Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org
X-ZohoMail-DKIM: pass (identity @linaro.org)
X-ZM-MESSAGEID: 1742580997677019000

Use TCGCPUOps::guest_default_memory_order to set TCGContext::guest_mo.

Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
 accel/tcg/translate-all.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/accel/tcg/translate-all.c b/accel/tcg/translate-all.c
index fb9f83dbba3..26442e83776 100644
--- a/accel/tcg/translate-all.c
+++ b/accel/tcg/translate-all.c
@@ -349,7 +349,7 @@ TranslationBlock *tb_gen_code(CPUState *cpu,
     tcg_ctx->tlb_dyn_max_bits =3D CPU_TLB_DYN_MAX_BITS;
 #endif
     tcg_ctx->insn_start_words =3D TARGET_INSN_START_WORDS;
-    tcg_ctx->guest_mo =3D TCG_GUEST_DEFAULT_MO;
+    tcg_ctx->guest_mo =3D cpu->cc->tcg_ops->guest_default_memory_order;
=20
  restart_translate:
     trace_translate_block(tb, pc, tb->tc.ptr);
--=20
2.47.1


From nobody Wed Apr  2 05:28:12 2025
Delivered-To: importer@patchew.org
Authentication-Results: mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass(p=none dis=none)  header.from=linaro.org
ARC-Seal: i=1; a=rsa-sha256; t=1742581078; cv=none;
	d=zohomail.com; s=zohoarc;
	b=SJge3mPInai78P1zsZ7AAjYjcH9U3rwnx/CeWtQgLjsHV2zwB8RzzlvH+pV0wisoc3rdggmwD/C9/AShmY4AOhGoAjP9RgBVrgWn6IHaocnqrxGuoN+5E5fmN7+rIzhgu3PF48xGit3WfiGzd9rf4rX4mp9VcDewXzT4fWigcXE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;
 s=zohoarc;
	t=1742581078;
 h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To;
	bh=JOCpET3EdD3I12B9WLSxV6AoEDFAj5uepUX92kpSCz4=;
	b=McnoRcghW6Mn/L46edkOIhXbU6em2QBb69d+sp58rrXreXGkjEV0C6mhd0SsZea9LytaOoim91Kgiy5+w1KwLvzJZgLSl87rLZVOcCATM6Qw5A+oVFifk7rJwSTqjwVSLhcnWce4pd2/Q8MM0HIH9P/zCEn6SwmmQbFBD70r9XQ=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass header.from=<philmd@linaro.org> (p=none dis=none)
Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org>
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by
 mx.zohomail.com
	with SMTPS id 1742581078768490.0983662949334;
 Fri, 21 Mar 2025 11:17:58 -0700 (PDT)
Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <qemu-devel-bounces@nongnu.org>)
	id 1tvgus-0008AR-1c; Fri, 21 Mar 2025 14:16:22 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguq-0008AI-SL
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:20 -0400
Received: from mail-wr1-x430.google.com ([2a00:1450:4864:20::430])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguo-0000nN-Hj
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:20 -0400
Received: by mail-wr1-x430.google.com with SMTP id
 ffacd0b85a97d-3913958ebf2so1942559f8f.3
 for <qemu-devel@nongnu.org>; Fri, 21 Mar 2025 11:16:18 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3997f9b5b8dsm3042786f8f.59.2025.03.21.11.16.15
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Fri, 21 Mar 2025 11:16:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=linaro.org; s=google; t=1742580977; x=1743185777; darn=nongnu.org;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=JOCpET3EdD3I12B9WLSxV6AoEDFAj5uepUX92kpSCz4=;
 b=l2GEYY7F8AYhetnBCzMZNQsgjB6cQ+aUHupYBPKgJmWkEGNHttSyBxgGpRyYwDBhLw
 sA2L7FUOzZreb9ew6VOUN9922c1tpd+st9s5+yb6qOFwB4n84NCfFvc0M/s2HGbJ7JFP
 h55IrRBw4kLdJlVqSMF39T3bsVhIdYbYo2CJGvsbec6nr1obkOT7mN8XwLzaCDEUF1JB
 523YMm7kdEGiliDLRZcjvsP6AdR7ggTfIDuZCVq2t2vfKDFrbeW8t6EtLju7BJg4GE4i
 6DFywKJ4scBEGaZydAzAph4Qlr4QW8Y7TuxsIpeWIeX4IhU07vKXly+p45RLV63+ME/O
 8lCQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742580977; x=1743185777;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=JOCpET3EdD3I12B9WLSxV6AoEDFAj5uepUX92kpSCz4=;
 b=rwcShTjNgoppBQrCldUO8OYpTMQuAvCdXWB/GNs+7pOwM/QhkMV84LrJ2wPjSQFUbt
 cOMzWID2OB3I+F8Mvms68y8uFzjQL+WFoTBu2T8+evxHtFLFBUOjecfMTdpWNk7jvASo
 GEo6vqgtqKudB70b+kfaYCwaAi94W9NCNFkNBn84DppRQau/MWek/N1BA/r7aNoEL6PS
 ky20VvK8VlMcQR5qFewgxeSCi4x1RUbO5/rwsxPHhQ6Ayv5VNE6fitxsn2PkFAah0E1G
 fVy+UwBl8/bj1UbURYvV6tYyLX4NHjrWD1fTWM+JNg6jLzngujpqp8km5fbUu4h5wE8C
 QB0A==
X-Gm-Message-State: AOJu0YyAW9fWzqdT57lVS+2LKwRx1ZA6zCeewajRCdXkxzdfqIwJsI/J
 blZHppNfW1Ajvj/g1Dl0ywgOkKKYbnNOa8EV3k642ojNb4ATINE5r49vpn3AvpMGY2kO/+wzTME
 s
X-Gm-Gg: ASbGncu7QK85lhXTF82mBMLegYQfhn0VFkHixNNgJo/8N+kJ0I5ZYDoFSwFTF+oO/mF
 qvpswsxr77hFzWkrOyBI8TKkRAw6AMzAbheKHUSyFxs6+hYnZOsdykOND70QvmvOyOIr4s6bLoW
 L5AJuUMKuFfxtWGdadfXoTZWREX/Vx6nyg/vYR//pKGW1R3JJjuCJdGuQhsL6VfavsDrfb7CT+v
 6Sg5T1t7qL9Ln/ciwrc7Zq9JWbzLvYVdphbAr7h8NkkmWZ89rEZ+uGV9DD/6ZfOOPZL7KEJEWz1
 Vyvj7x5abwezzF4bpKk+393VJz4sK/efPkJlaYzPc78SxOcaFglMy0QMapZaZeXfxmg57DtcoK+
 UK/qZYkwLH8jbsWdaeRk=
X-Google-Smtp-Source: 
 AGHT+IGXUKUy7FOnzDFtwHOvPokcEjY9gUA/07C+0fs8Y1LazF886mUln5h/wl5ZTR7SbHxy7yswHA==
X-Received: by 2002:a05:6000:21c2:b0:399:6d53:68d9 with SMTP id
 ffacd0b85a97d-3997f939949mr3205803f8f.38.1742580976682;
 Fri, 21 Mar 2025 11:16:16 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org,
	Richard Henderson <richard.henderson@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
 Pierrick Bouvier <pierrick.bouvier@linaro.org>,
 =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Anton Johansson <anjo@rev.ng>,
 =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [RFC PATCH-for-10.1 v2 5/7] tcg: Propagate CPUState argument to
 cpu_req_mo()
Date: Fri, 21 Mar 2025 19:15:47 +0100
Message-ID: <20250321181549.3331-6-philmd@linaro.org>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <20250321181549.3331-1-philmd@linaro.org>
References: <20250321181549.3331-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17
 as permitted sender) client-ip=209.51.188.17;
 envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org;
 helo=lists.gnu.org;
Received-SPF: pass client-ip=2a00:1450:4864:20::430;
 envelope-from=philmd@linaro.org; helo=mail-wr1-x430.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: qemu-devel@nongnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <qemu-devel.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>
List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel>
List-Post: <mailto:qemu-devel@nongnu.org>
List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>
Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org
Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org
X-ZohoMail-DKIM: pass (identity @linaro.org)
X-ZM-MESSAGEID: 1742581079838019000

In preparation of having tcg_req_mo() access CPUState in
the next commit, pass it to cpu_req_mo(), its single caller.

Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
 accel/tcg/internal-target.h |  3 ++-
 accel/tcg/cputlb.c          | 20 ++++++++++----------
 accel/tcg/user-exec.c       | 20 ++++++++++----------
 3 files changed, 22 insertions(+), 21 deletions(-)

diff --git a/accel/tcg/internal-target.h b/accel/tcg/internal-target.h
index 1cb35dba99e..992362be7e6 100644
--- a/accel/tcg/internal-target.h
+++ b/accel/tcg/internal-target.h
@@ -57,12 +57,13 @@ G_NORETURN void cpu_io_recompile(CPUState *cpu, uintptr=
_t retaddr);
=20
 /**
  * cpu_req_mo:
+ * @cpu: CPUState
  * @type: TCGBar
  *
  * If tcg_req_mo indicates a barrier for @type is required
  * for the guest memory model, issue a host memory barrier.
  */
-#define cpu_req_mo(type)          \
+#define cpu_req_mo(cpu, type)     \
     do {                          \
         if (tcg_req_mo(type)) {   \
             smp_mb();             \
diff --git a/accel/tcg/cputlb.c b/accel/tcg/cputlb.c
index fb22048876e..b6713efdb81 100644
--- a/accel/tcg/cputlb.c
+++ b/accel/tcg/cputlb.c
@@ -2321,7 +2321,7 @@ static uint8_t do_ld1_mmu(CPUState *cpu, vaddr addr, =
MemOpIdx oi,
     MMULookupLocals l;
     bool crosspage;
=20
-    cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD);
+    cpu_req_mo(cpu, TCG_MO_LD_LD | TCG_MO_ST_LD);
     crosspage =3D mmu_lookup(cpu, addr, oi, ra, access_type, &l);
     tcg_debug_assert(!crosspage);
=20
@@ -2336,7 +2336,7 @@ static uint16_t do_ld2_mmu(CPUState *cpu, vaddr addr,=
 MemOpIdx oi,
     uint16_t ret;
     uint8_t a, b;
=20
-    cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD);
+    cpu_req_mo(cpu, TCG_MO_LD_LD | TCG_MO_ST_LD);
     crosspage =3D mmu_lookup(cpu, addr, oi, ra, access_type, &l);
     if (likely(!crosspage)) {
         return do_ld_2(cpu, &l.page[0], l.mmu_idx, access_type, l.memop, r=
a);
@@ -2360,7 +2360,7 @@ static uint32_t do_ld4_mmu(CPUState *cpu, vaddr addr,=
 MemOpIdx oi,
     bool crosspage;
     uint32_t ret;
=20
-    cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD);
+    cpu_req_mo(cpu, TCG_MO_LD_LD | TCG_MO_ST_LD);
     crosspage =3D mmu_lookup(cpu, addr, oi, ra, access_type, &l);
     if (likely(!crosspage)) {
         return do_ld_4(cpu, &l.page[0], l.mmu_idx, access_type, l.memop, r=
a);
@@ -2381,7 +2381,7 @@ static uint64_t do_ld8_mmu(CPUState *cpu, vaddr addr,=
 MemOpIdx oi,
     bool crosspage;
     uint64_t ret;
=20
-    cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD);
+    cpu_req_mo(cpu, TCG_MO_LD_LD | TCG_MO_ST_LD);
     crosspage =3D mmu_lookup(cpu, addr, oi, ra, access_type, &l);
     if (likely(!crosspage)) {
         return do_ld_8(cpu, &l.page[0], l.mmu_idx, access_type, l.memop, r=
a);
@@ -2404,7 +2404,7 @@ static Int128 do_ld16_mmu(CPUState *cpu, vaddr addr,
     Int128 ret;
     int first;
=20
-    cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD);
+    cpu_req_mo(cpu, TCG_MO_LD_LD | TCG_MO_ST_LD);
     crosspage =3D mmu_lookup(cpu, addr, oi, ra, MMU_DATA_LOAD, &l);
     if (likely(!crosspage)) {
         if (unlikely(l.page[0].flags & TLB_MMIO)) {
@@ -2732,7 +2732,7 @@ static void do_st1_mmu(CPUState *cpu, vaddr addr, uin=
t8_t val,
     MMULookupLocals l;
     bool crosspage;
=20
-    cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST);
+    cpu_req_mo(cpu, TCG_MO_LD_ST | TCG_MO_ST_ST);
     crosspage =3D mmu_lookup(cpu, addr, oi, ra, MMU_DATA_STORE, &l);
     tcg_debug_assert(!crosspage);
=20
@@ -2746,7 +2746,7 @@ static void do_st2_mmu(CPUState *cpu, vaddr addr, uin=
t16_t val,
     bool crosspage;
     uint8_t a, b;
=20
-    cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST);
+    cpu_req_mo(cpu, TCG_MO_LD_ST | TCG_MO_ST_ST);
     crosspage =3D mmu_lookup(cpu, addr, oi, ra, MMU_DATA_STORE, &l);
     if (likely(!crosspage)) {
         do_st_2(cpu, &l.page[0], val, l.mmu_idx, l.memop, ra);
@@ -2768,7 +2768,7 @@ static void do_st4_mmu(CPUState *cpu, vaddr addr, uin=
t32_t val,
     MMULookupLocals l;
     bool crosspage;
=20
-    cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST);
+    cpu_req_mo(cpu, TCG_MO_LD_ST | TCG_MO_ST_ST);
     crosspage =3D mmu_lookup(cpu, addr, oi, ra, MMU_DATA_STORE, &l);
     if (likely(!crosspage)) {
         do_st_4(cpu, &l.page[0], val, l.mmu_idx, l.memop, ra);
@@ -2789,7 +2789,7 @@ static void do_st8_mmu(CPUState *cpu, vaddr addr, uin=
t64_t val,
     MMULookupLocals l;
     bool crosspage;
=20
-    cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST);
+    cpu_req_mo(cpu, TCG_MO_LD_ST | TCG_MO_ST_ST);
     crosspage =3D mmu_lookup(cpu, addr, oi, ra, MMU_DATA_STORE, &l);
     if (likely(!crosspage)) {
         do_st_8(cpu, &l.page[0], val, l.mmu_idx, l.memop, ra);
@@ -2812,7 +2812,7 @@ static void do_st16_mmu(CPUState *cpu, vaddr addr, In=
t128 val,
     uint64_t a, b;
     int first;
=20
-    cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST);
+    cpu_req_mo(cpu, TCG_MO_LD_ST | TCG_MO_ST_ST);
     crosspage =3D mmu_lookup(cpu, addr, oi, ra, MMU_DATA_STORE, &l);
     if (likely(!crosspage)) {
         if (unlikely(l.page[0].flags & TLB_MMIO)) {
diff --git a/accel/tcg/user-exec.c b/accel/tcg/user-exec.c
index 2322181b151..5bda8fb5514 100644
--- a/accel/tcg/user-exec.c
+++ b/accel/tcg/user-exec.c
@@ -1059,7 +1059,7 @@ static uint8_t do_ld1_mmu(CPUState *cpu, vaddr addr, =
MemOpIdx oi,
     void *haddr;
     uint8_t ret;
=20
-    cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD);
+    cpu_req_mo(cpu, TCG_MO_LD_LD | TCG_MO_ST_LD);
     haddr =3D cpu_mmu_lookup(cpu, addr, get_memop(oi), ra, access_type);
     ret =3D ldub_p(haddr);
     clear_helper_retaddr();
@@ -1073,7 +1073,7 @@ static uint16_t do_ld2_mmu(CPUState *cpu, vaddr addr,=
 MemOpIdx oi,
     uint16_t ret;
     MemOp mop =3D get_memop(oi);
=20
-    cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD);
+    cpu_req_mo(cpu, TCG_MO_LD_LD | TCG_MO_ST_LD);
     haddr =3D cpu_mmu_lookup(cpu, addr, mop, ra, access_type);
     ret =3D load_atom_2(cpu, ra, haddr, mop);
     clear_helper_retaddr();
@@ -1091,7 +1091,7 @@ static uint32_t do_ld4_mmu(CPUState *cpu, vaddr addr,=
 MemOpIdx oi,
     uint32_t ret;
     MemOp mop =3D get_memop(oi);
=20
-    cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD);
+    cpu_req_mo(cpu, TCG_MO_LD_LD | TCG_MO_ST_LD);
     haddr =3D cpu_mmu_lookup(cpu, addr, mop, ra, access_type);
     ret =3D load_atom_4(cpu, ra, haddr, mop);
     clear_helper_retaddr();
@@ -1109,7 +1109,7 @@ static uint64_t do_ld8_mmu(CPUState *cpu, vaddr addr,=
 MemOpIdx oi,
     uint64_t ret;
     MemOp mop =3D get_memop(oi);
=20
-    cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD);
+    cpu_req_mo(cpu, TCG_MO_LD_LD | TCG_MO_ST_LD);
     haddr =3D cpu_mmu_lookup(cpu, addr, mop, ra, access_type);
     ret =3D load_atom_8(cpu, ra, haddr, mop);
     clear_helper_retaddr();
@@ -1128,7 +1128,7 @@ static Int128 do_ld16_mmu(CPUState *cpu, abi_ptr addr,
     MemOp mop =3D get_memop(oi);
=20
     tcg_debug_assert((mop & MO_SIZE) =3D=3D MO_128);
-    cpu_req_mo(TCG_MO_LD_LD | TCG_MO_ST_LD);
+    cpu_req_mo(cpu, TCG_MO_LD_LD | TCG_MO_ST_LD);
     haddr =3D cpu_mmu_lookup(cpu, addr, mop, ra, MMU_DATA_LOAD);
     ret =3D load_atom_16(cpu, ra, haddr, mop);
     clear_helper_retaddr();
@@ -1144,7 +1144,7 @@ static void do_st1_mmu(CPUState *cpu, vaddr addr, uin=
t8_t val,
 {
     void *haddr;
=20
-    cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST);
+    cpu_req_mo(cpu, TCG_MO_LD_ST | TCG_MO_ST_ST);
     haddr =3D cpu_mmu_lookup(cpu, addr, get_memop(oi), ra, MMU_DATA_STORE);
     stb_p(haddr, val);
     clear_helper_retaddr();
@@ -1156,7 +1156,7 @@ static void do_st2_mmu(CPUState *cpu, vaddr addr, uin=
t16_t val,
     void *haddr;
     MemOp mop =3D get_memop(oi);
=20
-    cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST);
+    cpu_req_mo(cpu, TCG_MO_LD_ST | TCG_MO_ST_ST);
     haddr =3D cpu_mmu_lookup(cpu, addr, mop, ra, MMU_DATA_STORE);
=20
     if (mop & MO_BSWAP) {
@@ -1172,7 +1172,7 @@ static void do_st4_mmu(CPUState *cpu, vaddr addr, uin=
t32_t val,
     void *haddr;
     MemOp mop =3D get_memop(oi);
=20
-    cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST);
+    cpu_req_mo(cpu, TCG_MO_LD_ST | TCG_MO_ST_ST);
     haddr =3D cpu_mmu_lookup(cpu, addr, mop, ra, MMU_DATA_STORE);
=20
     if (mop & MO_BSWAP) {
@@ -1188,7 +1188,7 @@ static void do_st8_mmu(CPUState *cpu, vaddr addr, uin=
t64_t val,
     void *haddr;
     MemOp mop =3D get_memop(oi);
=20
-    cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST);
+    cpu_req_mo(cpu, TCG_MO_LD_ST | TCG_MO_ST_ST);
     haddr =3D cpu_mmu_lookup(cpu, addr, mop, ra, MMU_DATA_STORE);
=20
     if (mop & MO_BSWAP) {
@@ -1204,7 +1204,7 @@ static void do_st16_mmu(CPUState *cpu, vaddr addr, In=
t128 val,
     void *haddr;
     MemOpIdx mop =3D get_memop(oi);
=20
-    cpu_req_mo(TCG_MO_LD_ST | TCG_MO_ST_ST);
+    cpu_req_mo(cpu, TCG_MO_LD_ST | TCG_MO_ST_ST);
     haddr =3D cpu_mmu_lookup(cpu, addr, mop, ra, MMU_DATA_STORE);
=20
     if (mop & MO_BSWAP) {
--=20
2.47.1


From nobody Wed Apr  2 05:28:12 2025
Delivered-To: importer@patchew.org
Authentication-Results: mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass(p=none dis=none)  header.from=linaro.org
ARC-Seal: i=1; a=rsa-sha256; t=1742581077; cv=none;
	d=zohomail.com; s=zohoarc;
	b=JZ+5NkbsKtmKDslHBBERHgicCcgrWArU9FQXzCYHoyavfYvbxi/1BEM90sZJUrXptICnRqa4BBhFLO2ACPLhTWZdBUMNG4clGERK0aJKLHzjV1iq4Pkjoer6NyJj6L80rDbZzNVZr2S3X47v1lrou66zX6eZ+6l57r95sQz4prs=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;
 s=zohoarc;
	t=1742581077;
 h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To;
	bh=bvlc/05Bc6G7gWkNJ4vtmciJR0DqTH/VV0mlV1pn8BA=;
	b=l1rTD6B2PLIHwFXaT4GX5GW4tpvcsqjCy17DafZQzpikRdeBfkgSlFqKMg3o+4997GEzg16tVsUntkzOlQ2af/loF6DSw9UAlMlE+Z7AqlqOFoNY440vKU6lYepaO+SIQ3aKUcDjKMrsKUo7cFVuNJxxrHmh4OXsdLVc7e10pyQ=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass header.from=<philmd@linaro.org> (p=none dis=none)
Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org>
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by
 mx.zohomail.com
	with SMTPS id 1742581077119978.8292067653769;
 Fri, 21 Mar 2025 11:17:57 -0700 (PDT)
Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <qemu-devel-bounces@nongnu.org>)
	id 1tvguy-0008BH-Dp; Fri, 21 Mar 2025 14:16:28 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguu-0008B0-VQ
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:24 -0400
Received: from mail-wm1-x32d.google.com ([2a00:1450:4864:20::32d])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvgut-0000xY-54
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:24 -0400
Received: by mail-wm1-x32d.google.com with SMTP id
 5b1f17b1804b1-43d0618746bso16155875e9.2
 for <qemu-devel@nongnu.org>; Fri, 21 Mar 2025 11:16:22 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 5b1f17b1804b1-43d4fcea6ecsm33815125e9.5.2025.03.21.11.16.20
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Fri, 21 Mar 2025 11:16:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=linaro.org; s=google; t=1742580981; x=1743185781; darn=nongnu.org;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=bvlc/05Bc6G7gWkNJ4vtmciJR0DqTH/VV0mlV1pn8BA=;
 b=GnqiYfL0Ge1GCLzytnD77lErCcAzKuQl3zC/OZ06B65LS1kcTlMBJnm2hxEThEU5Og
 b1R/x0l6YXVIrD1q3Nw4TlKVyCgqgY3LPFsuTHgYiC7X4vpy5gvuZqv1evMY3KB4bAkg
 r0fTzSXpd92BFH4RdBV/1JcvnQrblSnfCCrTHm2BL4WgqBD+UQ+twRRMFgWuwdljgAil
 2sTzjmzxyjUKo6rRvrrDW0ukmU5aVzt7adSGku3L3UUPq12786Wo13b6AtniAIgpaUo7
 asX2fgA5fpULj1RYpBucwgzIhbDUlV6i9LqZWjFNF3MFHa140WL540d/CYHu13hbVCbJ
 JsDQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742580981; x=1743185781;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=bvlc/05Bc6G7gWkNJ4vtmciJR0DqTH/VV0mlV1pn8BA=;
 b=jm2N+22+s2in/f6FrMFRTmL8GnoeLij8n+kfHlDvVDABUgSVqL1g6k4jClmXKu1A+Q
 LZnLzyJBzZQQzwdtNWjbNeJpA+J74eV72l9ebRor5MIBzGsZtFYRGIe9jKVIYtbBm74d
 5bOTbmKDCdph+cfXZaWPGtYUihW+CMwczrlCr17Uuu7a8lE3iWlIqUrEGNb5iW7yJiT4
 wWfFroiUuEW4oNjQYU2iZtcuI5tZm1zmLBR2GuAsg9C0B/GwRqqt4H9Y5eofvoUIRNMU
 aQgBQQ64t5kbei18s6Ejguxvu02eZ78pj7GWjBB3xzKqXsg7L/5qbpkvolLMZOlgJvwE
 O6Ow==
X-Gm-Message-State: AOJu0YxcWV4ASmOPCJNK3z+tQ7vo/DQbS+qbOYV4itRXE3N05CJ4Vy+v
 DQjTld4oNJnK/1S2zO+yX6ZVlPDrzUGhsGa3C0QTlF/HCVDyPysI60C4OFqyQHTezSaEb3hzP/w
 B
X-Gm-Gg: ASbGncv3CxtNgD9RonTb0Nvg8e0SRC/GxBxTC5J+MR+HJvjtH8Y8kuOmCUn615/MJ2A
 q91rw/B9/rg0f5A8tkT2/WGoqpJ5JzRyaPK3aUZ/icHkB38Jde2ggiSWH7i/Bsjs/pLnaG76vBI
 FSsMotl/eKRO+kXh93UL72Z6kpE5uJHZGQRnLLxLUM3a/IT3faWjNQf6g6yXLrokkqGh6I2MDYs
 jG2XohG7fWw5brbJ3x2xHnFufPBf5Mvf3d6FciZCioQeJ6Fkh1m3u9p7DSBNa+uXLRW93I8hv2P
 cF+/YNo735J8VsUYVyXV/rcJgSrKfruHNBn0bH0Sez4ayw4+2YJevGD3DINI+fS3CQi7kYokcZE
 tYa/kSAdT/H20o70cl7YHUk0Qp9vGTw==
X-Google-Smtp-Source: 
 AGHT+IE0IuANSIGEO0KqwlFBkvczgYUzqAYPTi0Fu5DsANWa7xlJv/HV1EkRdq3cC6OYk7Z7mCPK9A==
X-Received: by 2002:a05:600c:83c4:b0:43c:fffc:7886 with SMTP id
 5b1f17b1804b1-43d509ec52fmr39394605e9.8.1742580981304;
 Fri, 21 Mar 2025 11:16:21 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org,
	Richard Henderson <richard.henderson@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
 Pierrick Bouvier <pierrick.bouvier@linaro.org>,
 =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Anton Johansson <anjo@rev.ng>,
 =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [RFC PATCH-for-10.1 v2 6/7] tcg: Have tcg_req_mo() use
 TCGCPUOps::guest_default_memory_order
Date: Fri, 21 Mar 2025 19:15:48 +0100
Message-ID: <20250321181549.3331-7-philmd@linaro.org>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <20250321181549.3331-1-philmd@linaro.org>
References: <20250321181549.3331-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17
 as permitted sender) client-ip=209.51.188.17;
 envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org;
 helo=lists.gnu.org;
Received-SPF: pass client-ip=2a00:1450:4864:20::32d;
 envelope-from=philmd@linaro.org; helo=mail-wm1-x32d.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: qemu-devel@nongnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <qemu-devel.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>
List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel>
List-Post: <mailto:qemu-devel@nongnu.org>
List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>
Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org
Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org
X-ZohoMail-DKIM: pass (identity @linaro.org)
X-ZM-MESSAGEID: 1742581079878019100

In order to use TCG with multiple targets, replace the
compile time use of TCG_GUEST_DEFAULT_MO by a runtime access
to TCGCPUOps::guest_default_memory_order via CPUState.

Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
 accel/tcg/internal-target.h | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/accel/tcg/internal-target.h b/accel/tcg/internal-target.h
index 992362be7e6..d5b8c4b730b 100644
--- a/accel/tcg/internal-target.h
+++ b/accel/tcg/internal-target.h
@@ -44,16 +44,15 @@ G_NORETURN void cpu_io_recompile(CPUState *cpu, uintptr=
_t retaddr);
=20
 /**
  * tcg_req_mo:
+ * @guest_mo: Guest default memory order
  * @type: TCGBar
  *
  * Filter @type to the barrier that is required for the guest
  * memory ordering vs the host memory ordering.  A non-zero
  * result indicates that some barrier is required.
- *
- * This is a macro so that it's constant even without optimization.
  */
-#define tcg_req_mo(type) \
-    ((type) & TCG_GUEST_DEFAULT_MO & ~TCG_TARGET_DEFAULT_MO)
+#define tcg_req_mo(guest_mo, type) \
+    ((type) & guest_mo & ~TCG_TARGET_DEFAULT_MO)
=20
 /**
  * cpu_req_mo:
@@ -65,7 +64,7 @@ G_NORETURN void cpu_io_recompile(CPUState *cpu, uintptr_t=
 retaddr);
  */
 #define cpu_req_mo(cpu, type)     \
     do {                          \
-        if (tcg_req_mo(type)) {   \
+        if (tcg_req_mo(cpu->cc->tcg_ops->guest_default_memory_order, type)=
) { \
             smp_mb();             \
         }                         \
     } while (0)
--=20
2.47.1


From nobody Wed Apr  2 05:28:12 2025
Delivered-To: importer@patchew.org
Authentication-Results: mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass(p=none dis=none)  header.from=linaro.org
ARC-Seal: i=1; a=rsa-sha256; t=1742581011; cv=none;
	d=zohomail.com; s=zohoarc;
	b=e+ojNMP+M4FpM5oSGW4MjrK68GTWSusaGI1mFurSocCq0Umo2fr201es0qgltt2TKn6qEnNiQBT2Sy62KTGbQFtlo5A8DuDuW4gX+n8wVI8yP2eEJ166LrrckHcOjeup97NGNaYbiiYKpirDTvry6NImZvLY67jEa6gVpCV6uxE=
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com;
 s=zohoarc;
	t=1742581011;
 h=Content-Type:Content-Transfer-Encoding:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:Subject:To:To:Message-Id:Reply-To;
	bh=UPZBH8y1q2dMsxNWLz+3tBAuN1XftmDrZUlAjxNrm7c=;
	b=fKAYbS74RCQqcz3gI1fbMZ46eZ+rj20pg7jDWW4RCw11PO2atS3g6m06lxogHnpowmU6B3qkhLL1xJGOJ5Z8rMeJQCM4qUHzTTT2K6SKhMcLJQfChyIhPxVCGS+qU6gm7lS8K64g6/YYAC9Ul3FvvsUkuwbf2ehdvKUZeKAlKE4=
ARC-Authentication-Results: i=1; mx.zohomail.com;
	dkim=pass;
	spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as
 permitted sender)
  smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org;
	dmarc=pass header.from=<philmd@linaro.org> (p=none dis=none)
Return-Path: <qemu-devel-bounces+importer=patchew.org@nongnu.org>
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by
 mx.zohomail.com
	with SMTPS id 1742581011712156.95174774131897;
 Fri, 21 Mar 2025 11:16:51 -0700 (PDT)
Received: from localhost ([::1] helo=lists1p.gnu.org)
	by lists.gnu.org with esmtp (Exim 4.90_1)
	(envelope-from <qemu-devel-bounces@nongnu.org>)
	id 1tvgv4-0008C3-RK; Fri, 21 Mar 2025 14:16:35 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvgv1-0008Bg-34
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:32 -0400
Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)
 (Exim 4.90_1) (envelope-from <philmd@linaro.org>) id 1tvguy-0001Ki-2L
 for qemu-devel@nongnu.org; Fri, 21 Mar 2025 14:16:30 -0400
Received: by mail-wm1-x334.google.com with SMTP id
 5b1f17b1804b1-43cfe574976so14203145e9.1
 for <qemu-devel@nongnu.org>; Fri, 21 Mar 2025 11:16:27 -0700 (PDT)
Received: from localhost.localdomain (88-187-86-199.subs.proxad.net.
 [88.187.86.199]) by smtp.gmail.com with ESMTPSA id
 ffacd0b85a97d-3997f9a6326sm2926093f8f.29.2025.03.21.11.16.25
 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256);
 Fri, 21 Mar 2025 11:16:25 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=linaro.org; s=google; t=1742580986; x=1743185786; darn=nongnu.org;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
 :message-id:reply-to;
 bh=UPZBH8y1q2dMsxNWLz+3tBAuN1XftmDrZUlAjxNrm7c=;
 b=DuEcg0L5mNgyAZ9p0VwNWsaQ/28htGAgVhEQWmetuXmw6ySwcCLo3tmNCMF7oZ8Gv4
 mePnG0fi1dgqjGrAc3FWiOo7U7wR0s3Nl65zNyK+QFrCqfS+qfa8u9M+VZLf9NA431dp
 hRIlk1EGl61bnYtsj2aTcq7ugDfwdHnwliIQj34qfzOlDuybTm7FhB+suoL5zOYfxSeF
 x4KoHzRuJmjtT7lnYV1W+cgRjCosFFmEkAOv7Gw9YTjb7u2LcgsDpNB3k4EwsxZXu7z4
 KiGBLmXdFzVPGb/Ky8zK9lARvvaziB2Tn1qztuW4DSyDCNEENW8uS2DIQGjitx56H1lq
 JHAQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20230601; t=1742580986; x=1743185786;
 h=content-transfer-encoding:mime-version:references:in-reply-to
 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
 :subject:date:message-id:reply-to;
 bh=UPZBH8y1q2dMsxNWLz+3tBAuN1XftmDrZUlAjxNrm7c=;
 b=vtTi1rDm/a5T0SNXjowwXRWUkufFhy30KqmSLrvDEfHu3X6sfWNzkdUtExNfsMJorT
 2m8kGqLKHeoxM+Mrl5RU5SuzIyJC6bnUIeFqEeYdAp2WSxZCc//EnDrjlLJmVYkXWyVs
 Le6VP502wcpRXmStrgcPd6I7sd8dcCd4cmx+oC4I4F5tWeLi9gowx8AQN021dg93jO9A
 4ZLoSemIO2R70EvX3LPnE0nwV/whjhzCvJYGBVLSg6hH9/yKrOZRyKwKg8BBcADMhF7J
 PilzmWT94XHBQ1GIXUOZJxE9hLFrSnN5snF/He5l3n8+AM8izUecnYKizuE9p41bZhF/
 DV2g==
X-Gm-Message-State: AOJu0Yy51+VmGXFKXiBdRiU6zLsWCnaKWtCAqECndeQfXHDzW0LceNmJ
 RTZVC/1zZFImFO1sr0kr6aSiZ4kdnZ7GG3NdmoLPUNVYBbXmsvm7BUk78QdPZ1Qk9wd9QmXDYBx
 J
X-Gm-Gg: ASbGncvMdjcCDIHCaBqeBbFInJoDJqcrEri7UT9uF7CC7FSu9fpzkVLw2SRMtjCz+Lu
 UEJtO8Ow4X6PFP70WXCl04SfXSZ9HFAZRA0pswsJ7NCBRK2sJsbjQ1bVw92WkR+aKdbBnXyDE8S
 q1KX1FLsr0TkVtLit8FcqwnbN6V+3mQ59HTinWM7CSHPxBe10ZBF1HlUWXnJUPm3dGLJJVqlTZC
 B1N2k3/rjwarCv+tRaFk9xkv0sqsgIpHiGNLa4mZuMuf/YRROG/1f7CSPBA1XJZlGbasWGHY9FU
 VxW0JfKNH2k98mbP+84IMEhZurbJ7cQUcOch8K9jjMBy3BFHUeIczMp/0NUp7j9wPQzUpZjoqqt
 md4GiXyEMqJqhvcpXQ7c=
X-Google-Smtp-Source: 
 AGHT+IHPtpRq8sUAAYBW86ZKFcMs/4tr1Fr77SXJWbQ/TbYL1Q7/xZyPORQBxRn5yyihciHAXszpwA==
X-Received: by 2002:a05:600c:4503:b0:43b:cc3c:60bc with SMTP id
 5b1f17b1804b1-43d509f41famr51042345e9.15.1742580986075;
 Fri, 21 Mar 2025 11:16:26 -0700 (PDT)
From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
To: qemu-devel@nongnu.org,
	Richard Henderson <richard.henderson@linaro.org>
Cc: Paolo Bonzini <pbonzini@redhat.com>,
 Pierrick Bouvier <pierrick.bouvier@linaro.org>,
 =?UTF-8?q?Alex=20Benn=C3=A9e?= <alex.bennee@linaro.org>,
 Anton Johansson <anjo@rev.ng>,
 =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= <philmd@linaro.org>
Subject: [PATCH-for-10.1 v2 7/7] tcg: Remove the TCG_GUEST_DEFAULT_MO
 definition globally
Date: Fri, 21 Mar 2025 19:15:49 +0100
Message-ID: <20250321181549.3331-8-philmd@linaro.org>
X-Mailer: git-send-email 2.47.1
In-Reply-To: <20250321181549.3331-1-philmd@linaro.org>
References: <20250321181549.3331-1-philmd@linaro.org>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17
 as permitted sender) client-ip=209.51.188.17;
 envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org;
 helo=lists.gnu.org;
Received-SPF: pass client-ip=2a00:1450:4864:20::334;
 envelope-from=philmd@linaro.org; helo=mail-wm1-x334.google.com
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
 RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: qemu-devel@nongnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <qemu-devel.nongnu.org>
List-Unsubscribe: <https://lists.nongnu.org/mailman/options/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>
List-Archive: <https://lists.nongnu.org/archive/html/qemu-devel>
List-Post: <mailto:qemu-devel@nongnu.org>
List-Help: <mailto:qemu-devel-request@nongnu.org?subject=help>
List-Subscribe: <https://lists.nongnu.org/mailman/listinfo/qemu-devel>,
 <mailto:qemu-devel-request@nongnu.org?subject=subscribe>
Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org
Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org
X-ZohoMail-DKIM: pass (identity @linaro.org)
X-ZM-MESSAGEID: 1742581013787019000

By directly using TCGCPUOps::guest_default_memory_order,
we don't need the TCG_GUEST_DEFAULT_MO definition anymore.

Signed-off-by: Philippe Mathieu-Daud=C3=A9 <philmd@linaro.org>
Reviewed-by: Anton Johansson <anjo@rev.ng>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
---
 docs/devel/multi-thread-tcg.rst |  4 ++--
 target/alpha/cpu-param.h        |  3 ---
 target/arm/cpu-param.h          |  3 ---
 target/avr/cpu-param.h          |  2 --
 target/hexagon/cpu-param.h      |  3 ---
 target/hppa/cpu-param.h         |  8 --------
 target/i386/cpu-param.h         |  3 ---
 target/loongarch/cpu-param.h    |  2 --
 target/m68k/cpu-param.h         |  3 ---
 target/microblaze/cpu-param.h   |  3 ---
 target/mips/cpu-param.h         |  2 --
 target/openrisc/cpu-param.h     |  2 --
 target/ppc/cpu-param.h          |  2 --
 target/riscv/cpu-param.h        |  2 --
 target/rx/cpu-param.h           |  3 ---
 target/s390x/cpu-param.h        |  6 ------
 target/sh4/cpu-param.h          |  3 ---
 target/sparc/cpu-param.h        | 23 -----------------------
 target/tricore/cpu-param.h      |  3 ---
 target/xtensa/cpu-param.h       |  3 ---
 target/alpha/cpu.c              |  3 ++-
 target/arm/cpu.c                |  3 ++-
 target/arm/tcg/cpu-v7m.c        |  3 ++-
 target/avr/cpu.c                |  2 +-
 target/hexagon/cpu.c            |  3 ++-
 target/hppa/cpu.c               |  8 +++++++-
 target/i386/tcg/tcg-cpu.c       |  5 ++++-
 target/loongarch/cpu.c          |  2 +-
 target/m68k/cpu.c               |  3 ++-
 target/microblaze/cpu.c         |  3 ++-
 target/mips/cpu.c               |  2 +-
 target/openrisc/cpu.c           |  2 +-
 target/ppc/cpu_init.c           |  2 +-
 target/riscv/tcg/tcg-cpu.c      |  2 +-
 target/rx/cpu.c                 |  3 ++-
 target/s390x/cpu.c              |  6 +++++-
 target/sh4/cpu.c                |  3 ++-
 target/sparc/cpu.c              | 23 ++++++++++++++++++++++-
 target/tricore/cpu.c            |  3 ++-
 target/xtensa/cpu.c             |  3 ++-
 40 files changed, 66 insertions(+), 101 deletions(-)

diff --git a/docs/devel/multi-thread-tcg.rst b/docs/devel/multi-thread-tcg.=
rst
index b0f473961dd..14a2a9dc7b5 100644
--- a/docs/devel/multi-thread-tcg.rst
+++ b/docs/devel/multi-thread-tcg.rst
@@ -28,8 +28,8 @@ vCPU Scheduling
 We introduce a new running mode where each vCPU will run on its own
 user-space thread. This is enabled by default for all FE/BE
 combinations where the host memory model is able to accommodate the
-guest (TCG_GUEST_DEFAULT_MO & ~TCG_TARGET_DEFAULT_MO is zero) and the
-guest has had the required work done to support this safely
+guest (TCGCPUOps::guest_default_memory_order & ~TCG_TARGET_DEFAULT_MO is z=
ero)
+and the guest has had the required work done to support this safely
 (TARGET_SUPPORTS_MTTCG).
=20
 System emulation will fall back to the original round robin approach
diff --git a/target/alpha/cpu-param.h b/target/alpha/cpu-param.h
index ff06e41497a..c74556d2667 100644
--- a/target/alpha/cpu-param.h
+++ b/target/alpha/cpu-param.h
@@ -25,7 +25,4 @@
 # define TARGET_VIRT_ADDR_SPACE_BITS  (30 + TARGET_PAGE_BITS)
 #endif
=20
-/* Alpha processors have a weak memory model */
-#define TCG_GUEST_DEFAULT_MO      (0)
-
 #endif
diff --git a/target/arm/cpu-param.h b/target/arm/cpu-param.h
index 896b35bd6d5..55de4d54544 100644
--- a/target/arm/cpu-param.h
+++ b/target/arm/cpu-param.h
@@ -38,7 +38,4 @@
 # define TARGET_PAGE_BITS_MIN  10
 #endif /* !CONFIG_USER_ONLY */
=20
-/* ARM processors have a weak memory model */
-#define TCG_GUEST_DEFAULT_MO      (0)
-
 #endif
diff --git a/target/avr/cpu-param.h b/target/avr/cpu-param.h
index 81f3f49ee1f..11e827109c0 100644
--- a/target/avr/cpu-param.h
+++ b/target/avr/cpu-param.h
@@ -31,6 +31,4 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 24
 #define TARGET_VIRT_ADDR_SPACE_BITS 24
=20
-#define TCG_GUEST_DEFAULT_MO 0
-
 #endif
diff --git a/target/hexagon/cpu-param.h b/target/hexagon/cpu-param.h
index 2d57ea6caf9..45ee7b46409 100644
--- a/target/hexagon/cpu-param.h
+++ b/target/hexagon/cpu-param.h
@@ -23,7 +23,4 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 36
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
=20
-/* MTTCG not yet supported: require strict ordering */
-#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
-
 #endif
diff --git a/target/hppa/cpu-param.h b/target/hppa/cpu-param.h
index 7ed6b5741e7..e0b2c7c9157 100644
--- a/target/hppa/cpu-param.h
+++ b/target/hppa/cpu-param.h
@@ -19,12 +19,4 @@
=20
 #define TARGET_PAGE_BITS 12
=20
-/* PA-RISC 1.x processors have a strong memory model.  */
-/*
- * ??? While we do not yet implement PA-RISC 2.0, those processors have
- * a weak memory model, but with TLB bits that force ordering on a per-page
- * basis.  It's probably easier to fall back to a strong memory model.
- */
-#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
-
 #endif
diff --git a/target/i386/cpu-param.h b/target/i386/cpu-param.h
index b0e884c5d70..909bc027923 100644
--- a/target/i386/cpu-param.h
+++ b/target/i386/cpu-param.h
@@ -22,7 +22,4 @@
 #endif
 #define TARGET_PAGE_BITS 12
=20
-/* The x86 has a strong memory model with some store-after-load re-orderin=
g */
-#define TCG_GUEST_DEFAULT_MO      (TCG_MO_ALL & ~TCG_MO_ST_LD)
-
 #endif
diff --git a/target/loongarch/cpu-param.h b/target/loongarch/cpu-param.h
index 52437946e56..071567712b3 100644
--- a/target/loongarch/cpu-param.h
+++ b/target/loongarch/cpu-param.h
@@ -13,6 +13,4 @@
=20
 #define TARGET_PAGE_BITS 12
=20
-#define TCG_GUEST_DEFAULT_MO (0)
-
 #endif
diff --git a/target/m68k/cpu-param.h b/target/m68k/cpu-param.h
index 1a909eaa13e..7afbf6d302d 100644
--- a/target/m68k/cpu-param.h
+++ b/target/m68k/cpu-param.h
@@ -17,7 +17,4 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
=20
-/* MTTCG not yet supported: require strict ordering */
-#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
-
 #endif
diff --git a/target/microblaze/cpu-param.h b/target/microblaze/cpu-param.h
index c866ec6c149..6a0714bb3d7 100644
--- a/target/microblaze/cpu-param.h
+++ b/target/microblaze/cpu-param.h
@@ -27,7 +27,4 @@
 /* FIXME: MB uses variable pages down to 1K but linux only uses 4k.  */
 #define TARGET_PAGE_BITS 12
=20
-/* MicroBlaze is always in-order. */
-#define TCG_GUEST_DEFAULT_MO  TCG_MO_ALL
-
 #endif
diff --git a/target/mips/cpu-param.h b/target/mips/cpu-param.h
index 11b3ac0ac63..35fb6ea7243 100644
--- a/target/mips/cpu-param.h
+++ b/target/mips/cpu-param.h
@@ -25,6 +25,4 @@
 #define TARGET_PAGE_BITS_MIN 12
 #endif
=20
-#define TCG_GUEST_DEFAULT_MO (0)
-
 #endif
diff --git a/target/openrisc/cpu-param.h b/target/openrisc/cpu-param.h
index 37627f2c394..3011bf5fcca 100644
--- a/target/openrisc/cpu-param.h
+++ b/target/openrisc/cpu-param.h
@@ -12,6 +12,4 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
=20
-#define TCG_GUEST_DEFAULT_MO (0)
-
 #endif
diff --git a/target/ppc/cpu-param.h b/target/ppc/cpu-param.h
index 6c4525fdf3c..2cee113ddd3 100644
--- a/target/ppc/cpu-param.h
+++ b/target/ppc/cpu-param.h
@@ -38,6 +38,4 @@
 # define TARGET_PAGE_BITS 12
 #endif
=20
-#define TCG_GUEST_DEFAULT_MO 0
-
 #endif
diff --git a/target/riscv/cpu-param.h b/target/riscv/cpu-param.h
index fba30e966a8..a80310ef2c5 100644
--- a/target/riscv/cpu-param.h
+++ b/target/riscv/cpu-param.h
@@ -26,6 +26,4 @@
  *  - M mode HLV/HLVX/HSV 0b111
  */
=20
-#define TCG_GUEST_DEFAULT_MO 0
-
 #endif
diff --git a/target/rx/cpu-param.h b/target/rx/cpu-param.h
index 2ce199164d7..ef1970a09e9 100644
--- a/target/rx/cpu-param.h
+++ b/target/rx/cpu-param.h
@@ -24,7 +24,4 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
=20
-/* MTTCG not yet supported: require strict ordering */
-#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
-
 #endif
diff --git a/target/s390x/cpu-param.h b/target/s390x/cpu-param.h
index 5c331ec424c..a5f798eeae7 100644
--- a/target/s390x/cpu-param.h
+++ b/target/s390x/cpu-param.h
@@ -12,10 +12,4 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 64
 #define TARGET_VIRT_ADDR_SPACE_BITS 64
=20
-/*
- * The z/Architecture has a strong memory model with some
- * store-after-load re-ordering.
- */
-#define TCG_GUEST_DEFAULT_MO      (TCG_MO_ALL & ~TCG_MO_ST_LD)
-
 #endif
diff --git a/target/sh4/cpu-param.h b/target/sh4/cpu-param.h
index 1bc90d4695e..2b6e11dd0ac 100644
--- a/target/sh4/cpu-param.h
+++ b/target/sh4/cpu-param.h
@@ -16,7 +16,4 @@
 # define TARGET_VIRT_ADDR_SPACE_BITS 32
 #endif
=20
-/* MTTCG not yet supported: require strict ordering */
-#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
-
 #endif
diff --git a/target/sparc/cpu-param.h b/target/sparc/cpu-param.h
index 6952ee2b826..6e8e2a51469 100644
--- a/target/sparc/cpu-param.h
+++ b/target/sparc/cpu-param.h
@@ -21,27 +21,4 @@
 # define TARGET_VIRT_ADDR_SPACE_BITS 32
 #endif
=20
-/*
- * From Oracle SPARC Architecture 2015:
- *
- *   Compatibility notes: The PSO memory model described in SPARC V8 and
- *   SPARC V9 compatibility architecture specifications was never implemen=
ted
- *   in a SPARC V9 implementation and is not included in the Oracle SPARC
- *   Architecture specification.
- *
- *   The RMO memory model described in the SPARC V9 specification was
- *   implemented in some non-Sun SPARC V9 implementations, but is not
- *   directly supported in Oracle SPARC Architecture 2015 implementations.
- *
- * Therefore always use TSO in QEMU.
- *
- * D.5 Specification of Partial Store Order (PSO)
- *   ... [loads] are followed by an implied MEMBAR #LoadLoad | #LoadStore.
- *
- * D.6 Specification of Total Store Order (TSO)
- *   ... PSO with the additional requirement that all [stores] are followed
- *   by an implied MEMBAR #StoreStore.
- */
-#define TCG_GUEST_DEFAULT_MO  (TCG_MO_LD_LD | TCG_MO_LD_ST | TCG_MO_ST_ST)
-
 #endif
diff --git a/target/tricore/cpu-param.h b/target/tricore/cpu-param.h
index 923459370cc..790242ef3d2 100644
--- a/target/tricore/cpu-param.h
+++ b/target/tricore/cpu-param.h
@@ -12,7 +12,4 @@
 #define TARGET_PHYS_ADDR_SPACE_BITS 32
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
=20
-/* MTTCG not yet supported: require strict ordering */
-#define TCG_GUEST_DEFAULT_MO        TCG_MO_ALL
-
 #endif
diff --git a/target/xtensa/cpu-param.h b/target/xtensa/cpu-param.h
index 5e4848ad059..06d85218b84 100644
--- a/target/xtensa/cpu-param.h
+++ b/target/xtensa/cpu-param.h
@@ -16,7 +16,4 @@
 #define TARGET_VIRT_ADDR_SPACE_BITS 32
 #endif
=20
-/* Xtensa processors have a weak memory model */
-#define TCG_GUEST_DEFAULT_MO      (0)
-
 #endif
diff --git a/target/alpha/cpu.c b/target/alpha/cpu.c
index 00905d48621..e5e14976f51 100644
--- a/target/alpha/cpu.c
+++ b/target/alpha/cpu.c
@@ -239,7 +239,8 @@ static const TCGCPUOps alpha_tcg_ops =3D {
     .synchronize_from_tb =3D alpha_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D alpha_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* Alpha processors have a weak memory model */
+    .guest_default_memory_order =3D 0,
=20
 #ifdef CONFIG_USER_ONLY
     .record_sigsegv =3D alpha_cpu_record_sigsegv,
diff --git a/target/arm/cpu.c b/target/arm/cpu.c
index 9e858ae8c77..8b9f2acf82b 100644
--- a/target/arm/cpu.c
+++ b/target/arm/cpu.c
@@ -2675,7 +2675,8 @@ static const TCGCPUOps arm_tcg_ops =3D {
     .debug_excp_handler =3D arm_debug_excp_handler,
     .restore_state_to_opc =3D arm_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* ARM processors have a weak memory model */
+    .guest_default_memory_order =3D 0,
=20
 #ifdef CONFIG_USER_ONLY
     .record_sigsegv =3D arm_cpu_record_sigsegv,
diff --git a/target/arm/tcg/cpu-v7m.c b/target/arm/tcg/cpu-v7m.c
index 6f714324ffd..df6b7198944 100644
--- a/target/arm/tcg/cpu-v7m.c
+++ b/target/arm/tcg/cpu-v7m.c
@@ -238,7 +238,8 @@ static const TCGCPUOps arm_v7m_tcg_ops =3D {
     .debug_excp_handler =3D arm_debug_excp_handler,
     .restore_state_to_opc =3D arm_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* ARM processors have a weak memory model */
+    .guest_default_memory_order =3D 0,
=20
 #ifdef CONFIG_USER_ONLY
     .record_sigsegv =3D arm_cpu_record_sigsegv,
diff --git a/target/avr/cpu.c b/target/avr/cpu.c
index 330e50f74e7..24e52e28f44 100644
--- a/target/avr/cpu.c
+++ b/target/avr/cpu.c
@@ -216,7 +216,7 @@ static const TCGCPUOps avr_tcg_ops =3D {
     .cpu_exec_halt =3D avr_cpu_has_work,
     .tlb_fill =3D avr_cpu_tlb_fill,
     .do_interrupt =3D avr_cpu_do_interrupt,
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    .guest_default_memory_order =3D 0,
 };
=20
 static void avr_cpu_class_init(ObjectClass *oc, void *data)
diff --git a/target/hexagon/cpu.c b/target/hexagon/cpu.c
index 669f7440f52..34734b0edb0 100644
--- a/target/hexagon/cpu.c
+++ b/target/hexagon/cpu.c
@@ -324,7 +324,8 @@ static const TCGCPUOps hexagon_tcg_ops =3D {
     .translate_code =3D hexagon_translate_code,
     .synchronize_from_tb =3D hexagon_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D hexagon_restore_state_to_opc,
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* MTTCG not yet supported: require strict ordering */
+    .guest_default_memory_order =3D TCG_MO_ALL,
 };
=20
 static void hexagon_cpu_class_init(ObjectClass *c, void *data)
diff --git a/target/hppa/cpu.c b/target/hppa/cpu.c
index 15cbcd2d957..997bd69db19 100644
--- a/target/hppa/cpu.c
+++ b/target/hppa/cpu.c
@@ -257,7 +257,13 @@ static const TCGCPUOps hppa_tcg_ops =3D {
     .synchronize_from_tb =3D hppa_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D hppa_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* PA-RISC 1.x processors have a strong memory model.  */
+    /*
+     * ??? While we do not yet implement PA-RISC 2.0, those processors have
+     * a weak memory model, but with TLB bits that force ordering on a per=
-page
+     * basis.  It's probably easier to fall back to a strong memory model.
+     */
+    .guest_default_memory_order =3D TCG_MO_ALL,
=20
 #ifndef CONFIG_USER_ONLY
     .tlb_fill_align =3D hppa_cpu_tlb_fill_align,
diff --git a/target/i386/tcg/tcg-cpu.c b/target/i386/tcg/tcg-cpu.c
index de2fe8e04f4..4a76c475971 100644
--- a/target/i386/tcg/tcg-cpu.c
+++ b/target/i386/tcg/tcg-cpu.c
@@ -129,7 +129,10 @@ static const TCGCPUOps x86_tcg_ops =3D {
     .need_replay_interrupt =3D x86_need_replay_interrupt,
 #endif /* !CONFIG_USER_ONLY */
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /*
+     * The x86 has a strong memory model with some store-after-load re-ord=
ering
+     */
+    .guest_default_memory_order =3D TCG_MO_ALL & ~TCG_MO_ST_LD,
 };
=20
 static void x86_tcg_cpu_init_ops(AccelCPUClass *accel_cpu, CPUClass *cc)
diff --git a/target/loongarch/cpu.c b/target/loongarch/cpu.c
index 5b9dd5048d4..c39ff056157 100644
--- a/target/loongarch/cpu.c
+++ b/target/loongarch/cpu.c
@@ -869,7 +869,7 @@ static const TCGCPUOps loongarch_tcg_ops =3D {
     .synchronize_from_tb =3D loongarch_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D loongarch_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    .guest_default_memory_order =3D 0,
=20
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D loongarch_cpu_tlb_fill,
diff --git a/target/m68k/cpu.c b/target/m68k/cpu.c
index dc742ddc2cb..e96b379e266 100644
--- a/target/m68k/cpu.c
+++ b/target/m68k/cpu.c
@@ -593,7 +593,8 @@ static const TCGCPUOps m68k_tcg_ops =3D {
     .translate_code =3D m68k_translate_code,
     .restore_state_to_opc =3D m68k_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* MTTCG not yet supported: require strict ordering */
+    .guest_default_memory_order =3D TCG_MO_ALL,
=20
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D m68k_cpu_tlb_fill,
diff --git a/target/microblaze/cpu.c b/target/microblaze/cpu.c
index 32f9e32502c..4b9ef6e52c4 100644
--- a/target/microblaze/cpu.c
+++ b/target/microblaze/cpu.c
@@ -432,7 +432,8 @@ static const TCGCPUOps mb_tcg_ops =3D {
     .synchronize_from_tb =3D mb_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D mb_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* MicroBlaze is always in-order. */
+    .guest_default_memory_order =3D TCG_MO_ALL,
=20
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D mb_cpu_tlb_fill,
diff --git a/target/mips/cpu.c b/target/mips/cpu.c
index 207b7d3c8db..5ddc9bbb829 100644
--- a/target/mips/cpu.c
+++ b/target/mips/cpu.c
@@ -554,7 +554,7 @@ static const TCGCPUOps mips_tcg_ops =3D {
     .synchronize_from_tb =3D mips_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D mips_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    .guest_default_memory_order =3D 0,
=20
 #if !defined(CONFIG_USER_ONLY)
     .tlb_fill =3D mips_cpu_tlb_fill,
diff --git a/target/openrisc/cpu.c b/target/openrisc/cpu.c
index c6a1d603afb..6a878aaadd8 100644
--- a/target/openrisc/cpu.c
+++ b/target/openrisc/cpu.c
@@ -248,7 +248,7 @@ static const TCGCPUOps openrisc_tcg_ops =3D {
     .synchronize_from_tb =3D openrisc_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D openrisc_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    .guest_default_memory_order =3D 0,
=20
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D openrisc_cpu_tlb_fill,
diff --git a/target/ppc/cpu_init.c b/target/ppc/cpu_init.c
index 28f6f6bc2ba..28fbbb8d3c1 100644
--- a/target/ppc/cpu_init.c
+++ b/target/ppc/cpu_init.c
@@ -7490,7 +7490,7 @@ static const TCGCPUOps ppc_tcg_ops =3D {
   .translate_code =3D ppc_translate_code,
   .restore_state_to_opc =3D ppc_restore_state_to_opc,
=20
-  .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+  .guest_default_memory_order =3D 0,
=20
 #ifdef CONFIG_USER_ONLY
   .record_sigsegv =3D ppc_cpu_record_sigsegv,
diff --git a/target/riscv/tcg/tcg-cpu.c b/target/riscv/tcg/tcg-cpu.c
index 0e5fa10784d..fb903992faa 100644
--- a/target/riscv/tcg/tcg-cpu.c
+++ b/target/riscv/tcg/tcg-cpu.c
@@ -139,7 +139,7 @@ static const TCGCPUOps riscv_tcg_ops =3D {
     .synchronize_from_tb =3D riscv_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D riscv_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    .guest_default_memory_order =3D 0,
=20
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D riscv_cpu_tlb_fill,
diff --git a/target/rx/cpu.c b/target/rx/cpu.c
index ae78c661079..6a24e7e9136 100644
--- a/target/rx/cpu.c
+++ b/target/rx/cpu.c
@@ -213,7 +213,8 @@ static const TCGCPUOps rx_tcg_ops =3D {
     .cpu_exec_halt =3D rx_cpu_has_work,
     .do_interrupt =3D rx_cpu_do_interrupt,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* MTTCG not yet supported: require strict ordering */
+    .guest_default_memory_order =3D TCG_MO_ALL,
 };
=20
 static void rx_cpu_class_init(ObjectClass *klass, void *data)
diff --git a/target/s390x/cpu.c b/target/s390x/cpu.c
index 975b8353026..12fd853c00a 100644
--- a/target/s390x/cpu.c
+++ b/target/s390x/cpu.c
@@ -361,7 +361,11 @@ static const TCGCPUOps s390_tcg_ops =3D {
     .do_unaligned_access =3D s390x_cpu_do_unaligned_access,
 #endif /* !CONFIG_USER_ONLY */
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /*
+     * The z/Architecture has a strong memory model with some
+     * store-after-load re-ordering.
+     */
+    .guest_default_memory_order =3D TCG_MO_ALL & ~TCG_MO_ST_LD,
 };
 #endif /* CONFIG_TCG */
=20
diff --git a/target/sh4/cpu.c b/target/sh4/cpu.c
index 6d319dd01c7..ce9ed75107a 100644
--- a/target/sh4/cpu.c
+++ b/target/sh4/cpu.c
@@ -267,7 +267,8 @@ static const TCGCPUOps superh_tcg_ops =3D {
     .synchronize_from_tb =3D superh_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D superh_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* MTTCG not yet supported: require strict ordering */
+    .guest_default_memory_order =3D TCG_MO_ALL,
=20
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D superh_cpu_tlb_fill,
diff --git a/target/sparc/cpu.c b/target/sparc/cpu.c
index 961c7f92a84..39bd0c42855 100644
--- a/target/sparc/cpu.c
+++ b/target/sparc/cpu.c
@@ -1005,7 +1005,28 @@ static const TCGCPUOps sparc_tcg_ops =3D {
     .synchronize_from_tb =3D sparc_cpu_synchronize_from_tb,
     .restore_state_to_opc =3D sparc_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /*
+     * From Oracle SPARC Architecture 2015:
+     *
+     *   Compatibility notes: The PSO memory model described in SPARC V8 a=
nd
+     *   SPARC V9 compatibility architecture specifications was never
+     *   implemented in a SPARC V9 implementation and is not included in t=
he
+     *   Oracle SPARC Architecture specification.
+     *
+     *   The RMO memory model described in the SPARC V9 specification was
+     *   implemented in some non-Sun SPARC V9 implementations, but is not
+     *   directly supported in Oracle SPARC Architecture 2015 implementati=
ons.
+     *
+     * Therefore always use TSO in QEMU.
+     *
+     * D.5 Specification of Partial Store Order (PSO)
+     *   ... [loads] are followed by an implied MEMBAR #LoadLoad | #LoadSt=
ore.
+     *
+     * D.6 Specification of Total Store Order (TSO)
+     *   ... PSO with the additional requirement that all [stores] are fol=
lowed
+     *   by an implied MEMBAR #StoreStore.
+     */
+    .guest_default_memory_order =3D TCG_MO_LD_LD | TCG_MO_LD_ST | TCG_MO_S=
T_ST,
=20
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D sparc_cpu_tlb_fill,
diff --git a/target/tricore/cpu.c b/target/tricore/cpu.c
index 960e7093f1c..e0a48065948 100644
--- a/target/tricore/cpu.c
+++ b/target/tricore/cpu.c
@@ -179,7 +179,8 @@ static const TCGCPUOps tricore_tcg_ops =3D {
     .tlb_fill =3D tricore_cpu_tlb_fill,
     .cpu_exec_interrupt =3D tricore_cpu_exec_interrupt,
     .cpu_exec_halt =3D tricore_cpu_has_work,
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* MTTCG not yet supported: require strict ordering */
+    .guest_default_memory_order =3D TCG_MO_ALL,
 };
=20
 static void tricore_cpu_class_init(ObjectClass *c, void *data)
diff --git a/target/xtensa/cpu.c b/target/xtensa/cpu.c
index 0a4068ad7bf..dd9061ba469 100644
--- a/target/xtensa/cpu.c
+++ b/target/xtensa/cpu.c
@@ -237,7 +237,8 @@ static const TCGCPUOps xtensa_tcg_ops =3D {
     .debug_excp_handler =3D xtensa_breakpoint_handler,
     .restore_state_to_opc =3D xtensa_restore_state_to_opc,
=20
-    .guest_default_memory_order =3D TCG_GUEST_DEFAULT_MO,
+    /* Xtensa processors have a weak memory model */
+    .guest_default_memory_order =3D 0,
=20
 #ifndef CONFIG_USER_ONLY
     .tlb_fill =3D xtensa_cpu_tlb_fill,
--=20
2.47.1