From nobody Mon Feb 9 07:39:35 2026 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=1767977503; cv=none; d=zohomail.com; s=zohoarc; b=UMAvK9Xpj+K9fyI0Zx/r3TlRPC0uXTIHYNSV6uVBaqXvkVNfsq7uO1Qp/uirKERhkXOLb00iAtnEnc6PG8RxwhiBMTWdaJwsPg4cg8Q5IHfwacuF6sDoPTmefOANV16zm74T+WSagNInsUfa22Z90hxcaXwExKirpdW1q9h5rNk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977503; 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=k6wRQ7EoY84wSQD0D7CNjpx8CjZayMzdWIMhqkkeAcM=; b=juK5ub8ofhWyWPohNrIh72nDrsx6C7Sf6PpQPZhzela1fmU/BnIAfKPEZCgjuSSP0k7v1cXuceZ8nLJDYRsOFmOQsMfazmwdANdy9mEatao2f8VZHaCX/dxkz82SsPr1BdBdh0Xf2OmbP5pGL4PyacWCNYTDCMJ7HgKtDtE9nQQ= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977503105265.5439778634578; Fri, 9 Jan 2026 08:51:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFhj-00045Q-Gd; Fri, 09 Jan 2026 11:51:15 -0500 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 ) id 1veFhf-0003xb-Ix for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:11 -0500 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFhd-0007KL-1E for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:11 -0500 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-4779ce2a624so37099065e9.2 for ; Fri, 09 Jan 2026 08:51:08 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d8678cad8sm71386885e9.3.2026.01.09.08.51.05 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:51:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977467; x=1768582267; 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=k6wRQ7EoY84wSQD0D7CNjpx8CjZayMzdWIMhqkkeAcM=; b=lMwEVVMKJE9ApRsGJIGs7qDqaIVYDauDAIJw4/3wXPhSZtfzJp0DgoDHc/WEIvGzp3 jiJDOcsVnWBxKwkz2luLVryv5F8NN1SZVbhuTS01FbD92+Vwc0wyjNciZ/DzeOBKAOTY V29kf4AEti6Dzc4FkP9hYnFgqU+fNTkH5lLCN3pbYROD2DGkp1aDil8+/0UpmBW3BPy4 Nb/Ot7ca09S0wflD+SK/GM2hhXjpmM5OvuDExaE9WmlXwB8740OQ7U6DSalpNHbxhcFD K7GSwhfnUJUow2bfNOg9Pvq0DTbh4HPpKGT8cl1DZ+RGlHoTP5nMLzLnRCGN6bgMwyNd vGQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977467; x=1768582267; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=k6wRQ7EoY84wSQD0D7CNjpx8CjZayMzdWIMhqkkeAcM=; b=dE0Hnk8dkme1ZCC9Pt2lbskOCmpjOv59ubAGU/E1jCjIToTZ4trvkce+kaD3U9YSw7 PRIxvE8rb9oU596zV5cx6M0bJhTJZX3PnI9tjlVIZHA5DIfWvmguOZGrE86waos3RlqU hydhnB4VRDps4FsW4zLb7wTKoRVl4lcu+BhtdhVuR7pQBhbesTXnZpgRBIPMB0uDTqG1 Dw3dCRbSJtUsROScZerp6sHhHi1wDxnUl2JF4aHsWcg1F0skvpf8UVZQNm5N1tL1AkTf WIbHaMrl+Jh3WZG8RibVLmCK901poyngjfemuzgJ1zXLK3f0fkQiwMcy42zCwehx+xGf 9ZIw== X-Gm-Message-State: AOJu0Yzed1AV3bN3TQbEvyrML3nbX4BNH8evvQ65engIXR+2Q2IHRTIZ fuDEm188YTsuSk9oAgrXO5r/iJenw06QUuHq/oPzBGd9t0LutL4lNQ6b+1CJtCLNhQOQsXgXUDP WsaTsRrM= X-Gm-Gg: AY/fxX4aocsPo9DFjXKiV2Ui344rYvrmoun+T0txWsu2xlqwqx4tSxdy95D0Jr/iB1N 6R7WZCdvsdeevtabyzxI8jwNDMYU4Z/ekM3lQlmzK/BGYjGCdixPzu1AhEQgOfSC02WNtYMhwub p3tyWBvy1+mpZE1rpQcL5/D7UyAe76Ei2oErJdEv0+ux0JGz+pvYyBwPp4hiMtkaigh04JX4kfL yjq5xa+LKXFU0l2LILBXoHCU6vKaCGWvF43K/6rBickU+p9SUrIIKdsRBWHHi22m8gYjHCf3pte HPzQKptjYaRw2zyW1j2jRnfJuMyhp9YLdvQ+2TFpiAXBR/o7KynzfjW9PaWdG8OC8oX5iCGXcVL WuLC7xOClTPkFIwdKIdkIXcxFd7VDZUvGYG6bDfZN+4ks/xxohr0Z+8IuuAagOyc3TB5pyb3Dbg ol64wUw9mRscs/l+GgA6kfLpx8atwc91gmufZvdscPbxTh3yhcGAVIG3UZeAv6 X-Google-Smtp-Source: AGHT+IGSKFpoHh6csrW5QCNqs0FMb8ZHO0llm5SQY0+OH5bhNsdKPG/YinwobrdG1LMHr3CAsxvkMg== X-Received: by 2002:a05:600c:3e8e:b0:47d:2093:649f with SMTP id 5b1f17b1804b1-47d84b187b4mr104497875e9.8.1767977466606; Fri, 09 Jan 2026 08:51:06 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 01/22] MAINTAINERS: Cover 'system/memory_ldst*.h.inc' files Date: Fri, 9 Jan 2026 17:50:37 +0100 Message-ID: <20260109165058.59144-2-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::335; envelope-from=philmd@linaro.org; helo=mail-wm1-x335.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977505721158500 Missed in commit c611228c0ed ("include: move memory_ldst* to include/system"). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson --- MAINTAINERS | 1 + 1 file changed, 1 insertion(+) diff --git a/MAINTAINERS b/MAINTAINERS index 6602c9891db..2d8583cbb52 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3260,6 +3260,7 @@ F: include/exec/memop.h F: include/qemu/ldst_unaligned.h F: include/system/ram_addr.h F: include/system/memory.h +F: include/system/memory_ldst* F: include/system/physmem.h F: include/system/ramblock.h F: include/system/memory_mapping.h --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977504; cv=none; d=zohomail.com; s=zohoarc; b=SSgJD0E1IUjRfOc9jX7b9x41bUXXh/VMthfheI+kUNw0IEyaEcN73FOw7WL4uZXwHjXK2KnXdlOQ3gTQqm5DGo9x1o3wgBzPBVDvXhWTV8/Cp5IZozHOoeprjiIM9Ey2kGBzr41cSYqfoXZIeZwcIk2fFgf+1+BbDU43ybbSIHE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977504; 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=+zZ+dDg2AAGkhLg3iXfpGTgf3L8BMi8SqQDgfdcxl7o=; b=Y/shigj0oeM0xKVgqm8HmjTvbmagSdfIGFtuwE1aC3ZiV03soNSighR8V2vKptPe3eZ6McOQlWvxNrKp2xrKUOUEMUi70lgtYw4Wf/OpzzAJ9x8I+sJIfT/vDnv5uAU2rBE+EQaFZvddMtostxnNg54fIzf1eV1PwibIpIsNz/w= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977504219308.35463936724966; Fri, 9 Jan 2026 08:51:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFi8-0004LO-4f; Fri, 09 Jan 2026 11:51:42 -0500 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 ) id 1veFhl-00048L-13 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:17 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFhj-0007Km-8K for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:16 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-47d3ffb0f44so31095315e9.3 for ; Fri, 09 Jan 2026 08:51:14 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f410c6csm229120445e9.1.2026.01.09.08.51.12 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:51:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977473; x=1768582273; 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=+zZ+dDg2AAGkhLg3iXfpGTgf3L8BMi8SqQDgfdcxl7o=; b=KGyWnPfE9rwi8Zkd6N6kD7ua8IPwhq7CQQDphGZ7uHMcWStwfIHchtGBLKArMCAlcp a51PTnw8zNN8HY8Nh6sC9E9x55UgVBSL+JM0CfpnO4qdYWyOsW/70JxEaH2H2YOcwH4V yTQT2Eo907A+klqPHJh+I5I6HX76aMXxnB2HTGO68ayns7u+OArgjXfxc4M2Nghmzyrd X3WhXDVF2rKy2qOxmkv6Bj0SBFuNBwGvOEW2ABRpyX+9ztiX4XmlyxI8BBDTlZEm6KZU hCBCl/GmGf6+K8lMvk10WpZhLar0nQAU3/ybEWJPVLToLKDyZVedJrS9VdGdMwLwcQIu sp8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977473; x=1768582273; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=+zZ+dDg2AAGkhLg3iXfpGTgf3L8BMi8SqQDgfdcxl7o=; b=HdQ4aUqWvmkLpMHEkKw0e6+PSGwZXy3rKIIphRJXwzy6OHQtWWxhvcbQZkWDz3nrbh q97KaigJdZMv6jN6xhpwR/u4gPGaamRiDUjLmxVNzDnLBRs6tAXVu6hUSga+E9BuLNU7 lesI7avXG4+rY6BUCrpNzG8Ckhv+GmkrD2invfnsTcpNusK2NZpyk57X5VofeCvv/Csc xG6S+Ny445vG/bgAlRJ9MVP4M9Vf8aLWzCggKRL4rXslrQBF5KH0JdwNa/I2pk8jYP2e /NORDb33xcXZ+43gZhbu17inLB9vCrceEOpW+gYQPQQwj0fPO1E8VE/pFQCYJHTWbb9m u3xA== X-Gm-Message-State: AOJu0YzK2JVmCFYSKYQYXjqa0lwtysj5lzk/CFRfxnnDZgi/vsu6sU21 6G44aTFJDEm/sXEzofDW+gUH1yu6bjACUYIpNeRbAuT6iWZE0bYwecZJijoa5efKzH+dHa5PHeg tKDTaWHs= X-Gm-Gg: AY/fxX55zzknvSb6ypEFC64gRaOivswW1Ic+Bf//gwO0RYHT7ZrQ8fS3RWWPAtHuMFd N3uCIlyFduB3qJ9o8CFTaMzBkb1iwFDXxZEw12ccZEaMX3j7WF7I65KCwHYIdN9Uguo+frMCDVF uFC2gyZXLDowkHI7cLAMoBz4bb/NGBoT35NweKVb0e36zTmUg/qbW/M02zVVilHdrliyEecZbRU ZIWBejWztdgYo9Ek1+ZWMBKudEeU4DQWW08PjKXXlv0d9VAAJ0QYO13X1v9+RFMK79CFLWgvIkl BrOJvJJP11mJPU1VxvKsVkd5cEHwq2RNNiEDKesrrOSIXG2ar36VMxAI+6tcozwxjtGaXsfDvsz ZQ8xphZXV6OfJwkCuQCAVcd5JSu7TBMHoagV+bYDkxuLNd3NT+rRujUS9e5Qxttkq4+sewKivrc vDlqyRM2leW9EVhXHrF4I735vftCi/oUY6zuThjEJ1EEBa1QRPt9OvIR439KGW X-Google-Smtp-Source: AGHT+IGfBX5ZEL4YgGTs+lz57QNk4mso7mW/2kECJmx/vj/PzGxDApso3ZuWoIWgdIusOLIG1o7lAg== X-Received: by 2002:a05:600c:3114:b0:477:76c2:49c9 with SMTP id 5b1f17b1804b1-47d84b18954mr105924645e9.2.1767977473318; Fri, 09 Jan 2026 08:51:13 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 02/22] util: Introduce ldm_p() and stm_p() load/store helpers Date: Fri, 9 Jan 2026 17:50:38 +0100 Message-ID: <20260109165058.59144-3-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::32c; envelope-from=philmd@linaro.org; helo=mail-wm1-x32c.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977505783158500 Introduce load/store helpers which take a MemOp argument. Inspired-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 --- MAINTAINERS | 1 + include/qemu/ldst_unaligned.h | 25 +++++++++++++ util/ldst.c | 69 +++++++++++++++++++++++++++++++++++ util/meson.build | 1 + 4 files changed, 96 insertions(+) create mode 100644 util/ldst.c diff --git a/MAINTAINERS b/MAINTAINERS index 2d8583cbb52..4eb4e34ce75 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3272,6 +3272,7 @@ F: system/physmem.c F: system/memory-internal.h F: system/ram-block-attributes.c F: scripts/coccinelle/memory-region-housekeeping.cocci +F: util/ldst.c =20 Memory devices M: David Hildenbrand diff --git a/include/qemu/ldst_unaligned.h b/include/qemu/ldst_unaligned.h index 63a091ad401..2c5c6723802 100644 --- a/include/qemu/ldst_unaligned.h +++ b/include/qemu/ldst_unaligned.h @@ -6,6 +6,8 @@ #ifndef QEMU_LDST_UNALIGNED_H #define QEMU_LDST_UNALIGNED_H =20 +#include "exec/memop.h" + /* * Any compiler worth its salt will turn these memcpy into native unaligned * operations. Thus we don't need to play games with packed attributes, or @@ -64,4 +66,27 @@ static inline void stq_unaligned_p(void *ptr, uint64_t v) __builtin_memcpy(ptr, &v, sizeof(v)); } =20 +/** + * ldm_p: Load value from host memory (byteswapping if necessary) + * + * @ptr: the host pointer to be accessed + * @mop: #MemOp mask containing access size and optional byteswapping + * + * Convert the value stored at @ptr in host memory and byteswap if necessa= ry. + * + * Returns: the converted value. + */ +uint64_t ldm_p(const void *ptr, MemOp mop); + +/** + * stm_p: Store value to host memory (byteswapping if necessary) + * + * @ptr: the host pointer to be accessed + * @mop: #MemOp mask containing access size and optional byteswapping + * @val: the value to store + * + * Convert the value (byteswap if necessary) and stored at @ptr in host me= mory. + */ +void stm_p(void *ptr, MemOp mop, uint64_t val); + #endif diff --git a/util/ldst.c b/util/ldst.c new file mode 100644 index 00000000000..fb11c073bcb --- /dev/null +++ b/util/ldst.c @@ -0,0 +1,69 @@ +/* + * Load/Store helpers for QEMU + * + * Copyright (c) Linaro Ltd. + * + * Authors: + * Philippe Mathieu-Daud=C3=A9 + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "qemu/osdep.h" +#include "qemu/ldst_unaligned.h" + +uint64_t ldm_p(const void *ptr, MemOp mop) +{ + const unsigned size =3D memop_size(mop); + uint64_t val; + uint8_t *pval =3D (uint8_t *)&val; + + if (HOST_BIG_ENDIAN) { + pval +=3D sizeof(val) - size; + } + + __builtin_memcpy(pval, ptr, size); + if (unlikely(mop & MO_BSWAP)) { + switch (size) { + case sizeof(uint16_t): + val =3D __builtin_bswap16(val); + break; + case sizeof(uint32_t): + val =3D __builtin_bswap32(val); + break; + case sizeof(uint64_t): + val =3D __builtin_bswap64(val); + break; + default: + g_assert_not_reached(); + } + } + return val; +} + +void stm_p(void *ptr, MemOp mop, uint64_t val) +{ + const unsigned size =3D memop_size(mop); + const uint8_t *pval =3D (const uint8_t *)&val; + + if (HOST_BIG_ENDIAN) { + pval +=3D sizeof(val) - size; + } + + if (unlikely(mop & MO_BSWAP)) { + switch (size) { + case sizeof(uint16_t): + val =3D __builtin_bswap16(val); + break; + case sizeof(uint32_t): + val =3D __builtin_bswap32(val); + break; + case sizeof(uint64_t): + val =3D __builtin_bswap64(val); + break; + default: + g_assert_not_reached(); + } + } + __builtin_memcpy(ptr, pval, size); +} diff --git a/util/meson.build b/util/meson.build index 35029380a37..b695b6e4728 100644 --- a/util/meson.build +++ b/util/meson.build @@ -38,6 +38,7 @@ util_ss.add(files('envlist.c', 'path.c', 'module.c')) util_ss.add(files('event.c')) util_ss.add(files('host-utils.c')) util_ss.add(files('bitmap.c', 'bitops.c')) +util_ss.add(files('ldst.c')) util_ss.add(files('fifo8.c')) util_ss.add(files('cacheflush.c')) util_ss.add(files('error.c', 'error-report.c')) --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977525; cv=none; d=zohomail.com; s=zohoarc; b=bbp5TZ9lawWpxElfAiv4oTNZHLsowKb9+mfKWYXHkzp83zw33Js/wmO5KHRkIhLENFBqsAYHhZbha9Qw3RfFpUrd3VWDPcHYvW4P71HZmAcgD9APXZ4aMZ0QgKS7CTrXHH1GYKPaIA775B1pJj0V+9ptVga2RLX2/gqraXiorh0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977525; 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=4DSvYqUFzf57A2yqzQ01udYn/MBLFsOeV1EgtZ7fE08=; b=Uf3UAHO0kz/HIJqDb7RJzs4Kta725sgUhLXYI3C2i8ntKtWqnDM3grSSnRB6Qwv3m3jwz1hGufGf9urRCD/ssBUtdtbU3i2tFdehq1qyl7xBJ5uhXABkOaK0cOcaEUzXpYKp9k0Nm2W2dmrUQPo7dP9H4Fpph6scjnthr7qX8gI= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977525239873.7938663025408; Fri, 9 Jan 2026 08:52:05 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFiK-0004YC-MM; Fri, 09 Jan 2026 11:51:54 -0500 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 ) id 1veFht-0004DH-Mo for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:30 -0500 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFhq-0007LG-8Z for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:25 -0500 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4779aa4f928so47664705e9.1 for ; Fri, 09 Jan 2026 08:51:21 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f6953fasm210375255e9.5.2026.01.09.08.51.19 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:51:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977480; x=1768582280; 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=4DSvYqUFzf57A2yqzQ01udYn/MBLFsOeV1EgtZ7fE08=; b=vzvxbN18RLpoTspA4JZnl3ErkGPUjK/sYySDOA5+J+8iVjcCrA/C56UcwFjADi9avW HUJwgE4omIGzmtjjjlBmVizfuuwddjJEtf6mr3Yg9bfd9jsjQvMR1xuyaqyVSEPKOZxD 6VD6QLpjGVPfdTN2yjJZqL2jtMXk+Wn8R1P35M6S4BJbVfKFka+1uq/gezKDNF022ndl m7bR/hKke96GJr+gSPZUPMLuPDgK4Lnypj/aQe3bufDzQ2PpFRndEnhEvb3D0FcTniOv RvTH0ZChR0erCDixEO9gKXecFOY7cI8cmubcli9sectxwq+1KROXz/mNnCmAyHtB9Uyl eSow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977480; x=1768582280; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=4DSvYqUFzf57A2yqzQ01udYn/MBLFsOeV1EgtZ7fE08=; b=jI3HOvkFBz5RjffkF2hhM9pSPVK7imorkMMg5MH5Mb3BIpjExe6D2GaNgEkn4DwdaI roAfkDxb9Y9m1tyJK+cSuL3agSp6pP/VMR79IpFQHbzNd0dA8D44u1ZtJ0WQc/9bFAV9 JYhXlrjnSKhZUjn3ckQUZtiqnmBNo96r75ahLTp8w/DG7rBSoBEY154J3xoBqkI52yC5 Bqikt6zPlgRLVZZFr85gjbffOnoRvLkZqwmytr8TYTkgBd4FpkkVj/uhFMC2kCa1lqtK 3++oieTQRKiWio4N+13MALRQjF+tA5vtbWh9FrAUWcclkC3Namripp/ohjTJrrMf4sRW e1wA== X-Gm-Message-State: AOJu0YzZuE5errbz6dI+5D5Y9mF49dtP+cQa1epxbktHQo3SBlTRnGs1 SLCq3BxlPgUqRQyJwUQTsxP2urxMrZXayQVlMi5qfguG0k6KRGOdxzi/wE5wtbihwYR9QGfEK1F 72/M6reU= X-Gm-Gg: AY/fxX68zYgQEXtNGdxwJzkvxdom7qnnyEEL2t8C2oLNxqy2TjxFlfeCxoOtrYVBL/P WJ/Znagp0tB6vLksgP7H9ZJ5gv4O/jFihATkE3z0MPz3Q7LEbvFEaOJRIfBfbfLtTLhH/iE53he JPJszqHWhftnNRVtLZk6XI898BcQhxqYFg2NCpGRYc+dkJt2DtTSrSX3pu42ds7ASllRaoBoJmy Se20LOopMJ0zCX2mxdgRARuoWrohRKOfy5Sqshc7fSSaUOa0TN7X0ueFXdptl5xQ3Vf2Mgoe0oV yO7E94skS0RKKizXVoc0P8hEjL0EilPAZutcKkAlnMLNYspxynE9MRXJLN7yt3iVI0Pj7pZz6kZ CUh9QrnUGz3+fSpcG6MRe24et0ZaD/4Rnuir2fZozB3cZocE8HMwlKVmgQlcCc3vCMH1jMfeOEl dSa4zvHmaZVrh7SPXhLIPJlbSjZXculCRhb6yvd2OsfvzN2ZdgUQ98u9QR0YQFHxzLdGQyiXY= X-Google-Smtp-Source: AGHT+IE7Ul/roA2zlNAem4E6dMPpP/oZAPginHAyVuACJjBotpdOD4BmU5pyZa9cYq+y8toKnRG0Tg== X-Received: by 2002:a05:600c:45ce:b0:47d:264e:b371 with SMTP id 5b1f17b1804b1-47d84b30d79mr109626425e9.18.1767977479984; Fri, 09 Jan 2026 08:51:19 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 03/22] system/physmem: Inline and remove leul_to_cpu() Date: Fri, 9 Jan 2026 17:50:39 +0100 Message-ID: <20260109165058.59144-4-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::332; envelope-from=philmd@linaro.org; helo=mail-wm1-x332.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977527323158500 leul_to_cpu() is only used within physmem.c: inline it and remove. Since @bitmap is of 'unsigned long' type, use its size with ldn_le_p() instead of using HOST_LONG_BITS. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- include/qemu/bswap.h | 11 ----------- system/physmem.c | 5 +++-- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/include/qemu/bswap.h b/include/qemu/bswap.h index dc31d48fd13..98877feffa9 100644 --- a/include/qemu/bswap.h +++ b/include/qemu/bswap.h @@ -315,17 +315,6 @@ static inline void stq_be_p(void *ptr, uint64_t v) stq_unaligned_p(ptr, be_bswap(v, 64)); } =20 -static inline unsigned long leul_to_cpu(unsigned long v) -{ -#if HOST_LONG_BITS =3D=3D 32 - return le_bswap(v, 32); -#elif HOST_LONG_BITS =3D=3D 64 - return le_bswap(v, 64); -#else -# error Unknown sizeof long -#endif -} - /* Store v to p as a sz byte value in host order */ #define DO_STN_LDN_P(END) \ static inline void stn_## END ## _p(void *ptr, int sz, uint64_t v) \ diff --git a/system/physmem.c b/system/physmem.c index be0c8094736..cd2b0dc5fc2 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -1272,7 +1272,8 @@ uint64_t physical_memory_set_dirty_lebitmap(unsigned = long *bitmap, =20 for (k =3D 0; k < nr; k++) { if (bitmap[k]) { - unsigned long temp =3D leul_to_cpu(bitmap[k]); + unsigned long temp =3D ldn_le_p(&bitmap[k], + sizeof(bitmap[k])); =20 nbits =3D ctpopl(temp); qatomic_or(&blocks[DIRTY_MEMORY_VGA][idx][offset], tem= p); @@ -1319,7 +1320,7 @@ uint64_t physical_memory_set_dirty_lebitmap(unsigned = long *bitmap, */ for (i =3D 0; i < len; i++) { if (bitmap[i] !=3D 0) { - c =3D leul_to_cpu(bitmap[i]); + c =3D ldn_le_p(&bitmap[i], sizeof(bitmap[i])); nbits =3D ctpopl(c); if (unlikely(global_dirty_tracking & GLOBAL_DIRTY_DIRTY_RA= TE)) { total_dirty_pages +=3D nbits; --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977531; cv=none; d=zohomail.com; s=zohoarc; b=n54G/wP57QXamS0Ez2eW9OX3RYM+xU5N1WLo37iUxys5kahcH5ETaRvxklsv05lHBdyhHxRf4reLOm3mBTwBuVr36muJD0lnTNqVOBiKtczyAXFI3TLSQ/BV3ThfbHFykepsrq5LtSvTlMX42APKHVI8SkR53Mc3aZOjQaZVU9c= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977531; 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=cetaL8155CThR92fvfQP9zK4pirbJsIkyuhfEBQWxaI=; b=aaB5XULaylTJbyeXC6DQQf84ubkUpzvKHfjdtgs/et0rZowTHAQFlWmgJhHgZSVpHmFoiwHYld66gICv/FJ8yCVGQE6dlSVgJQusXbNflSF5dC7RtMPU+0orxTDY9ZHmyDtCV/icd7NcmMNTXV6ZkgMRsqjVfu8zH38XD3eoZdU= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977531725355.3397742221315; Fri, 9 Jan 2026 08:52:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFiY-0004ko-JM; Fri, 09 Jan 2026 11:52:06 -0500 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 ) id 1veFi2-0004M8-Bl for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:38 -0500 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFhx-0007Lg-7u for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:32 -0500 Received: by mail-wm1-x32f.google.com with SMTP id 5b1f17b1804b1-47d3ffa5f33so21248595e9.2 for ; Fri, 09 Jan 2026 08:51:28 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f41f5e0sm211422785e9.8.2026.01.09.08.51.25 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:51:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977487; x=1768582287; 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=cetaL8155CThR92fvfQP9zK4pirbJsIkyuhfEBQWxaI=; b=SwuR5R+s+S5Z159FT7tcurbwnkNhibl9iFZUmaT0nTmcG09JHdIkMnorTg84oE2NWq ePWvnoiz41Rclc9aaeKyu1vfspwT2LBMBpGV/dp6+qDRRCW1/7iR342CxFAkzwFU316n 7Ov9ix2jTbSypFOz8R8qqlqHNPOAvnqqtixzRqOOGMgM8ZqVrnE5ljvJ1hJ1bkuT9lis s0ar9pQpFq2MGd/7kyDXUO9Q7SnPNCRxMhsShaxmaOQ2MDoG+9j+6l54T6ECQo8mi2y4 mxiPFOKADIfEUzRg9XWfbvCxEK/FrZzZ7Cc7DwUt3EdKhyNHP2CjOEZk2J0xOCXyf+sr lfSA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977487; x=1768582287; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=cetaL8155CThR92fvfQP9zK4pirbJsIkyuhfEBQWxaI=; b=qb/PdZCUDjai937F8pW067ZE3pUKu79ilJCWcPniMRIJ9nYvsuZEzVz2Q+nPIUf8k9 dQqwpZlZLI82hK4l63NFsKmtEaq8s4nfJ1mB7a+IgnYWmltsMMdRG5Gp9l/PuGcAaRU4 q9js43kNysQwkqwkmwSoozN2jCj+FxbeFFFi4nM+vkYgpaEXARWCR1aVaVwOlYA/EUFz 0HOG1HuMZCNVZYSXCynvlzQoQVHNYZkumUvw6tlJvHeIjdOEMeJA23SPPjSJux3wmpqI BB+xNWpSQl1azYdpHjBsUMNoXLqWEjgRl2H4KGxhwSJORWpd1PmNMbZ75kzU0pML+4x8 tQ+w== X-Gm-Message-State: AOJu0YzK30QhTd2Ma758IMIyfD8qEqBkdk/THNqhaEUl4i2+fKT5vcG5 6tweiljoEZg/OC8M3PqHmsnFZ/w9mKT8r+8fpZ2aE+pbc5A2s6L54J8TZBOpL+ByvtQwBTtL+Vl JqQk7UEM= X-Gm-Gg: AY/fxX67m6KEs8O3p/PTmdU/OqSm32fQPq/xKtHxjLDVAjJ5/LaxuirYSRzVRrik9Zw uNEAyQIKZaKKe77+V6A3GMyAA7oLAJZRdnv9aAd2eGO+9OhWQNVFriTmaWbj3ozQbmOa4vJDJEj mvUSmB30aDuQhbTe+408uejiZOUFAHjQgLBY1oEr7aJwsCl8aG9CXKHXuwbHYkf8uYsw0pfAmdW u+oSkXWSlVArlRgrvHOEndvVN1R/ZoyUUWmaZI8KesCWalSV5kmALUB3yjpkKqp+H68RqlPu4pb 9hn3aDpcsnoeN87wdKH9aaTmKztA6nzvPd4YBVjYp3U0JPuWHBKRXlGNYaGAPaYj2uxZRrMBjJt FmngJM/MyHVmW+LLEfNuNx53rl2XlDye8PNbrbfeM+cP2tPg9e4LTIa9gFUUsYpXnyle8poarzr uIRS2LzlW7zLo8W8PbRLShA57sO41xxJvEgiGpHQZqPDKzY4EsY14khCv3nOSR X-Google-Smtp-Source: AGHT+IFv8vk8Odo9BtMGQ2dyagTun9Rpl3O1jLkfWn/eSGc0vr+ionI56qGhdxUNYnf7opf6xIRlLQ== X-Received: by 2002:a05:600c:8b2c:b0:477:8ba7:fe0a with SMTP id 5b1f17b1804b1-47d84b54c3cmr109451335e9.24.1767977487383; Fri, 09 Jan 2026 08:51:27 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 04/22] system/physmem: Convert DEBUG_SUBPAGE printf() to trace events Date: Fri, 9 Jan 2026 17:50:40 +0100 Message-ID: <20260109165058.59144-5-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::32f; envelope-from=philmd@linaro.org; helo=mail-wm1-x32f.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977533341158500 Defining DEBUG_SUBPAGE allows to use raw printf() statements to print information about some events; convert these to tracepoints. Suggested-by: Richard Henderson Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson --- system/physmem.c | 29 ++++++----------------------- system/trace-events | 6 ++++++ 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/system/physmem.c b/system/physmem.c index cd2b0dc5fc2..0e8a2fb621d 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -91,8 +91,6 @@ =20 #include "memory-internal.h" =20 -//#define DEBUG_SUBPAGE - /* ram_list is read under rcu_read_lock()/rcu_read_unlock(). Writes * are protected by the ramlist lock. */ @@ -2921,10 +2919,7 @@ static MemTxResult subpage_read(void *opaque, hwaddr= addr, uint64_t *data, uint8_t buf[8]; MemTxResult res; =20 -#if defined(DEBUG_SUBPAGE) - printf("%s: subpage %p len %u addr " HWADDR_FMT_plx "\n", __func__, - subpage, len, addr); -#endif + trace_subpage_read(subpage, len, addr); res =3D flatview_read(subpage->fv, addr + subpage->base, attrs, buf, l= en); if (res) { return res; @@ -2939,11 +2934,7 @@ static MemTxResult subpage_write(void *opaque, hwadd= r addr, subpage_t *subpage =3D opaque; uint8_t buf[8]; =20 -#if defined(DEBUG_SUBPAGE) - printf("%s: subpage %p len %u addr " HWADDR_FMT_plx - " value %"PRIx64"\n", - __func__, subpage, len, addr, value); -#endif + trace_subpage_write(subpage, len, addr, value); stn_p(buf, len, value); return flatview_write(subpage->fv, addr + subpage->base, attrs, buf, l= en); } @@ -2953,10 +2944,8 @@ static bool subpage_accepts(void *opaque, hwaddr add= r, MemTxAttrs attrs) { subpage_t *subpage =3D opaque; -#if defined(DEBUG_SUBPAGE) - printf("%s: subpage %p %c len %u addr " HWADDR_FMT_plx "\n", - __func__, subpage, is_write ? 'w' : 'r', len, addr); -#endif + + trace_subpage_accepts(subpage, is_write ? 'w' : 'r', len, addr); =20 return flatview_access_valid(subpage->fv, addr + subpage->base, len, is_write, attrs); @@ -2982,10 +2971,7 @@ static int subpage_register(subpage_t *mmio, uint32_= t start, uint32_t end, return -1; idx =3D SUBPAGE_IDX(start); eidx =3D SUBPAGE_IDX(end); -#if defined(DEBUG_SUBPAGE) - printf("%s: %p start %08x end %08x idx %08x eidx %08x section %d\n", - __func__, mmio, start, end, idx, eidx, section); -#endif + trace_subpage_register(mmio, start, end, idx, eidx, section); for (; idx <=3D eidx; idx++) { mmio->sub_section[idx] =3D section; } @@ -3004,10 +2990,7 @@ static subpage_t *subpage_init(FlatView *fv, hwaddr = base) memory_region_init_io(&mmio->iomem, NULL, &subpage_ops, mmio, NULL, TARGET_PAGE_SIZE); mmio->iomem.subpage =3D true; -#if defined(DEBUG_SUBPAGE) - printf("%s: %p base " HWADDR_FMT_plx " len %08x\n", __func__, - mmio, base, TARGET_PAGE_SIZE); -#endif + trace_subpage_init(mmio, base, TARGET_PAGE_SIZE); =20 return mmio; } diff --git a/system/trace-events b/system/trace-events index 82856e44f2e..6d29a823f04 100644 --- a/system/trace-events +++ b/system/trace-events @@ -35,6 +35,12 @@ find_ram_offset_loop(uint64_t size, uint64_t candidate, = uint64_t offset, uint64_ ram_block_discard_range(const char *rbname, void *hva, size_t length, bool= need_madvise, bool need_fallocate, int ret) "%s@%p + 0x%zx: madvise: %d fa= llocate: %d ret: %d" qemu_ram_alloc_shared(const char *name, size_t size, size_t max_size, int = fd, void *host) "%s size %zu max_size %zu fd %d host %p" =20 +subpage_register(void *subpage, uint32_t start, uint32_t end, int idx, int= eidx, uint16_t section) "subpage %p start 0x%08x end 0x%08x idx 0x%08x eid= x 0x%08x section %u" +subpage_init(void *subpage, uint64_t base, uint64_t len) "subpage %p base = 0x%08" PRIx64 " len 0x%08" PRIx64 +subpage_accepts(void *subpage, char access, unsigned len, uint64_t addr) "= subpage %p %c len %u addr 0x%" PRIx64 +subpage_read(void *subpage, unsigned len, uint64_t addr) "subpage %p len %= u addr 0x%" PRIx64 +subpage_write(void *subpage, unsigned len, uint64_t addr, uint64_t value) = "subpage %p len %u addr 0x%" PRIx64 " value 0x%" PRIx64 + # cpus.c vm_stop_flush_all(int ret) "ret %d" =20 --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977546; cv=none; d=zohomail.com; s=zohoarc; b=c1ieSEEEiga5hj/Ii9blIRF18OA6kzct/4lXv2pi+i/2p5DRRGBuQYTXRAPbV55tHHhpNKaqHvDw7j5szAvthiB69nFofPaz4hsrhZXSYN5jbWyRDLrEe1W88a7xRNjQ8gkJkZ+xFY9vSdEL/NVIwy/O4Wz8CvKSBfKDacnjFLU= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977546; 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=N+3aFNkuvJU7k9ASo56JmI7QdR/JRifI4sWY6ldkMUc=; b=IHkMvG3QoezwZoMlVLbWKNcNVKIpZz8+Gu1H85mznSRo5Tnu2QrnEkqqA7ZAQF68PaWoVRKoLbdXQEt0Rdr7r30EwNR7M2lF38DC5hsCATJ9Q0CUmxE478U3UEtZJajFoZcChcEChGJmVxoikWiBQIJBYIR2+lmZ0RYoqH9uDJ8= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977546238824.0940218047152; Fri, 9 Jan 2026 08:52:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFiZ-0004s7-9V; Fri, 09 Jan 2026 11:52:07 -0500 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 ) id 1veFi6-0004N9-PL for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:42 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFi4-0007MO-37 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:38 -0500 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-47d63594f7eso27486295e9.0 for ; Fri, 09 Jan 2026 08:51:35 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f695225sm217942455e9.4.2026.01.09.08.51.33 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:51:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977494; x=1768582294; 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=N+3aFNkuvJU7k9ASo56JmI7QdR/JRifI4sWY6ldkMUc=; b=nWCXSeFFl45gKgqHc7F9T6QOa9/gK2Qb2B6Zw7saAL26iBykh2E1+HakvcZCSiWABv kH7FSprmUb5BEArLsK72SGzf8E1WgsBrhMpH0jLy275k1c7yxAcHyNUV0GHYLa0tO+QK DwIx1L/foo2uCIFVyGcprIKK08u4Nnjwax2I5AMGDUgU71OMDL9lrfWK+VJBDAmipWLY nfRJh2wZdF3bB8/RJSP1xe+tg+vAXgLinf+q7LMg0Jo7LnuAdZthWpFZ5vsKVwmr3cRz 2xFPJdk+dbF3xmfKXGICRD0YkHPwA4dJANRygsGEwsS8wO9xIqTTRTpHMmGRJew1LBqx IbRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977494; x=1768582294; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=N+3aFNkuvJU7k9ASo56JmI7QdR/JRifI4sWY6ldkMUc=; b=Kvp1hqbYs2LDqM0GSyXExCXlJ/FJWwiTQcaCMnZOnrfwTuX2iTI+1nSPnikgqofkZw b/o+/5yjbq0U18mOQlQC1Q3qac6M2saGNP1fkT8TE/Y6Ce5cXzLDAoAP7nsvaC1eKH/h 27dh820lPRGpgyenssBB2lwzDT2Khzr8TVg3ZkBLIadmhcVCBgz4dS8TQU4fnQEquyvM eRwd2G2GEZZYT0PXuEs76YgRS2Yvcxsg0qpBoGn3I+Zpj0JTSOa24UNLNlQ+OALcMAjg 0oKY5qXJ4MsxX546FbvvUGAD+QZQ1GmjiQspLLDCNVM0SU1U920PkfKVQ53sTJn5YA1n o7Zw== X-Gm-Message-State: AOJu0YwuOw1AQvAZwpuc+M+zm3Be2T7RbKrREJjTE+qug1ggXUVMuQtt N7pLcv+H2u/bNSn6NZub348t8sIU5IyEVn3ZcE2ORFhyFoKGPUWmpflcFc4IJngWxITeVi/DBcy WvhJRQpk= X-Gm-Gg: AY/fxX7FalDEWBVWAn/OAqn7H0ohutcKKsO1HhItf1UcTmK72BHUOGxk5Oek1DQHQrP ftwoKxiVE/4jXK74syTqyR9uhjBrrjhgoQ1HJbGhBZzEPZ2e8gJHRVMXWwPLad9J97Zn7RbuRhZ sd9vk9K6fwK9hHJv11bLvMS0HuN1wEla42dqbfBPbK5kb6RvsLNBDjTJHjoswNS7d+/Mx//IbsJ T8vvknyeFDg5K/O5EmUhmMXjCV9dNLSDPr+R56RwqE2FQrIkDLANrE735i79hyvVER3gkPDQst2 06mWk9zpKYVd4zboRlICS6WQx/PHIxcTbOVLCjOn/v0UPT58jJy0VR+56fK5vZTbtDtmkaoErL+ 6rwvLhIwG5516qm8ezcq7llztUNvdtgwWdwJJrMOOTMtbw7YWGl6nd1TgrnHRe1WEKWVFo03rv+ RusY6eE6s7PwvZNFkN0WnihACyR9a0Vj4wK2lJh5wCkIBTQq3YUkL/6aUmVpC1Lle3O+yj8Zg= X-Google-Smtp-Source: AGHT+IHWRwr18qwXcXQ2GbKctrQRtHOdS/3T6FhyYmzelmC24jKVciXGqoN7XiFtQZcShnXBmwNdeQ== X-Received: by 2002:a05:600c:1991:b0:477:55c9:c3ea with SMTP id 5b1f17b1804b1-47d84b40aa4mr134058615e9.35.1767977494009; Fri, 09 Jan 2026 08:51:34 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 05/22] system/memory: Split MemoryRegionCache API to 'memory_cached.h' Date: Fri, 9 Jan 2026 17:50:41 +0100 Message-ID: <20260109165058.59144-6-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::329; envelope-from=philmd@linaro.org; helo=mail-wm1-x329.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977547464158500 We have 115 direct inclusions of "system/memory.h", and 91 headers in include/ use it: hundreds of files have to process it. However only one single header really uses the MemoryRegionCache API: "hw/virtio/virtio-access.h". Split it out to a new header, avoiding processing unused inlined functions hundreds of times. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- MAINTAINERS | 1 + include/hw/virtio/virtio-access.h | 1 + include/system/memory.h | 185 -------------------------- include/system/memory_cached.h | 210 ++++++++++++++++++++++++++++++ system/physmem.c | 1 + 5 files changed, 213 insertions(+), 185 deletions(-) create mode 100644 include/system/memory_cached.h diff --git a/MAINTAINERS b/MAINTAINERS index 4eb4e34ce75..ad1de7c0478 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3260,6 +3260,7 @@ F: include/exec/memop.h F: include/qemu/ldst_unaligned.h F: include/system/ram_addr.h F: include/system/memory.h +F: include/system/memory_cached.h F: include/system/memory_ldst* F: include/system/physmem.h F: include/system/ramblock.h diff --git a/include/hw/virtio/virtio-access.h b/include/hw/virtio/virtio-a= ccess.h index 5b5fff5295e..cd17d0c87eb 100644 --- a/include/hw/virtio/virtio-access.h +++ b/include/hw/virtio/virtio-access.h @@ -17,6 +17,7 @@ #define QEMU_VIRTIO_ACCESS_H =20 #include "exec/hwaddr.h" +#include "system/memory_cached.h" #include "hw/virtio/virtio.h" #include "hw/virtio/virtio-bus.h" =20 diff --git a/include/system/memory.h b/include/system/memory.h index 0e8de527d36..92028dc7a4e 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -2862,140 +2862,6 @@ MemTxResult address_space_write_rom(AddressSpace *a= s, hwaddr addr, #include "system/memory_ldst_phys.h.inc" #endif =20 -struct MemoryRegionCache { - uint8_t *ptr; - hwaddr xlat; - hwaddr len; - FlatView *fv; - MemoryRegionSection mrs; - bool is_write; -}; - -/* address_space_ld*_cached: load from a cached #MemoryRegion - * address_space_st*_cached: store into a cached #MemoryRegion - * - * These functions perform a load or store of the byte, word, - * longword or quad to the specified address. The address is - * a physical address in the AddressSpace, but it must lie within - * a #MemoryRegion that was mapped with address_space_cache_init. - * - * The _le suffixed functions treat the data as little endian; - * _be indicates big endian; no suffix indicates "same endianness - * as guest CPU". - * - * The "guest CPU endianness" accessors are deprecated for use outside - * target-* code; devices should be CPU-agnostic and use either the LE - * or the BE accessors. - * - * @cache: previously initialized #MemoryRegionCache to be accessed - * @addr: address within the address space - * @val: data value, for stores - * @attrs: memory transaction attributes - * @result: location to write the success/failure of the transaction; - * if NULL, this information is discarded - */ - -#define SUFFIX _cached_slow -#define ARG1 cache -#define ARG1_DECL MemoryRegionCache *cache -#include "system/memory_ldst.h.inc" - -/* Inline fast path for direct RAM access. */ -static inline uint8_t address_space_ldub_cached(MemoryRegionCache *cache, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - assert(addr < cache->len); - if (likely(cache->ptr)) { - return ldub_p(cache->ptr + addr); - } else { - return address_space_ldub_cached_slow(cache, addr, attrs, result); - } -} - -static inline void address_space_stb_cached(MemoryRegionCache *cache, - hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) -{ - assert(addr < cache->len); - if (likely(cache->ptr)) { - stb_p(cache->ptr + addr, val); - } else { - address_space_stb_cached_slow(cache, addr, val, attrs, result); - } -} - -#define ENDIANNESS -#include "system/memory_ldst_cached.h.inc" - -#define ENDIANNESS _le -#include "system/memory_ldst_cached.h.inc" - -#define ENDIANNESS _be -#include "system/memory_ldst_cached.h.inc" - -#define SUFFIX _cached -#define ARG1 cache -#define ARG1_DECL MemoryRegionCache *cache -#include "system/memory_ldst_phys.h.inc" - -/* address_space_cache_init: prepare for repeated access to a physical - * memory region - * - * @cache: #MemoryRegionCache to be filled - * @as: #AddressSpace to be accessed - * @addr: address within that address space - * @len: length of buffer - * @is_write: indicates the transfer direction - * - * Will only work with RAM, and may map a subset of the requested range by - * returning a value that is less than @len. On failure, return a negative - * errno value. - * - * Because it only works with RAM, this function can be used for - * read-modify-write operations. In this case, is_write should be %true. - * - * Note that addresses passed to the address_space_*_cached functions - * are relative to @addr. - */ -int64_t address_space_cache_init(MemoryRegionCache *cache, - AddressSpace *as, - hwaddr addr, - hwaddr len, - bool is_write); - -/** - * address_space_cache_init_empty: Initialize empty #MemoryRegionCache - * - * @cache: The #MemoryRegionCache to operate on. - * - * Initializes #MemoryRegionCache structure without memory region attached. - * Cache initialized this way can only be safely destroyed, but not used. - */ -static inline void address_space_cache_init_empty(MemoryRegionCache *cache) -{ - cache->mrs.mr =3D NULL; - /* There is no real need to initialize fv, but it makes Coverity happy= . */ - cache->fv =3D NULL; -} - -/** - * address_space_cache_invalidate: complete a write to a #MemoryRegionCache - * - * @cache: The #MemoryRegionCache to operate on. - * @addr: The first physical address that was written, relative to the - * address that was passed to @address_space_cache_init. - * @access_len: The number of bytes that were written starting at @addr. - */ -void address_space_cache_invalidate(MemoryRegionCache *cache, - hwaddr addr, - hwaddr access_len); - -/** - * address_space_cache_destroy: free a #MemoryRegionCache - * - * @cache: The #MemoryRegionCache whose memory should be released. - */ -void address_space_cache_destroy(MemoryRegionCache *cache); - void address_space_flush_icache_range(AddressSpace *as, hwaddr addr, hwadd= r len); =20 /* address_space_get_iotlb_entry: translate an address into an IOTLB @@ -3123,14 +2989,6 @@ MemTxResult flatview_read_continue(FlatView *fv, hwa= ddr addr, MemoryRegion *mr); void *qemu_map_ram_ptr(RAMBlock *ram_block, ram_addr_t addr); =20 -/* Internal functions, part of the implementation of address_space_read_ca= ched - * and address_space_write_cached. */ -MemTxResult address_space_read_cached_slow(MemoryRegionCache *cache, - hwaddr addr, void *buf, hwaddr = len); -MemTxResult address_space_write_cached_slow(MemoryRegionCache *cache, - hwaddr addr, const void *buf, - hwaddr len); - int memory_access_size(MemoryRegion *mr, unsigned l, hwaddr addr); bool prepare_mmio_access(MemoryRegion *mr); =20 @@ -3208,49 +3066,6 @@ MemTxResult address_space_read(AddressSpace *as, hwa= ddr addr, return result; } =20 -/** - * address_space_read_cached: read from a cached RAM region - * - * @cache: Cached region to be addressed - * @addr: address relative to the base of the RAM region - * @buf: buffer with the data transferred - * @len: length of the data transferred - */ -static inline MemTxResult -address_space_read_cached(MemoryRegionCache *cache, hwaddr addr, - void *buf, hwaddr len) -{ - assert(addr < cache->len && len <=3D cache->len - addr); - fuzz_dma_read_cb(cache->xlat + addr, len, cache->mrs.mr); - if (likely(cache->ptr)) { - memcpy(buf, cache->ptr + addr, len); - return MEMTX_OK; - } else { - return address_space_read_cached_slow(cache, addr, buf, len); - } -} - -/** - * address_space_write_cached: write to a cached RAM region - * - * @cache: Cached region to be addressed - * @addr: address relative to the base of the RAM region - * @buf: buffer with the data transferred - * @len: length of the data transferred - */ -static inline MemTxResult -address_space_write_cached(MemoryRegionCache *cache, hwaddr addr, - const void *buf, hwaddr len) -{ - assert(addr < cache->len && len <=3D cache->len - addr); - if (likely(cache->ptr)) { - memcpy(cache->ptr + addr, buf, len); - return MEMTX_OK; - } else { - return address_space_write_cached_slow(cache, addr, buf, len); - } -} - /** * address_space_set: Fill address space with a constant byte. * diff --git a/include/system/memory_cached.h b/include/system/memory_cached.h new file mode 100644 index 00000000000..e0ed54bd1eb --- /dev/null +++ b/include/system/memory_cached.h @@ -0,0 +1,210 @@ +/* + * Physical memory management API + * + * Copyright 2011 Red Hat, Inc. and/or its affiliates + * + * Authors: + * Avi Kivity + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#ifndef SYSTEM_MEMORY_CACHED_H +#define SYSTEM_MEMORY_CACHED_H + +#include "exec/hwaddr.h" +#include "system/memory.h" + +struct MemoryRegionCache { + uint8_t *ptr; + hwaddr xlat; + hwaddr len; + FlatView *fv; + MemoryRegionSection mrs; + bool is_write; +}; + +/** + * address_space_ld*_cached: load from a cached #MemoryRegion + * address_space_st*_cached: store into a cached #MemoryRegion + * + * These functions perform a load or store of the byte, word, + * longword or quad to the specified address. The address is + * a physical address in the AddressSpace, but it must lie within + * a #MemoryRegion that was mapped with address_space_cache_init. + * + * The _le suffixed functions treat the data as little endian; + * _be indicates big endian; no suffix indicates "same endianness + * as guest CPU". + * + * The "guest CPU endianness" accessors are deprecated for use outside + * target-* code; devices should be CPU-agnostic and use either the LE + * or the BE accessors. + * + * @cache: previously initialized #MemoryRegionCache to be accessed + * @addr: address within the address space + * @val: data value, for stores + * @attrs: memory transaction attributes + * @result: location to write the success/failure of the transaction; + * if NULL, this information is discarded + */ + +#define SUFFIX _cached_slow +#define ARG1 cache +#define ARG1_DECL MemoryRegionCache *cache +#include "system/memory_ldst.h.inc" + +/* Inline fast path for direct RAM access. */ +static inline +uint8_t address_space_ldub_cached(MemoryRegionCache *cache, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result) +{ + assert(addr < cache->len); + if (likely(cache->ptr)) { + return ldub_p(cache->ptr + addr); + } else { + return address_space_ldub_cached_slow(cache, addr, attrs, result); + } +} + +static inline +void address_space_stb_cached(MemoryRegionCache *cache, + hwaddr addr, uint8_t val, + MemTxAttrs attrs, MemTxResult *result) +{ + assert(addr < cache->len); + if (likely(cache->ptr)) { + stb_p(cache->ptr + addr, val); + } else { + address_space_stb_cached_slow(cache, addr, val, attrs, result); + } +} + +#define ENDIANNESS +#include "system/memory_ldst_cached.h.inc" + +#define ENDIANNESS _le +#include "system/memory_ldst_cached.h.inc" + +#define ENDIANNESS _be +#include "system/memory_ldst_cached.h.inc" + +#define SUFFIX _cached +#define ARG1 cache +#define ARG1_DECL MemoryRegionCache *cache +#include "system/memory_ldst_phys.h.inc" + +/** + * address_space_cache_init: prepare for repeated access to a physical + * memory region + * + * @cache: #MemoryRegionCache to be filled + * @as: #AddressSpace to be accessed + * @addr: address within that address space + * @len: length of buffer + * @is_write: indicates the transfer direction + * + * Will only work with RAM, and may map a subset of the requested range by + * returning a value that is less than @len. On failure, return a negative + * errno value. + * + * Because it only works with RAM, this function can be used for + * read-modify-write operations. In this case, is_write should be %true. + * + * Note that addresses passed to the address_space_*_cached functions + * are relative to @addr. + */ +int64_t address_space_cache_init(MemoryRegionCache *cache, + AddressSpace *as, + hwaddr addr, + hwaddr len, + bool is_write); + +/** + * address_space_cache_init_empty: Initialize empty #MemoryRegionCache + * + * @cache: The #MemoryRegionCache to operate on. + * + * Initializes #MemoryRegionCache structure without memory region attached. + * Cache initialized this way can only be safely destroyed, but not used. + */ +static inline void address_space_cache_init_empty(MemoryRegionCache *cache) +{ + cache->mrs.mr =3D NULL; + /* There is no real need to initialize fv, but it makes Coverity happy= . */ + cache->fv =3D NULL; +} + +/** + * address_space_cache_invalidate: complete a write to a #MemoryRegionCache + * + * @cache: The #MemoryRegionCache to operate on. + * @addr: The first physical address that was written, relative to the + * address that was passed to @address_space_cache_init. + * @access_len: The number of bytes that were written starting at @addr. + */ +void address_space_cache_invalidate(MemoryRegionCache *cache, + hwaddr addr, + hwaddr access_len); + +/** + * address_space_cache_destroy: free a #MemoryRegionCache + * + * @cache: The #MemoryRegionCache whose memory should be released. + */ +void address_space_cache_destroy(MemoryRegionCache *cache); + +/* + * Internal functions, part of the implementation of address_space_read_ca= ched + * and address_space_write_cached. + */ +MemTxResult address_space_read_cached_slow(MemoryRegionCache *cache, + hwaddr addr, void *buf, hwaddr = len); +MemTxResult address_space_write_cached_slow(MemoryRegionCache *cache, + hwaddr addr, const void *buf, + hwaddr len); + +/** + * address_space_read_cached: read from a cached RAM region + * + * @cache: Cached region to be addressed + * @addr: address relative to the base of the RAM region + * @buf: buffer with the data transferred + * @len: length of the data transferred + */ +static inline MemTxResult +address_space_read_cached(MemoryRegionCache *cache, hwaddr addr, + void *buf, hwaddr len) +{ + assert(addr < cache->len && len <=3D cache->len - addr); + fuzz_dma_read_cb(cache->xlat + addr, len, cache->mrs.mr); + if (likely(cache->ptr)) { + memcpy(buf, cache->ptr + addr, len); + return MEMTX_OK; + } else { + return address_space_read_cached_slow(cache, addr, buf, len); + } +} + +/** + * address_space_write_cached: write to a cached RAM region + * + * @cache: Cached region to be addressed + * @addr: address relative to the base of the RAM region + * @buf: buffer with the data transferred + * @len: length of the data transferred + */ +static inline MemTxResult +address_space_write_cached(MemoryRegionCache *cache, hwaddr addr, + const void *buf, hwaddr len) +{ + assert(addr < cache->len && len <=3D cache->len - addr); + if (likely(cache->ptr)) { + memcpy(cache->ptr + addr, buf, len); + return MEMTX_OK; + } else { + return address_space_write_cached_slow(cache, addr, buf, len); + } +} + +#endif diff --git a/system/physmem.c b/system/physmem.c index 0e8a2fb621d..c7ddf8a9cf8 100644 --- a/system/physmem.c +++ b/system/physmem.c @@ -53,6 +53,7 @@ #include "qemu/memalign.h" #include "qemu/memfd.h" #include "system/memory.h" +#include "system/memory_cached.h" #include "system/ioport.h" #include "system/dma.h" #include "system/hostmem.h" --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977539; cv=none; d=zohomail.com; s=zohoarc; b=D51MDe2YPkQYzcj1mGMMzC9F5+zpigaNW0e2/vfnAZ3IOoYvEPW32gS+lcs0yPc1D1KsZJLIuqIbQW3WTqC0yRN10K60XWLl5JnFwPS1As+1gzgn+DT9/ZEZs6GwfmQsnBWGll2QmSeDW/qx6W4BCEjX0IJAS7oSAqewU/ZlBXQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977539; 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=U+LBKH6mpM3QJZ+LjMWVH1Zu0cPNjKfwSazzmUt2kNQ=; b=Qd61VoPFTMvrHFLfT2oxdZXWM+hUoanYQC03hHsbAr2WSlCGqCVUb6r/W7joBgWucclxMXVtXBOzwaetJvBKNAhH2VHxrL6wlVyp/Hpjq92r4xmz031xtLZ0/b7DC5bD/5nl0b0ZgVnVcxu5klDNJLqdVM62WiRSnUGYwicymxU= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977539031160.77730963895976; Fri, 9 Jan 2026 08:52:19 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFie-0005Mi-3I; Fri, 09 Jan 2026 11:52:12 -0500 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 ) id 1veFiC-0004Tz-AF for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:46 -0500 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFiA-0007Mn-OI for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:43 -0500 Received: by mail-wr1-x42f.google.com with SMTP id ffacd0b85a97d-430f9ffd4e8so1588239f8f.0 for ; Fri, 09 Jan 2026 08:51:42 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd5ee870sm23391308f8f.36.2026.01.09.08.51.39 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:51:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977501; x=1768582301; 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=U+LBKH6mpM3QJZ+LjMWVH1Zu0cPNjKfwSazzmUt2kNQ=; b=m4y5G2+ZS4IJhWwwb8YxgesPPKehzwG/mRU/TBCvTqIWl6IiT4EgZN3ikwglskB21a cjZd6FFYbEc/N+km1hWQR7a56z/JrYZNlplFyRwBqL5UeqS1T2DoG5u7nrZ/a85CcGCF 6XWGILPrWZpWC6ImDvBng3GFZorLjlpmFBRgPLizukm28U41WjIMWuhgThBF/nIbLf85 FcfsLoNUrS3dt0SQ1PrXa9gUYZ8OZCnUCvBNsMZurZwbGIZ4bKxOOlogOHpSxKEsOGWy wOex5WU3wvKgEPbm6uDajQNF8EeuJyU9GQIJESiq/VjG8+ZjYhNw0QKp1mMLTTERcOQb ZDOg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977501; x=1768582301; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=U+LBKH6mpM3QJZ+LjMWVH1Zu0cPNjKfwSazzmUt2kNQ=; b=wt78en3yFXvUsMzwNGSunXQpAEbwHMgXaabEmcy5VofDQ/xFSGh0CX8KNKDU+TWAvn x6klD3zlSD0fNSUYAkX22cOSmrOkg0CgFmky6NdV9fs+tbdJeK9h7xHDaP2o4uegSLVq DajMiIlEqsN5KBSR5wz4kHJHecd5Z+8qx3Y9EAs4WDWYVQI6ZK6SdXU/eLo2T02WZLl5 urUSAb9iR/JJ58ii83SCv1ht5wta8pKH6wSnm7tqZMPV1AXdDzy4tYefuRb2zW2DMUar 4mvF24YYOLtwhXk1YXu2hz+uLfrGSgtoXDsQk0dx0NzTUd0cU1frZ0DjVY+oYsBj4bCR uvfw== X-Gm-Message-State: AOJu0YxKx1HR4unNEgU3rHUCEXtarlLMZsTQdsqYo4RZptoHW3jJ+00m JqBf8kcJtAZd/tvNFijDQJrEpClM1CMsr+AK/3p2Go4owl+GdFeV2dAifhF0YgL9fM1BvvDuG2f rHIU8tAI= X-Gm-Gg: AY/fxX7PT3dwV0GO4ssBJQQoJD/9CRZZTFu6s8NPunPM/rwkNb+3LI3aebpWrqogNw2 cOwax9qWkG8In/fb89VPmG3ZgrfuVBBWJn3o0a/UqmKgsAR52bk5AyKOg/lvi+bKs6w2N/4fXy3 IcZpitWFuqPSHiff4B+iGUwJQNBgBWSNGKuBseAFZZO1xY779nsduiP7nsGXKWzEOtwOtojOB6d hLmvJrTXnao+TQ6r9AHtq0/zz7wB8VU4EFLl9yJmei60IOoRFZOi9ZVfktV5q5GzgckD1CIYfZu GasbnR3GOUiJbynAe+AIJqkYUz89aIeJfOqLG7IM7+JnSLuRH2w9MvVnctbjFWiRHIsEtMa/vTh 6qQF9I3KZ2yhNYsScLJh4/b+22jqs5FJhv5CGBiE7dgrPU4Ewl3Niya2yvWIdYESPPGgbYvWeQr ne/YVm+P/bYdB0YAVhjLphdoly19FlAwaCwzXVY5BwQxidqz7HLDS2yMOiib5p X-Google-Smtp-Source: AGHT+IGoMEq0bX5JvsRzIiHBvXP/6pDml8y49xujT8nIvbda4EFgshuQg2hcGtvAedZSBgdDdvftuw== X-Received: by 2002:a05:6000:1786:b0:432:84f0:9683 with SMTP id ffacd0b85a97d-432bcfde908mr17273245f8f.24.1767977500643; Fri, 09 Jan 2026 08:51:40 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 06/22] system/memory: Inline address_space_stq_internal() Date: Fri, 9 Jan 2026 17:50:42 +0100 Message-ID: <20260109165058.59144-7-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::42f; envelope-from=philmd@linaro.org; helo=mail-wr1-x42f.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977539420158500 As its name suggests, address_space_stq_internal() is an internal method which can be inlined like all the other ones in this file. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Pierrick Bouvier Reviewed-by: Richard Henderson --- system/memory_ldst.c.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index b45bfecd137..d5776678edf 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -422,7 +422,7 @@ void glue(address_space_stw_be, SUFFIX)(ARG1_DECL, DEVICE_BIG_ENDIAN); } =20 -static void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, +static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977528; cv=none; d=zohomail.com; s=zohoarc; b=nPe0rTlvybnWtD7OPImCEREHLMlFbWoxkfIqqZ46FEqqyjnn0yM4S+vSnsmuPhsi7MQyRwRtNlTmPgileQZ1v67Tp3WZPu9arxf8Oc1ngXpMtlqFSjV8tS3GEMRcKC/rfud1OZujsS9N0Tyta/Fx1SafdZ61ORYWr0YjEsJCe28= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977528; 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=dS6ULwpsmYr0/KCFFP8vPbPri0ao4vYOP2/RIiLLaB0=; b=XrlOG1FkGXk0dOlgZaWQBMs7+aHRB49ggQtQAmf4pmJwjqaDDAZWHAUPgZse6AZD8Zyoerr4rP1wxoBCFNgV2z6ypAoaFRaNMoIFnJDYeBKFZ4bZzgdobMZzC4tCoEzL3d1CPIkLTfsw051fM9wrdCrp9CwVQV6Rr0v63+jmiLY= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977528761179.33109482373948; Fri, 9 Jan 2026 08:52:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFiY-0004kp-LM; Fri, 09 Jan 2026 11:52:06 -0500 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 ) id 1veFiK-0004bd-3K for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:52 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFiH-0007NJ-Mz for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:51 -0500 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-477a2ab455fso41094355e9.3 for ; Fri, 09 Jan 2026 08:51:49 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f703a8csm214509905e9.13.2026.01.09.08.51.46 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:51:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977508; x=1768582308; 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=dS6ULwpsmYr0/KCFFP8vPbPri0ao4vYOP2/RIiLLaB0=; b=XT907BzTOuCkcjDtKGLB2DMrH6ekP7iOm8Q86WLldFc4K/WF7tRcap9dNatc4Hxn23 r6VVKlfw/XChloqLPMlOiVZ+uyEA9VGlCRtw2cgXwalD8zyNU8ffE8rFo5wmcx1gL9D5 tBkUdbQtSC9HQE3lRt6qAWq+fSPBMm97ZvPkDsdNuz4PhtaKHVmcoDI4SVHbk/bdI5xp h585gNzwBdn73rUpDx/WB6+Ov6DnFpA6aYlW9o2gtRsiFfppN5vzwj3TEr88TnuxQSdS iCT4fSc0KvlPZgEb1XfQMf0TW07mamAAqq11x0qDS3Y5TuohovoXQjy8KgMTBM+1mmrH NVXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977508; x=1768582308; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dS6ULwpsmYr0/KCFFP8vPbPri0ao4vYOP2/RIiLLaB0=; b=ZpVJJKxmvVRisOVkjs9Fya+F5QhmdW1TMrG8aRcXH9t+i4ksVxsv2q3I5w51eJpxA1 /xwWzpaSw42FIcPALWOEzjEtsLKtaAbbuJxTCBE0z3XgvUKe5CkM2vJjdSaaYmvJl3dQ BSzIK3ynuhQ/V7jvtFaOWmNq5GaBZeeWGKNXvVnvmk3AkUE/wPGKFnnaqxrFzrhoTqst W158iPLvG1uZWQeC4lOLUVymOwgTlKNPdBgz+AuWQLDj3Q8Y9TxOFULrr/JYJHLvvD8E Z17TZb8y5tMzwvAg/RrBDpChUYlwqZDjFdLXtyxfiZZi8F4JHefxMBgY7MMQWfhPRshe o8UQ== X-Gm-Message-State: AOJu0YzJrRT1Dx2gfWxqCvAXc6/vFiiKMaRFdY9bfYrjB7L+u6MSkcFQ LElIEqrhZWx1N2I/lxPhCo55VWjuwtpSuVZI9yoYpsYDsaOeXNr/9Nrru2VSKDZ+04+uiS0hPfJ 3Y1RiQ6o= X-Gm-Gg: AY/fxX6mFM+3Cv4DezXw8m6oZa9wgDs347DcjAg574fxB9PjRwznC9J8f5ft5x4NK9j qVzLOeACSp+MPMnPRcMrgxpFqgF2qm1OM7GMw8ZAWe4yy12v98FX5ATHhFS6290KYTDWpH81ppg j4JpZ5Q4CWcBXQdXdI3bzqUXu1ZzvhTmvzeiuOmboyhVn8EVi245yxR2uTh4MTjnmVwH5qagJQ8 mNovHARXNMD48eXLPquWrNRFrbswQF0H+RYXKCt0B3otO9bj0ZxmNrdaql9XsSTrjp2bSMcY7vF dLYyfhJNaqPsQy2D4bSbshss8gjKc3lzyLwsr8xlFlFFPhKPAfneVIYvK/IWzWEQt3LcXageXz+ ZGp6U0D3Wd4kuMhXixVu7M6XaLTOrzGKKHONJ28V64T/FeUHcTGtww6mpMChm24f2GKgfRIP9nY c1MEJXR/fYMbi21C6F50DpXaUcx+MLgkQmFuTiHteo26eUGQ7IpY7lN35v6rez X-Google-Smtp-Source: AGHT+IHYMgkVbg/C7L02tykiHUOk2w0Fjda7YJqP93rRZyN9WMwUzExpfExa8geXCQyLfyMC+qz3hA== X-Received: by 2002:a05:600c:3b28:b0:477:9b4a:a82 with SMTP id 5b1f17b1804b1-47d84b41152mr118475255e9.35.1767977507556; Fri, 09 Jan 2026 08:51:47 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 07/22] system/memory: Define address_space_ldst[W] endian variants via template Date: Fri, 9 Jan 2026 17:50:43 +0100 Message-ID: <20260109165058.59144-8-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::331; envelope-from=philmd@linaro.org; helo=mail-wm1-x331.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977529570158500 Like we do for other LD/ST APIs, use one template to declare and define all endianness variants of the address_space_ldst[W] methods. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- MAINTAINERS | 1 + include/system/memory_ldst.h.inc | 21 ++++---- include/system/memory_ldst_endian.h.inc | 25 +++++++++ include/system/memory_ldst_phys.h.inc | 45 ++++------------ include/system/memory_ldst_phys_endian.h.inc | 37 ++++++++++++++ system/memory_ldst.c.inc | 54 +++++--------------- system/memory_ldst_endian.c.inc | 42 +++++++++++++++ 7 files changed, 135 insertions(+), 90 deletions(-) create mode 100644 include/system/memory_ldst_endian.h.inc create mode 100644 include/system/memory_ldst_phys_endian.h.inc create mode 100644 system/memory_ldst_endian.c.inc diff --git a/MAINTAINERS b/MAINTAINERS index ad1de7c0478..2c928f5b38a 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -3270,6 +3270,7 @@ F: system/ioport.c F: system/memory.c F: system/memory_mapping.c F: system/physmem.c +F: system/memory_ldst* F: system/memory-internal.h F: system/ram-block-attributes.c F: scripts/coccinelle/memory-region-housekeeping.cocci diff --git a/include/system/memory_ldst.h.inc b/include/system/memory_ldst.= h.inc index 173164fee3a..73c0366a247 100644 --- a/include/system/memory_ldst.h.inc +++ b/include/system/memory_ldst.h.inc @@ -19,24 +19,16 @@ * License along with this library; if not, see . */ =20 -uint16_t glue(address_space_lduw, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint32_t glue(address_space_ldl, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint64_t glue(address_space_ldq, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stw, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stl, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stq, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint16_t glue(address_space_lduw_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint16_t glue(address_space_lduw_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint32_t glue(address_space_ldl_le, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint32_t glue(address_space_ldl_be, SUFFIX)(ARG1_DECL, @@ -47,10 +39,6 @@ uint64_t glue(address_space_ldq_be, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stw_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stw_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stl_le, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stl_be, SUFFIX)(ARG1_DECL, @@ -60,6 +48,15 @@ void glue(address_space_stq_le, SUFFIX)(ARG1_DECL, void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); =20 +#define ENDIANNESS +#include "system/memory_ldst_endian.h.inc" + +#define ENDIANNESS _le +#include "system/memory_ldst_endian.h.inc" + +#define ENDIANNESS _be +#include "system/memory_ldst_endian.h.inc" + #undef ARG1_DECL #undef ARG1 #undef SUFFIX diff --git a/include/system/memory_ldst_endian.h.inc b/include/system/memor= y_ldst_endian.h.inc new file mode 100644 index 00000000000..3f216197663 --- /dev/null +++ b/include/system/memory_ldst_endian.h.inc @@ -0,0 +1,25 @@ +/* + * Physical memory access endian templates + * + * Copyright (c) 2003 Fabrice Bellard + * Copyright (c) 2015 Linaro, Inc. + * Copyright (c) 2016 Red Hat, Inc. + * Copyright (c) 2025 Linaro Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#define ADDRESS_SPACE_LD(size) \ + glue(glue(address_space_ld, size), glue(ENDIANNESS, SUFFIX)) +#define ADDRESS_SPACE_ST(size) \ + glue(glue(address_space_st, size), glue(ENDIANNESS, SUFFIX)) + +uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result); +void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, + MemTxAttrs attrs, MemTxResult *result); + +#undef ADDRESS_SPACE_LD +#undef ADDRESS_SPACE_ST + +#undef ENDIANNESS diff --git a/include/system/memory_ldst_phys.h.inc b/include/system/memory_= ldst_phys.h.inc index db67de75251..71c2e64ff0f 100644 --- a/include/system/memory_ldst_phys.h.inc +++ b/include/system/memory_ldst_phys.h.inc @@ -19,12 +19,6 @@ * License along with this library; if not, see . */ =20 -static inline uint16_t glue(lduw_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_lduw, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline uint32_t glue(ldl_phys, SUFFIX)(ARG1_DECL, hwaddr addr) { return glue(address_space_ldl, SUFFIX)(ARG1, addr, @@ -37,12 +31,6 @@ static inline uint64_t glue(ldq_phys, SUFFIX)(ARG1_DECL,= hwaddr addr) MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline void glue(stw_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint16_t= val) -{ - glue(address_space_stw, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline void glue(stl_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t= val) { glue(address_space_stl, SUFFIX)(ARG1, addr, val, @@ -61,18 +49,6 @@ static inline uint8_t glue(ldub_phys, SUFFIX)(ARG1_DECL,= hwaddr addr) MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline uint16_t glue(lduw_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_lduw_le, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NUL= L); -} - -static inline uint16_t glue(lduw_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_lduw_be, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NUL= L); -} - static inline uint32_t glue(ldl_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr) { return glue(address_space_ldl_le, SUFFIX)(ARG1, addr, @@ -103,18 +79,6 @@ static inline void glue(stb_phys, SUFFIX)(ARG1_DECL, hw= addr addr, uint8_t val) MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline void glue(stw_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint1= 6_t val) -{ - glue(address_space_stw_le, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - -static inline void glue(stw_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint1= 6_t val) -{ - glue(address_space_stw_be, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline void glue(stl_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint3= 2_t val) { glue(address_space_stl_le, SUFFIX)(ARG1, addr, val, @@ -139,6 +103,15 @@ static inline void glue(stq_be_phys, SUFFIX)(ARG1_DECL= , hwaddr addr, uint64_t va MEMTXATTRS_UNSPECIFIED, NULL); } =20 +#define ENDIANNESS +#include "system/memory_ldst_phys_endian.h.inc" + +#define ENDIANNESS _le +#include "system/memory_ldst_phys_endian.h.inc" + +#define ENDIANNESS _be +#include "system/memory_ldst_phys_endian.h.inc" + #undef ARG1_DECL #undef ARG1 #undef SUFFIX diff --git a/include/system/memory_ldst_phys_endian.h.inc b/include/system/= memory_ldst_phys_endian.h.inc new file mode 100644 index 00000000000..25ab52a88d9 --- /dev/null +++ b/include/system/memory_ldst_phys_endian.h.inc @@ -0,0 +1,37 @@ +/* + * Physical memory access endian templates + * + * Copyright (c) 2003 Fabrice Bellard + * Copyright (c) 2015 Linaro, Inc. + * Copyright (c) 2016 Red Hat, Inc. + * Copyright (c) 2025 Linaro Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#define LD_PHYS(size) \ + glue(glue(ld, size), glue(ENDIANNESS, glue(_phys, SUFFIX))) +#define ADDRESS_SPACE_LD(size) \ + glue(glue(address_space_ld, size), glue(ENDIANNESS, SUFFIX)) + +#define ST_PHYS(size) \ + glue(glue(st, size), glue(ENDIANNESS, glue(_phys, SUFFIX))) +#define ADDRESS_SPACE_ST(size) \ + glue(glue(address_space_st, size), glue(ENDIANNESS, SUFFIX)) + +static inline uint16_t LD_PHYS(uw)(ARG1_DECL, hwaddr addr) +{ + return ADDRESS_SPACE_LD(uw)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); +} + +static inline void ST_PHYS(w)(ARG1_DECL, hwaddr addr, uint16_t val) +{ + ADDRESS_SPACE_ST(w)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); +} + +#undef LD_PHYS +#undef ST_PHYS +#undef ADDRESS_SPACE_LD +#undef ADDRESS_SPACE_ST + +#undef ENDIANNESS diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index d5776678edf..c37a07b4f4a 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -240,27 +240,6 @@ static inline uint16_t glue(address_space_lduw_interna= l, SUFFIX)(ARG1_DECL, return val; } =20 -uint16_t glue(address_space_lduw, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_lduw_internal, SUFFIX)(ARG1, addr, attrs, re= sult, - DEVICE_NATIVE_ENDIAN); -} - -uint16_t glue(address_space_lduw_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_lduw_internal, SUFFIX)(ARG1, addr, attrs, re= sult, - DEVICE_LITTLE_ENDIAN); -} - -uint16_t glue(address_space_lduw_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_lduw_internal, SUFFIX)(ARG1, addr, attrs, re= sult, - DEVICE_BIG_ENDIAN); -} - /* warning: addr must be aligned */ static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, @@ -401,27 +380,6 @@ static inline void glue(address_space_stw_internal, SU= FFIX)(ARG1_DECL, RCU_READ_UNLOCK(); } =20 -void glue(address_space_stw, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stw_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_NATIVE_ENDIAN); -} - -void glue(address_space_stw_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stw_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_LITTLE_ENDIAN); -} - -void glue(address_space_stw_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stw_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_BIG_ENDIAN); -} - static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) @@ -486,6 +444,18 @@ void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, DEVICE_BIG_ENDIAN); } =20 +#define ENDIANNESS +#define DEVICE_ENDIANNESS DEVICE_NATIVE_ENDIAN +#include "memory_ldst_endian.c.inc" + +#define ENDIANNESS _le +#define DEVICE_ENDIANNESS DEVICE_LITTLE_ENDIAN +#include "memory_ldst_endian.c.inc" + +#define ENDIANNESS _be +#define DEVICE_ENDIANNESS DEVICE_BIG_ENDIAN +#include "memory_ldst_endian.c.inc" + #undef ARG1_DECL #undef ARG1 #undef SUFFIX diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc new file mode 100644 index 00000000000..e1ae44ca232 --- /dev/null +++ b/system/memory_ldst_endian.c.inc @@ -0,0 +1,42 @@ +/* + * Physical memory access endian templates + * + * Copyright (c) 2003 Fabrice Bellard + * Copyright (c) 2015 Linaro, Inc. + * Copyright (c) 2016 Red Hat, Inc. + * Copyright (c) 2025 Linaro Ltd. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#define ADDRESS_SPACE_LD(size) \ + glue(glue(address_space_ld, size), glue(ENDIANNESS, SUFFIX)) +#define ADDRESS_SPACE_LD_INTERNAL(size) \ + glue(glue(address_space_ld, size), glue(_internal, SUFFIX)) + +#define ADDRESS_SPACE_ST(size) \ + glue(glue(address_space_st, size), glue(ENDIANNESS, SUFFIX)) +#define ADDRESS_SPACE_ST_INTERNAL(size) \ + glue(glue(address_space_st, size), glue(_internal, SUFFIX)) + +uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result) +{ + return ADDRESS_SPACE_LD_INTERNAL(uw)(ARG1, addr, attrs, result, + DEVICE_ENDIANNESS); +} + +void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, + MemTxAttrs attrs, MemTxResult *result) +{ + ADDRESS_SPACE_ST_INTERNAL(w)(ARG1, addr, val, attrs, result, + DEVICE_ENDIANNESS); +} + +#undef ADDRESS_SPACE_LD +#undef ADDRESS_SPACE_LD_INTERNAL +#undef ADDRESS_SPACE_ST +#undef ADDRESS_SPACE_ST_INTERNAL + +#undef ENDIANNESS +#undef DEVICE_ENDIANNESS --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977544; cv=none; d=zohomail.com; s=zohoarc; b=agvPgqrhD+hs5VTBeI8nTbBTqHJipKs6MECgBeJi75KVT9q21Kxr0HrwTv4T+ofxBWXtOVjKf4Bj6T9FCDvp0XURbIaoF+KFdmNILUJwPShNXnLtSF8Rg9dtkzpX8MmSrtXnKGsax1vvuGj/KsbzbDbJ2adg5MUhqCiuh7ID694= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977544; 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=igCseaXkituHRUHlgN3vHTspEqy2I4p8ueKPXus93fI=; b=cV3I5a5HgijKsTRduOa1CL63mQe8IVm8VPoq5EuOQa+DiuNCJiHy2cEq9Sc331HdR7VR2Yc8gf9/sxjps/YUravAPipFgu7pefkE2AcGoD4iLpmAcfD+L1zSvtxVxWTZxpVzB2SBeWsxVcW4vcmbxHAyRLcJiPq50VYXjoed2vU= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977544283768.011556099225; Fri, 9 Jan 2026 08:52:24 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFig-0005Xv-N6; Fri, 09 Jan 2026 11:52:14 -0500 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 ) id 1veFiR-0004jQ-AO for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:00 -0500 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 ) id 1veFiO-0007OE-QN for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:51:59 -0500 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-47a8195e515so32544785e9.0 for ; Fri, 09 Jan 2026 08:51:56 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f661a03sm229069925e9.13.2026.01.09.08.51.53 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:51:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977514; x=1768582314; 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=igCseaXkituHRUHlgN3vHTspEqy2I4p8ueKPXus93fI=; b=eA9qy9lhc//PjVDyZBC98Jn8Nf4lieJi95Dt5liKXgSG+h7ix5IbxfJ8xEtJzRTFiH ZHyo4GmRm0EZ20ZIuT9OAbHTDqCxtoFYyilS1ilMnhuIrblt9VowgHz8JmFsso56xEt4 TwbUisK5AWEPCyhZSE/3Uc5mMFAf74M3Tgt+h0MUMbdUw+hqeqcq+nB+SwJTEo4MYjLe YZgJNRio1mFBwnHO5ZI9D/hLAlngF5+xQyWOoW0Estlv+xbXYbU5lkOzWcd1Ur7mpF7q Zg11Rpol9vtedM4A765SIj3yi2PinGtlgrK/SiXhMysR314T5boZYXA7n0X4I61rfHkv Aa8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977514; x=1768582314; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=igCseaXkituHRUHlgN3vHTspEqy2I4p8ueKPXus93fI=; b=ZZLs6hywRPlw1wg3IICxvj3v5+nSHFrmLpg592e9HOLb5hHempDjmT/UdXo7oQvaQF lZaArmjuSBPXPP0i7N3Ke4I279hq1rH30uzjvNhvS8xp3Fy7VKPIBImonunquOiNhezW Sz0sHm92j0Rxb/tVgZGu6SKpfGnrHZ0sWId9Wr30B2ptcKC2pYyGLuoeLHgGi7PSZJKw ghHAIHsYPshy/KU4Z338+auqFGsYa0YkLZ9LvNZp+DLOCwVhqg/yspUpJQ+79OJyp8qd c8alMP10aK4IhBAVDTKc5bkAxSgRzjA1vlrRtrJplGbr/f50bwb/COMq+iybqJeIJ5X+ o26A== X-Gm-Message-State: AOJu0YyQ6Uu2WjZntj/BaOaliPrOQ8avVlPfx7skJ3m2+eW8G1QdAx9Q +BzJzqKkJ1g91xgv1x7IqeGN95Sf+BxMK8eyOKo0brYMhRemJ/2vtmnyNt3g8vgPaPtF6rSARyg PgpCB01s= X-Gm-Gg: AY/fxX6cxDVm3He7745LCGywiIElpK/9a04GRBeC8+nMRaaXfW44iUS/2aQFibd2RqU Kc3R0Hqzvn5r2a1iHH8Z1cDC5UXoXxshOFP3OvjTK+SeGzN/XI4FZ6JsLVbcIWaZChvAuObLso/ BVizs/X04shcfciN76o8ZewniMzjuHTD5/45us71khLXcq/wTuNNVJtuNnL7DZK40NB8qDZUs/o odrFxxCCjvxyjqeb2l2+0dB6PApIGfagF1TajLT+2r1YKQaDfpbg7Km1FSdSnVGhVLPdsAAu1b8 RFyWY4dfQjpHptfvhUINwvjl1mEDWp4kwHyDD4FKurJuCHeqOgvEYxas+GLcPpMGAN3LBEe4QWU DK6tmWt0SjkSYbk2I2s4GC9dolDozirTtQTDQQB6/1VpkoRtV0tm8bw65DyIaUoJlyVz32ldDpX avpAkhooHHbKi6FXbuBQk2NqbUpNOyylz554vnaxYphIcYI0nSYqpWGvTxh27r X-Google-Smtp-Source: AGHT+IHMoiaVn24KlGA+4AgF6tw6KOky/8PMetmr2BZN0aJMiJ+3snmSA8U3MVpgqFjG/OeJ6iiSsg== X-Received: by 2002:a05:600c:a08b:b0:477:9650:3175 with SMTP id 5b1f17b1804b1-47d93ec069bmr26134895e9.0.1767977514304; Fri, 09 Jan 2026 08:51:54 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 08/22] system/memory: Define address_space_ldst[L] endian variants via template Date: Fri, 9 Jan 2026 17:50:44 +0100 Message-ID: <20260109165058.59144-9-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977545675158500 Define address_space_ldst[L] endian variants via template. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/system/memory_ldst.h.inc | 12 ------ include/system/memory_ldst_endian.h.inc | 4 ++ include/system/memory_ldst_phys.h.inc | 36 ----------------- include/system/memory_ldst_phys_endian.h.inc | 10 +++++ system/memory_ldst.c.inc | 42 -------------------- system/memory_ldst_endian.c.inc | 14 +++++++ 6 files changed, 28 insertions(+), 90 deletions(-) diff --git a/include/system/memory_ldst.h.inc b/include/system/memory_ldst.= h.inc index 73c0366a247..7ccca46f2a9 100644 --- a/include/system/memory_ldst.h.inc +++ b/include/system/memory_ldst.h.inc @@ -19,30 +19,18 @@ * License along with this library; if not, see . */ =20 -uint32_t glue(address_space_ldl, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint64_t glue(address_space_ldq, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stl, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stq, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint32_t glue(address_space_ldl_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint32_t glue(address_space_ldl_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint64_t glue(address_space_ldq_le, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint64_t glue(address_space_ldq_be, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stl_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stl_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stq_le, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, diff --git a/include/system/memory_ldst_endian.h.inc b/include/system/memor= y_ldst_endian.h.inc index 3f216197663..845ec3b4ad1 100644 --- a/include/system/memory_ldst_endian.h.inc +++ b/include/system/memory_ldst_endian.h.inc @@ -16,8 +16,12 @@ =20 uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); +uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result); void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); +void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, + MemTxAttrs attrs, MemTxResult *result); =20 #undef ADDRESS_SPACE_LD #undef ADDRESS_SPACE_ST diff --git a/include/system/memory_ldst_phys.h.inc b/include/system/memory_= ldst_phys.h.inc index 71c2e64ff0f..c3c73419e61 100644 --- a/include/system/memory_ldst_phys.h.inc +++ b/include/system/memory_ldst_phys.h.inc @@ -19,24 +19,12 @@ * License along with this library; if not, see . */ =20 -static inline uint32_t glue(ldl_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldl, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline uint64_t glue(ldq_phys, SUFFIX)(ARG1_DECL, hwaddr addr) { return glue(address_space_ldq, SUFFIX)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline void glue(stl_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint32_t= val) -{ - glue(address_space_stl, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline void glue(stq_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t= val) { glue(address_space_stq, SUFFIX)(ARG1, addr, val, @@ -49,18 +37,6 @@ static inline uint8_t glue(ldub_phys, SUFFIX)(ARG1_DECL,= hwaddr addr) MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline uint32_t glue(ldl_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldl_le, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL= ); -} - -static inline uint32_t glue(ldl_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldl_be, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL= ); -} - static inline uint64_t glue(ldq_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr) { return glue(address_space_ldq_le, SUFFIX)(ARG1, addr, @@ -79,18 +55,6 @@ static inline void glue(stb_phys, SUFFIX)(ARG1_DECL, hwa= ddr addr, uint8_t val) MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline void glue(stl_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint3= 2_t val) -{ - glue(address_space_stl_le, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - -static inline void glue(stl_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint3= 2_t val) -{ - glue(address_space_stl_be, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline void glue(stq_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint6= 4_t val) { glue(address_space_stq_le, SUFFIX)(ARG1, addr, val, diff --git a/include/system/memory_ldst_phys_endian.h.inc b/include/system/= memory_ldst_phys_endian.h.inc index 25ab52a88d9..1589f34e8e4 100644 --- a/include/system/memory_ldst_phys_endian.h.inc +++ b/include/system/memory_ldst_phys_endian.h.inc @@ -24,11 +24,21 @@ static inline uint16_t LD_PHYS(uw)(ARG1_DECL, hwaddr ad= dr) return ADDRESS_SPACE_LD(uw)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); } =20 +static inline uint32_t LD_PHYS(l)(ARG1_DECL, hwaddr addr) +{ + return ADDRESS_SPACE_LD(l)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); +} + static inline void ST_PHYS(w)(ARG1_DECL, hwaddr addr, uint16_t val) { ADDRESS_SPACE_ST(w)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); } =20 +static inline void ST_PHYS(l)(ARG1_DECL, hwaddr addr, uint32_t val) +{ + ADDRESS_SPACE_ST(l)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); +} + #undef LD_PHYS #undef ST_PHYS #undef ADDRESS_SPACE_LD diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index c37a07b4f4a..ab2df6e429b 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -67,27 +67,6 @@ static inline uint32_t glue(address_space_ldl_internal, = SUFFIX)(ARG1_DECL, return val; } =20 -uint32_t glue(address_space_ldl, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldl_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_NATIVE_ENDIAN); -} - -uint32_t glue(address_space_ldl_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldl_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_LITTLE_ENDIAN); -} - -uint32_t glue(address_space_ldl_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldl_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_BIG_ENDIAN); -} - /* warning: addr must be aligned */ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result, @@ -284,27 +263,6 @@ static inline void glue(address_space_stl_internal, SU= FFIX)(ARG1_DECL, RCU_READ_UNLOCK(); } =20 -void glue(address_space_stl, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stl_internal, SUFFIX)(ARG1, addr, val, attrs, - result, DEVICE_NATIVE_ENDIAN); -} - -void glue(address_space_stl_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stl_internal, SUFFIX)(ARG1, addr, val, attrs, - result, DEVICE_LITTLE_ENDIAN); -} - -void glue(address_space_stl_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stl_internal, SUFFIX)(ARG1, addr, val, attrs, - result, DEVICE_BIG_ENDIAN); -} - void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) { diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc index e1ae44ca232..5d46524ec4c 100644 --- a/system/memory_ldst_endian.c.inc +++ b/system/memory_ldst_endian.c.inc @@ -26,6 +26,13 @@ uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, DEVICE_ENDIANNESS); } =20 +uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result) +{ + return ADDRESS_SPACE_LD_INTERNAL(l)(ARG1, addr, attrs, result, + DEVICE_ENDIANNESS); +} + void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) { @@ -33,6 +40,13 @@ void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_= t val, DEVICE_ENDIANNESS); } =20 +void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, + MemTxAttrs attrs, MemTxResult *result) +{ + ADDRESS_SPACE_ST_INTERNAL(l)(ARG1, addr, val, attrs, result, + DEVICE_ENDIANNESS); +} + #undef ADDRESS_SPACE_LD #undef ADDRESS_SPACE_LD_INTERNAL #undef ADDRESS_SPACE_ST --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977538; cv=none; d=zohomail.com; s=zohoarc; b=WoOuyoufAY9egU7QvEoSPvmunJGoXxXo59UxTiRku1z85ReSO87EBlOVKOq3Unct8V4sfx/M+10AO0kkMR1majRYOQQTQFYT2X5ZkBWjrDtWvZ2G2bDmfMufnOQrj74boPWxXog+uyYVoT5I1v/WkMJmFFzkjOQ3QKvw8FsOB0Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977538; 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=giWdPoxyT7GeYpAJXZMpfomroD+LhNldKaXalY7TMhs=; b=YI69s96JjKt07sWEkIBgdhZgs+jTVWq0g43lxpDbhWIYLEvQ33feuhL9WOZ4j+RYVyrzYleklgEtG6zHacggdjUArOmt7rv23HIJhqCIaXZZfRIfmO+VD1RR26N7EBe/3hh3FaQTlmKIbmcWkN1zkE68atQO4jt6Y+8fgZki30I= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977538881953.6936144116015; Fri, 9 Jan 2026 08:52:18 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFic-0005Aq-ES; Fri, 09 Jan 2026 11:52:10 -0500 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 ) id 1veFiZ-0004s3-2S for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:07 -0500 Received: from mail-wr1-x42b.google.com ([2a00:1450:4864:20::42b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFiW-0007Ob-Ec for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:06 -0500 Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-43277900fb4so1508475f8f.1 for ; Fri, 09 Jan 2026 08:52:02 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd0e16ffsm24197507f8f.12.2026.01.09.08.52.00 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:52:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977521; x=1768582321; 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=giWdPoxyT7GeYpAJXZMpfomroD+LhNldKaXalY7TMhs=; b=iOcTS81kAVaZ4mtLWzXewJ3bmQFtjcpXKlCnr+4Uxtjxq61IaBx/dWOi5nF7tGtDXK XRiZzwdxgrk2nBmOPKE1N8ZK8tQaRxE4rBMb6wqAueNdDAxTtsu7frQV7Rkbvn9jV2fH thIfZ4V0QIDgqcpXSW4k8m7rfCVZSyZyTukHDFBawBA9ffNumeY2ddsZyGpd0vQ5rYga GUpTRzWs3HO5QYBVtiuBCBu8ubWZmdYDAqFSD0CVOE1siW5vDz4rHaxyDThXGrH9s/2q 9VrV/SuHZ1nOTEGsSDnrsOVMIrFwl5TCEm2/0rDADuhhAFVdkbDWJCCHQrzfcPhRRRWg eElg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977521; x=1768582321; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=giWdPoxyT7GeYpAJXZMpfomroD+LhNldKaXalY7TMhs=; b=cmsG9OcygFT9IIKisIMkcdmuRmlz84Q+KOKolzT09qOlu+mPQStKUytIVz5ndpKqZ3 EcnlT+5yTkdOW1G1lRIJJiaGOC/iza7jfxfmvhfcaHfh14O3banQDtTgjVDXta365cJG Aygzd7rZtc+R5NwI6FAaRlxhYczDm2HQmJXEA/b8JBfWHG+x1UgLgH7HFfSw/z/cpjvh 0riBToAufocQ85suk4gKu6qSjlcRt0wss6PoD3EeWGoeEvyxl7lTw5Qc0FI1SJB9PFts zIaLcv8ceDBlCZ03M2DI6qB/2Vgaqv9XJ1qLdoxSbWwMsE8BLv3awR81eU6qOcnSFJon jlGw== X-Gm-Message-State: AOJu0YwqsVTJERC+OnkyDEIMkBOLkycdcfzMmFV6w/GegmN/MQXzSdCP XMR5fT242KEJNwzY4r7UqOzgzxqVfvXySuEOpLpyvP3Cp5fhytmNxNbCpX3RJf50bT/QUv2l3Mq /bMBNh4Y= X-Gm-Gg: AY/fxX4E54BnZGDhT9AenYGn4DDFDjVsxsTK3LPuyAuX2mYB0SteQMfAZ/StI6Qc3hs RTt8ZK2wqn1A1kKDbG+bnBAc4bWuaVtPzBze4q/fRjxSecvWS9oIjPGeCaZxwISjFTJ+vYpdAMD zCOji4TuvUjPpiBLquIKiw90y80byj2fLumN2p5VnqCykjO7pgPzc0dGhYlavpH08lmKk0lYVVs kSJcNeigzzVc1U3q3zsAgYcy4vutzfI4xaCLowXTKDfZ2CaBjFcOgDGMZEGgi3+UnJt9RFvQrCz U9aH5ud5tXZwgEMX/sWEgI9xg1sRC+yiP2aatt2D592s+n63gX9pSA6uXTz6YmU5tyapyikODNj BPlB+KL5oOD4Dv7MrFvn0W5miBtgbdOkKVeFhd8PHo4+wcwVjwLqoDbYHvBvR/XBO8sDy7qXeEu pZDuZtGtL25mo6Awjs281PVdSLlB+AFjwgbm3Lqv/DyhyksZyEXutX34ugMIMd X-Google-Smtp-Source: AGHT+IGWIeEbNJP4ztcqzEokeCnRELnxkHxta9VJ7KVH3od0V7cgjVDfPyq2ZzrJ4pDHxR8iRcP+rQ== X-Received: by 2002:a05:6000:40dd:b0:431:771:a50c with SMTP id ffacd0b85a97d-432bcf99f09mr17106872f8f.1.1767977521015; Fri, 09 Jan 2026 08:52:01 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 09/22] system/memory: Define address_space_ldst[Q] endian variants via template Date: Fri, 9 Jan 2026 17:50:45 +0100 Message-ID: <20260109165058.59144-10-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::42b; envelope-from=philmd@linaro.org; helo=mail-wr1-x42b.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977539549158501 Define address_space_ldst[Q] endian variants via template. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/system/memory_ldst.h.inc | 17 ++------ include/system/memory_ldst_endian.h.inc | 4 ++ include/system/memory_ldst_phys.h.inc | 36 ----------------- include/system/memory_ldst_phys_endian.h.inc | 10 +++++ system/memory_ldst.c.inc | 42 -------------------- system/memory_ldst_endian.c.inc | 14 +++++++ 6 files changed, 31 insertions(+), 92 deletions(-) diff --git a/include/system/memory_ldst.h.inc b/include/system/memory_ldst.= h.inc index 7ccca46f2a9..dd1fb482eac 100644 --- a/include/system/memory_ldst.h.inc +++ b/include/system/memory_ldst.h.inc @@ -19,22 +19,11 @@ * License along with this library; if not, see . */ =20 -uint64_t glue(address_space_ldq, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stq, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint64_t glue(address_space_ldq_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); -uint64_t glue(address_space_ldq_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result); + hwaddr addr, MemTxAttrs attrs, MemTxResult *result); + void glue(address_space_stb, SUFFIX)(ARG1_DECL, - hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stq_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); -void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result); + hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); =20 #define ENDIANNESS #include "system/memory_ldst_endian.h.inc" diff --git a/include/system/memory_ldst_endian.h.inc b/include/system/memor= y_ldst_endian.h.inc index 845ec3b4ad1..f5b6b496be5 100644 --- a/include/system/memory_ldst_endian.h.inc +++ b/include/system/memory_ldst_endian.h.inc @@ -18,10 +18,14 @@ uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result); +uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result); void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result); void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result); +void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t val, + MemTxAttrs attrs, MemTxResult *result); =20 #undef ADDRESS_SPACE_LD #undef ADDRESS_SPACE_ST diff --git a/include/system/memory_ldst_phys.h.inc b/include/system/memory_= ldst_phys.h.inc index c3c73419e61..f4c91dc7a91 100644 --- a/include/system/memory_ldst_phys.h.inc +++ b/include/system/memory_ldst_phys.h.inc @@ -19,54 +19,18 @@ * License along with this library; if not, see . */ =20 -static inline uint64_t glue(ldq_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldq, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL); -} - -static inline void glue(stq_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t= val) -{ - glue(address_space_stq, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - static inline uint8_t glue(ldub_phys, SUFFIX)(ARG1_DECL, hwaddr addr) { return glue(address_space_ldub, SUFFIX)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline uint64_t glue(ldq_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldq_le, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL= ); -} - -static inline uint64_t glue(ldq_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr) -{ - return glue(address_space_ldq_be, SUFFIX)(ARG1, addr, - MEMTXATTRS_UNSPECIFIED, NULL= ); -} - static inline void glue(stb_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t = val) { glue(address_space_stb, SUFFIX)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); } =20 -static inline void glue(stq_le_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint6= 4_t val) -{ - glue(address_space_stq_le, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - -static inline void glue(stq_be_phys, SUFFIX)(ARG1_DECL, hwaddr addr, uint6= 4_t val) -{ - glue(address_space_stq_be, SUFFIX)(ARG1, addr, val, - MEMTXATTRS_UNSPECIFIED, NULL); -} - #define ENDIANNESS #include "system/memory_ldst_phys_endian.h.inc" =20 diff --git a/include/system/memory_ldst_phys_endian.h.inc b/include/system/= memory_ldst_phys_endian.h.inc index 1589f34e8e4..820e9dd1f13 100644 --- a/include/system/memory_ldst_phys_endian.h.inc +++ b/include/system/memory_ldst_phys_endian.h.inc @@ -29,6 +29,11 @@ static inline uint32_t LD_PHYS(l)(ARG1_DECL, hwaddr addr) return ADDRESS_SPACE_LD(l)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); } =20 +static inline uint64_t LD_PHYS(q)(ARG1_DECL, hwaddr addr) +{ + return ADDRESS_SPACE_LD(q)(ARG1, addr, MEMTXATTRS_UNSPECIFIED, NULL); +} + static inline void ST_PHYS(w)(ARG1_DECL, hwaddr addr, uint16_t val) { ADDRESS_SPACE_ST(w)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); @@ -39,6 +44,11 @@ static inline void ST_PHYS(l)(ARG1_DECL, hwaddr addr, ui= nt32_t val) ADDRESS_SPACE_ST(l)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); } =20 +static inline void ST_PHYS(q)(ARG1_DECL, hwaddr addr, uint64_t val) +{ + ADDRESS_SPACE_ST(q)(ARG1, addr, val, MEMTXATTRS_UNSPECIFIED, NULL); +} + #undef LD_PHYS #undef ST_PHYS #undef ADDRESS_SPACE_LD diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index ab2df6e429b..823fc3a7561 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -115,27 +115,6 @@ static inline uint64_t glue(address_space_ldq_internal= , SUFFIX)(ARG1_DECL, return val; } =20 -uint64_t glue(address_space_ldq, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldq_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_NATIVE_ENDIAN); -} - -uint64_t glue(address_space_ldq_le, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldq_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_LITTLE_ENDIAN); -} - -uint64_t glue(address_space_ldq_be, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldq_internal, SUFFIX)(ARG1, addr, attrs, res= ult, - DEVICE_BIG_ENDIAN); -} - uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { @@ -381,27 +360,6 @@ static inline void glue(address_space_stq_internal, SU= FFIX)(ARG1_DECL, RCU_READ_UNLOCK(); } =20 -void glue(address_space_stq, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stq_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_NATIVE_ENDIAN); -} - -void glue(address_space_stq_le, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stq_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_LITTLE_ENDIAN); -} - -void glue(address_space_stq_be, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result) -{ - glue(address_space_stq_internal, SUFFIX)(ARG1, addr, val, attrs, resul= t, - DEVICE_BIG_ENDIAN); -} - #define ENDIANNESS #define DEVICE_ENDIANNESS DEVICE_NATIVE_ENDIAN #include "memory_ldst_endian.c.inc" diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc index 5d46524ec4c..791d041b15d 100644 --- a/system/memory_ldst_endian.c.inc +++ b/system/memory_ldst_endian.c.inc @@ -33,6 +33,13 @@ uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, DEVICE_ENDIANNESS); } =20 +uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *result) +{ + return ADDRESS_SPACE_LD_INTERNAL(q)(ARG1, addr, attrs, result, + DEVICE_ENDIANNESS); +} + void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) { @@ -47,6 +54,13 @@ void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_= t val, DEVICE_ENDIANNESS); } =20 +void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t val, + MemTxAttrs attrs, MemTxResult *result) +{ + ADDRESS_SPACE_ST_INTERNAL(q)(ARG1, addr, val, attrs, result, + DEVICE_ENDIANNESS); +} + #undef ADDRESS_SPACE_LD #undef ADDRESS_SPACE_LD_INTERNAL #undef ADDRESS_SPACE_ST --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977591; cv=none; d=zohomail.com; s=zohoarc; b=fPn3oXsJdjMdOEQmMktm5CziONVbiCIQq7FvvCHUOGQsaaSn/svnUwusUAAclUKAXr/7X6w6d31Hs7DTBBaExpGU+7Is1n5qjbzNOedo5gugRBYa1BGK74jJSGINqB55rZ+xHdolc7RkcSGQE3pmMk+jGi9ZF809LRyuDthK8LM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977591; 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=P2hpwvKk7ET9jTr/WrRA7ZwlKa0SgDvCP9URR6HvV7k=; b=G0BJiwZh7cJrmkjAXcJgNPP5scmdg4rJwbN8CqIA1cIKiJBKGKzNfY2YWbfqKmBf6hxeeZ6R1u2uXOJMJnEuKZ7o1Ghgh08spjBqWnHVotJ9q+/RMHDNvBFMylyPOxu5GWdpjmwsGcqB7ZdHZs7SQ+VQKpOC0wy2Ew6IKiZcJUs= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176797759159920.947398358140276; Fri, 9 Jan 2026 08:53:11 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFih-0005ko-VA; Fri, 09 Jan 2026 11:52:16 -0500 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 ) id 1veFif-0005Tr-10 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:13 -0500 Received: from mail-wr1-x42d.google.com ([2a00:1450:4864:20::42d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFic-0007Pv-1T for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:12 -0500 Received: by mail-wr1-x42d.google.com with SMTP id ffacd0b85a97d-42fb6ce71c7so3605365f8f.1 for ; Fri, 09 Jan 2026 08:52:09 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd5df96asm22966146f8f.28.2026.01.09.08.52.06 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:52:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977528; x=1768582328; 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=P2hpwvKk7ET9jTr/WrRA7ZwlKa0SgDvCP9URR6HvV7k=; b=jyaKRc07eaJfFLtJH7w2MMwZjIRWBnSoTbChjwrJ53v1sRYnjWS4BfadWir/1k8H/w jErPfdrbZThfcMmV9L5Owa9z4du5EN2nQsgeWdxPRiAjsnn+9bJU9enUwgzJhoa35ceq rArriKRj5k7LguoCWX9fNn5j1px2fGyaQ/2WaGjS34q67/qwiX/215Af0OwYzuy0Vasd w6lGGfAK0HGxL/oaTtZeH5mvFclzErR+t3PqSv7ScTF0AzcB3BGDcvOL82hk6YPcdGY3 G2nmORaABMQ7vK4l112aX/RzTY351gt9iZ9+KJh8mySa3ETkJJV3nk/whrdk/PiI9oG5 49ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977528; x=1768582328; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=P2hpwvKk7ET9jTr/WrRA7ZwlKa0SgDvCP9URR6HvV7k=; b=QMSizugZQLNo6gM6N9MdCHEeHxRavw1eTha5EtTV8q5cSG3IiK4lJmJNO8hKWTjI4a Y39fJ+VEUcVOYGOT54VGEnq07rVocPITaWUxvqd80Lq7cOAWEkzZXbd4rALRy8we/gNj lDqRLzwZAcW/Ql4bIOaXIflp7p27umjBmdG2KaKuadkoaKZGUf0OxpnY6EkGd+yUeLML b2sONgwvxHI2SvwRHq+h5kx7Ft6uOOCopsXhG9acgfVFcmcjMxlItZ6ivLjzxybMvQcN X7/MS9krJaWbTnM+73Nedteu2VbVPe60GZZbBHRGvCJ36l5XU87hLpwVCRq+WWGQHSMZ s36w== X-Gm-Message-State: AOJu0YwwOLmGY4zXcAah1GS2nqD8Iv4AF0qozL2qOTqRqTXIEM+I4snW lmuJY+gOornzXjrmPRDSRIshEOckoaZMuq7v4EBf06AoGSk7TW49J1NOqp178tB47+jqgxK5Q8k kv++K/Y4= X-Gm-Gg: AY/fxX6zNrYbcuwuaTOPuo1jQowMgocwZNq833spgsmocyii7/YDcaz2+ah66CK1x+J syT+ctq0GTlW7e5gifSdc6TkNir2PeD+L6i30CA5E9jWXkQ0VnlNzeh0f/1UxkMfynkaVVjbw4w ZNN4ZdSiw+C1ptHYMpNjy0HoyPZtA8Vxsp0ylz9GXCNLwTNpU61sNf17VJiQx86j7O5iTtM13FD jvGel+mLTr1JfIZL3LFXM9i1Z/NF1gir9pLWhsN4JQrUM2Ox9wv7l9Y7viH+f+6SQ/oKpji9rek m22DH3TXTHJbsm1wGBqF3XASRDOfVuv68HurLpPgthyMBnsho+N5Ci18kzpqJLN0qhvG9AVSgJb pQ7UvVzscjrS5fnFir2y8BlQSZlBHkzp7uAVZ42VBJiYIbq+5yQy4YvJCDDo+Hl8a3C/Z6xEly0 Pye1I9VMvtq7rbFjeOyxLdte7H7lQeGMbU+DhilxRtwxxN85N8I26wrGPYRPvy X-Google-Smtp-Source: AGHT+IF/piKJV5mnJ8p5x4vhyUSpwS9HINkkkJTbRWc4wNfN3tiVu90pcQE+zmlV3gdIgj2aImBPYg== X-Received: by 2002:a05:6000:40dd:b0:431:2ff:1289 with SMTP id ffacd0b85a97d-432c3790856mr12345362f8f.16.1767977527697; Fri, 09 Jan 2026 08:52:07 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 10/22] system/memory: Factor address_space_ldst[M]_internal() helper out Date: Fri, 9 Jan 2026 17:50:46 +0100 Message-ID: <20260109165058.59144-11-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::42d; envelope-from=philmd@linaro.org; helo=mail-wr1-x42d.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977593746158500 All the LD/ST[W,L,Q] variants use the same template, only modifying the access size used. Unify as a single pair of LD/ST methods taking a MemOp argument. Thus use the 'm' suffix for MemOp. Keep the pre-existing "warning: addr must be aligned" comment. We leave the wonder about why we aren't asserting alignment for later. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- system/memory_ldst.c.inc | 298 +++++++++------------------------------ 1 file changed, 63 insertions(+), 235 deletions(-) diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index 823fc3a7561..39b3930bf50 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -20,39 +20,43 @@ */ =20 /* warning: addr must be aligned */ -static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result, - enum device_endian endian) +static inline +uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_DECL, MemOp mop, + hwaddr addr, + MemTxAttrs attrs, + MemTxResult *result, + enum device_endian endia= n) { + const unsigned size =3D memop_size(mop); uint8_t *ptr; uint64_t val; MemoryRegion *mr; - hwaddr l =3D 4; + hwaddr l =3D size; hwaddr addr1; MemTxResult r; bool release_lock =3D false; =20 RCU_READ_LOCK(); mr =3D TRANSLATE(addr, &addr1, &l, false, attrs); - if (l < 4 || !memory_access_is_direct(mr, false, attrs)) { + if (l < size || !memory_access_is_direct(mr, false, attrs)) { release_lock |=3D prepare_mmio_access(mr); =20 /* I/O case */ r =3D memory_region_dispatch_read(mr, addr1, &val, - MO_32 | devend_memop(endian), attr= s); + mop | devend_memop(endian), attrs); } else { /* RAM case */ - fuzz_dma_read_cb(addr, 4, mr); + fuzz_dma_read_cb(addr, size, mr); ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); switch (endian) { case DEVICE_LITTLE_ENDIAN: - val =3D ldl_le_p(ptr); + val =3D ldn_le_p(ptr, size); break; case DEVICE_BIG_ENDIAN: - val =3D ldl_be_p(ptr); + val =3D ldn_be_p(ptr, size); break; default: - val =3D ldl_p(ptr); + val =3D ldn_p(ptr, size); break; } r =3D MEMTX_OK; @@ -67,87 +71,30 @@ static inline uint32_t glue(address_space_ldl_internal,= SUFFIX)(ARG1_DECL, return val; } =20 +/* warning: addr must be aligned */ +static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, + hwaddr addr, MemTxAttrs attrs, MemTxResult *result, + enum device_endian endian) +{ + return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_32, addr, + attrs, result, endian); +} + /* warning: addr must be aligned */ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { - uint8_t *ptr; - uint64_t val; - MemoryRegion *mr; - hwaddr l =3D 8; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, false, attrs); - if (l < 8 || !memory_access_is_direct(mr, false, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - - /* I/O case */ - r =3D memory_region_dispatch_read(mr, addr1, &val, - MO_64 | devend_memop(endian), attr= s); - } else { - /* RAM case */ - fuzz_dma_read_cb(addr, 8, mr); - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: - val =3D ldq_le_p(ptr); - break; - case DEVICE_BIG_ENDIAN: - val =3D ldq_be_p(ptr); - break; - default: - val =3D ldq_p(ptr); - break; - } - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); - return val; + return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_64, addr, + attrs, result, endian); } =20 -uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result) +uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, + MemTxAttrs attrs, MemTxResult *re= sult) { - uint8_t *ptr; - uint64_t val; - MemoryRegion *mr; - hwaddr l =3D 1; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, false, attrs); - if (!memory_access_is_direct(mr, false, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - - /* I/O case */ - r =3D memory_region_dispatch_read(mr, addr1, &val, MO_8, attrs); - } else { - /* RAM case */ - fuzz_dma_read_cb(addr, 1, mr); - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - val =3D ldub_p(ptr); - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); - return val; + return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_8, addr, + attrs, result, + DEVICE_NATIVE_ENDIAN); } =20 /* warning: addr must be aligned */ @@ -155,37 +102,47 @@ static inline uint16_t glue(address_space_lduw_intern= al, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { + return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_16, addr, + attrs, result, endian); +} + +/* warning: addr must be aligned */ +static inline +void glue(address_space_stm_internal, SUFFIX)(ARG1_DECL, MemOp mop, + hwaddr addr, uint64_t val, + MemTxAttrs attrs, + MemTxResult *result, + enum device_endian endian) +{ + const unsigned size =3D memop_size(mop); uint8_t *ptr; - uint64_t val; MemoryRegion *mr; - hwaddr l =3D 2; + hwaddr l =3D size; hwaddr addr1; MemTxResult r; bool release_lock =3D false; =20 RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, false, attrs); - if (l < 2 || !memory_access_is_direct(mr, false, attrs)) { + mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); + if (l < size || !memory_access_is_direct(mr, true, attrs)) { release_lock |=3D prepare_mmio_access(mr); - - /* I/O case */ - r =3D memory_region_dispatch_read(mr, addr1, &val, - MO_16 | devend_memop(endian), attr= s); + r =3D memory_region_dispatch_write(mr, addr1, val, + mop | devend_memop(endian), attrs= ); } else { /* RAM case */ - fuzz_dma_read_cb(addr, 2, mr); ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); switch (endian) { case DEVICE_LITTLE_ENDIAN: - val =3D lduw_le_p(ptr); + stn_le_p(ptr, size, val); break; case DEVICE_BIG_ENDIAN: - val =3D lduw_be_p(ptr); + stn_be_p(ptr, size, val); break; default: - val =3D lduw_p(ptr); + stn_p(ptr, size, val); break; } + invalidate_and_set_dirty(mr, addr1, size); r =3D MEMTX_OK; } if (result) { @@ -195,7 +152,6 @@ static inline uint16_t glue(address_space_lduw_internal= , SUFFIX)(ARG1_DECL, bql_unlock(); } RCU_READ_UNLOCK(); - return val; } =20 /* warning: addr must be aligned */ @@ -203,74 +159,16 @@ static inline void glue(address_space_stl_internal, S= UFFIX)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { - uint8_t *ptr; - MemoryRegion *mr; - hwaddr l =3D 4; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); - if (l < 4 || !memory_access_is_direct(mr, true, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - r =3D memory_region_dispatch_write(mr, addr1, val, - MO_32 | devend_memop(endian), att= rs); - } else { - /* RAM case */ - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: - stl_le_p(ptr, val); - break; - case DEVICE_BIG_ENDIAN: - stl_be_p(ptr, val); - break; - default: - stl_p(ptr, val); - break; - } - invalidate_and_set_dirty(mr, addr1, 4); - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); + glue(address_space_stm_internal, SUFFIX)(ARG1, MO_32, addr, val, + attrs, result, endian); } =20 -void glue(address_space_stb, SUFFIX)(ARG1_DECL, - hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) +void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, + MemTxAttrs attrs, MemTxResult *result) { - uint8_t *ptr; - MemoryRegion *mr; - hwaddr l =3D 1; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); - if (!memory_access_is_direct(mr, true, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - r =3D memory_region_dispatch_write(mr, addr1, val, MO_8, attrs); - } else { - /* RAM case */ - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - stb_p(ptr, val); - invalidate_and_set_dirty(mr, addr1, 1); - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); + glue(address_space_stm_internal, SUFFIX)(ARG1, MO_8, addr, val, + attrs, result, + DEVICE_NATIVE_ENDIAN); } =20 /* warning: addr must be aligned */ @@ -278,86 +176,16 @@ static inline void glue(address_space_stw_internal, S= UFFIX)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { - uint8_t *ptr; - MemoryRegion *mr; - hwaddr l =3D 2; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); - if (l < 2 || !memory_access_is_direct(mr, true, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - r =3D memory_region_dispatch_write(mr, addr1, val, - MO_16 | devend_memop(endian), att= rs); - } else { - /* RAM case */ - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: - stw_le_p(ptr, val); - break; - case DEVICE_BIG_ENDIAN: - stw_be_p(ptr, val); - break; - default: - stw_p(ptr, val); - break; - } - invalidate_and_set_dirty(mr, addr1, 2); - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); + glue(address_space_stm_internal, SUFFIX)(ARG1, MO_16, addr, val, + attrs, result, endian); } =20 static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result, enum device_endian endian) { - uint8_t *ptr; - MemoryRegion *mr; - hwaddr l =3D 8; - hwaddr addr1; - MemTxResult r; - bool release_lock =3D false; - - RCU_READ_LOCK(); - mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); - if (l < 8 || !memory_access_is_direct(mr, true, attrs)) { - release_lock |=3D prepare_mmio_access(mr); - r =3D memory_region_dispatch_write(mr, addr1, val, - MO_64 | devend_memop(endian), att= rs); - } else { - /* RAM case */ - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: - stq_le_p(ptr, val); - break; - case DEVICE_BIG_ENDIAN: - stq_be_p(ptr, val); - break; - default: - stq_p(ptr, val); - break; - } - invalidate_and_set_dirty(mr, addr1, 8); - r =3D MEMTX_OK; - } - if (result) { - *result =3D r; - } - if (release_lock) { - bql_unlock(); - } - RCU_READ_UNLOCK(); + glue(address_space_stm_internal, SUFFIX)(ARG1, MO_64, addr, val, + attrs, result, endian); } =20 #define ENDIANNESS --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977588; cv=none; d=zohomail.com; s=zohoarc; b=KgtNstP9qKVqPckaOltJkh9RNpNueUJ8waVbI+xXQ3p/UZVA0kZqW8KBl0bHLGYL1voYrFJ5RaT3zu/dHyjsJpFAMXY+LcBAH08sANE2+WNlfwy6+2WuacgRl3ma1u3wZW8TcAvyCSCrqWUjU1BrNThy32NtPO95gghFyIokY3Y= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977588; 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=Uu0YsdTBGNvRl7GKd0ROR30NB9/cvkxUZHZEthSPaaE=; b=dtPSCkAOPEiYhZgHoZ+0GKe35i/gvuRzAT0hMueLPFPCS5i6GlpFH8GmlOvFaozFHXKWgZCQKKjNT3/O57k0Xa4qh9k042KqOE0ZH9PSkdHDo8L1Zx+YWNN6gbQn6Ssnxk0Lbd6bZZAEiPO5YVAb/QX0G+ngL6V/mGgIulbUzCI= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977588618347.59231417570356; Fri, 9 Jan 2026 08:53:08 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFiq-0006NQ-Mp; Fri, 09 Jan 2026 11:52:24 -0500 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 ) id 1veFio-00069Q-Ck for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:22 -0500 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFii-0007RA-SH for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:19 -0500 Received: by mail-wm1-x342.google.com with SMTP id 5b1f17b1804b1-47796a837c7so32811005e9.0 for ; Fri, 09 Jan 2026 08:52:16 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d8661caffsm65885005e9.5.2026.01.09.08.52.13 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:52:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977534; x=1768582334; 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=Uu0YsdTBGNvRl7GKd0ROR30NB9/cvkxUZHZEthSPaaE=; b=HY8aIdglAdROKidh+9nge5HKg6m27Uwru+1LW82BiSnNUkvGC9E3bRPgIg+g9Pp4qp 5mMa24iBVNUs9j0mmRfcp7elZBesGKJvokoid2mUwVRYAILjMitid7D3fjFclJUDR/Cy rYPEESTOHwgzVy7765E16trGXGwO1/uzK5CumNQuUREMUVmMhDCW/B8hL5JZzz4unnel lnaPh9AoJchuFb412fwj8P9PWZRLpQLhS30jsWqbHVsJu7JaIrmma2UdPuzXmK5R922Q yeSYqN/lvyAgdg36hSbo3bBAreyFjqhuM882Wi9AXvMd99fyTWWbdMYVJatRfk2s5rwb KYvg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977534; x=1768582334; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=Uu0YsdTBGNvRl7GKd0ROR30NB9/cvkxUZHZEthSPaaE=; b=YrYYidkcIUq66dGzSkRTHJhWTN1fcLl7ZEuuAYXbUphY9UM7ElF4XmK9g4JMpTKkFF MbLLluL7H3+oSVN8h5bTvDHEdtDNportEyfguf1Asz/gaC9NVqZQsa7oqigZid3cWn1k 2dDr+NRnGEZm+OaLX4CRXD9enXuNHbMQHZbCsQ0ByArrJc1NazbRULFtWOwotihM+Io7 /vC6ra65Phff/DoFP36d/TesPCeOLx8vXyjFwN+jCBiLEVAuwRk/8jZX8Z2b1ahHpstL 6rYTA8dnVdkmhlDvJ8o4OtNvx38B9XgPRoPGzLTrf6Qkboe0eGUyQ0nWJO52fk47bqUE sePw== X-Gm-Message-State: AOJu0YydvRBjIE5uYC9CF9U2kO9rhnRtR/WQNZtk4L7HjEXVVc0ygyRv qaSYc7YjTYkrQ9V9XZpO73YBz3fOfIUmZCZ1fcUxpnErEf86Uyr56+j6b05tfwQjSqnmw3h2Rs/ JZP/S0cz9SQ== X-Gm-Gg: AY/fxX4wNnP7mRaboCeVNmuoiCVOpNTazQYSN1WEYpWAoLhAyf2K/MUjfOsUZ8U1X9T ftUZegxcEWmR7BXgmlpC2ATGhs0gQRpYYyNNJ1Z6SpdbfYASxd14S1Gli9pLvxXqqY97bZX8FDT uQJOCRuPMP/fjxKWENdo+ey1mZ2ReIk0wSEh0d/IHvX90A2pq6O1yPJGpTBUUZLeK0rixRXOrvI AOoXURKZayirSWdGwclo/jsG0rJHvOgqGbf+7ecckze2/xdylrWJJ1tR2F1sjN4yr9CU2+HCelu iaRhQ0pPZoPgPZWmr3C/iVFTCRczu9MV+pireN7fXq1Gpqqw7naAn9c7HEJv9rqlcrsQZav50yC IWLzXcOS6idqYMXkMyWTm5rICSCqFOUfqMgcpdntWOq/H2ygT1yvlVre/HE+aernJGKFoC9r3YH 96B9+tjs1eT8jkOfbTWsOvITi94KOwLRg69frKJGmYzYPguqt4uCNs36PE5uH3 X-Google-Smtp-Source: AGHT+IGJwK2qdg+OmcbGVM6YIcdFiF32zqw/DmYUGxGrCNymIvhmBrVZYpdxuepCVRS4m9+UUJtJPQ== X-Received: by 2002:a05:600c:444c:b0:477:a977:b8c5 with SMTP id 5b1f17b1804b1-47d84b5b51amr130586305e9.31.1767977534488; Fri, 09 Jan 2026 08:52:14 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 11/22] system/memory: Pass device_endian argument as MemOp bit Date: Fri, 9 Jan 2026 17:50:47 +0100 Message-ID: <20260109165058.59144-12-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::342; envelope-from=philmd@linaro.org; helo=mail-wm1-x342.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977589764158500 Use the MemOp argument to hold both the access size and its endianness. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- system/memory_ldst.c.inc | 86 ++++++++++++--------------------- system/memory_ldst_endian.c.inc | 26 +++++----- 2 files changed, 44 insertions(+), 68 deletions(-) diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index 39b3930bf50..5c8299e0cdc 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -24,8 +24,7 @@ static inline uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_DECL, MemOp mop, hwaddr addr, MemTxAttrs attrs, - MemTxResult *result, - enum device_endian endia= n) + MemTxResult *result) { const unsigned size =3D memop_size(mop); uint8_t *ptr; @@ -42,22 +41,15 @@ uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_= DECL, MemOp mop, release_lock |=3D prepare_mmio_access(mr); =20 /* I/O case */ - r =3D memory_region_dispatch_read(mr, addr1, &val, - mop | devend_memop(endian), attrs); + r =3D memory_region_dispatch_read(mr, addr1, &val, mop, attrs); } else { /* RAM case */ fuzz_dma_read_cb(addr, size, mr); ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: + if ((mop & MO_BSWAP) =3D=3D MO_LE) { val =3D ldn_le_p(ptr, size); - break; - case DEVICE_BIG_ENDIAN: + } else { val =3D ldn_be_p(ptr, size); - break; - default: - val =3D ldn_p(ptr, size); - break; } r =3D MEMTX_OK; } @@ -73,37 +65,33 @@ uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_= DECL, MemOp mop, =20 /* warning: addr must be aligned */ static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result, - enum device_endian endian) + MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_32, addr, - attrs, result, endian); + return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_32, add= r, + attrs, result); } =20 /* warning: addr must be aligned */ static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result, - enum device_endian endian) + MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_64, addr, - attrs, result, endian); + return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_64, add= r, + attrs, result); } =20 uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *re= sult) { return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_8, addr, - attrs, result, - DEVICE_NATIVE_ENDIAN); + attrs, result); } =20 /* warning: addr must be aligned */ static inline uint16_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, MemTxAttrs attrs, MemTxResult *result, - enum device_endian endian) + MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return glue(address_space_ldm_internal, SUFFIX)(ARG1, MO_16, addr, - attrs, result, endian); + return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_16, add= r, + attrs, result); } =20 /* warning: addr must be aligned */ @@ -111,8 +99,7 @@ static inline void glue(address_space_stm_internal, SUFFIX)(ARG1_DECL, MemOp mop, hwaddr addr, uint64_t val, MemTxAttrs attrs, - MemTxResult *result, - enum device_endian endian) + MemTxResult *result) { const unsigned size =3D memop_size(mop); uint8_t *ptr; @@ -126,21 +113,14 @@ void glue(address_space_stm_internal, SUFFIX)(ARG1_DE= CL, MemOp mop, mr =3D TRANSLATE(addr, &addr1, &l, true, attrs); if (l < size || !memory_access_is_direct(mr, true, attrs)) { release_lock |=3D prepare_mmio_access(mr); - r =3D memory_region_dispatch_write(mr, addr1, val, - mop | devend_memop(endian), attrs= ); + r =3D memory_region_dispatch_write(mr, addr1, val, mop, attrs); } else { /* RAM case */ ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - switch (endian) { - case DEVICE_LITTLE_ENDIAN: + if ((mop & MO_BSWAP) =3D=3D MO_LE) { stn_le_p(ptr, size, val); - break; - case DEVICE_BIG_ENDIAN: + } else { stn_be_p(ptr, size, val); - break; - default: - stn_p(ptr, size, val); - break; } invalidate_and_set_dirty(mr, addr1, size); r =3D MEMTX_OK; @@ -156,48 +136,44 @@ void glue(address_space_stm_internal, SUFFIX)(ARG1_DE= CL, MemOp mop, =20 /* warning: addr must be aligned */ static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, uint32_t val, MemTxAttrs attrs, - MemTxResult *result, enum device_endian endian) + MemOp mop, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *r= esult) { - glue(address_space_stm_internal, SUFFIX)(ARG1, MO_32, addr, val, - attrs, result, endian); + glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_32, addr, val, + attrs, result); } =20 void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) { glue(address_space_stm_internal, SUFFIX)(ARG1, MO_8, addr, val, - attrs, result, - DEVICE_NATIVE_ENDIAN); + attrs, result); } =20 /* warning: addr must be aligned */ static inline void glue(address_space_stw_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, uint16_t val, MemTxAttrs attrs, - MemTxResult *result, enum device_endian endian) + MemOp mop, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *r= esult) { - glue(address_space_stm_internal, SUFFIX)(ARG1, MO_16, addr, val, - attrs, result, endian); + glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_16, addr, val, + attrs, result); } =20 static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, - hwaddr addr, uint64_t val, MemTxAttrs attrs, - MemTxResult *result, enum device_endian endian) + MemOp mop, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *r= esult) { - glue(address_space_stm_internal, SUFFIX)(ARG1, MO_64, addr, val, - attrs, result, endian); + glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_64, addr, val, + attrs, result); } =20 #define ENDIANNESS -#define DEVICE_ENDIANNESS DEVICE_NATIVE_ENDIAN +#define MO_ENDIAN (target_big_endian() ? MO_BE : MO_LE) #include "memory_ldst_endian.c.inc" =20 #define ENDIANNESS _le -#define DEVICE_ENDIANNESS DEVICE_LITTLE_ENDIAN +#define MO_ENDIAN MO_LE #include "memory_ldst_endian.c.inc" =20 #define ENDIANNESS _be -#define DEVICE_ENDIANNESS DEVICE_BIG_ENDIAN +#define MO_ENDIAN MO_BE #include "memory_ldst_endian.c.inc" =20 #undef ARG1_DECL diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc index 791d041b15d..9cf36017135 100644 --- a/system/memory_ldst_endian.c.inc +++ b/system/memory_ldst_endian.c.inc @@ -22,43 +22,43 @@ uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(uw)(ARG1, addr, attrs, result, - DEVICE_ENDIANNESS); + return ADDRESS_SPACE_LD_INTERNAL(uw)(ARG1, MO_ENDIAN, + addr, attrs, result); } =20 uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(l)(ARG1, addr, attrs, result, - DEVICE_ENDIANNESS); + return ADDRESS_SPACE_LD_INTERNAL(l)(ARG1, MO_ENDIAN, + addr, attrs, result); } =20 uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(q)(ARG1, addr, attrs, result, - DEVICE_ENDIANNESS); + return ADDRESS_SPACE_LD_INTERNAL(q)(ARG1, MO_ENDIAN, + addr, attrs, result); } =20 void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(w)(ARG1, addr, val, attrs, result, - DEVICE_ENDIANNESS); + ADDRESS_SPACE_ST_INTERNAL(w)(ARG1, MO_ENDIAN, + addr, val, attrs, result); } =20 void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(l)(ARG1, addr, val, attrs, result, - DEVICE_ENDIANNESS); + ADDRESS_SPACE_ST_INTERNAL(l)(ARG1, MO_ENDIAN, + addr, val, attrs, result); } =20 void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(q)(ARG1, addr, val, attrs, result, - DEVICE_ENDIANNESS); + ADDRESS_SPACE_ST_INTERNAL(q)(ARG1, MO_ENDIAN, + addr, val, attrs, result); } =20 #undef ADDRESS_SPACE_LD @@ -67,4 +67,4 @@ void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t= val, #undef ADDRESS_SPACE_ST_INTERNAL =20 #undef ENDIANNESS -#undef DEVICE_ENDIANNESS +#undef MO_ENDIAN --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977684; cv=none; d=zohomail.com; s=zohoarc; b=lsWTR8n+6+t/2/NNkLxyAbw/NtkeMIc3u43PpqzPG5iO0s1MH7iG9JwRSv0LoKKF+ZaE4RxuAN3r9/GngfI8lbLDZWEdKd7+JHr5F+TDABIkemdAJEm905RE1yuy18deGzKJmf+754yvEQLpwe8l3WJLup6dN5jcHH2EAA7quno= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977684; 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=BNqms3OkOfHCvuzIyaj2nWel2NPNjoAPXnkowRmdl3I=; b=T1MG2wKNLtodr3vER70ho+NUNyt7hdFsU/LQdTHbmiNdRWddCCvVdV4Z+lISS/3A7ByjB7aZPp4ETGbhYul1aKdF8ffjm15eSq/Y3lmSNCdwZZd2oQKsWV+fdLqjp9w+gzw1E7OAth0HWKEPAMU0ITY4vxT1PoCvr+0nbzmOx8A= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977684867812.8874190289732; Fri, 9 Jan 2026 08:54:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFit-0006gH-I8; Fri, 09 Jan 2026 11:52:27 -0500 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 ) id 1veFir-0006Vg-Gh for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:25 -0500 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFip-0007SB-El for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:25 -0500 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-42fb6ce71c7so3605526f8f.1 for ; Fri, 09 Jan 2026 08:52:22 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd5ee870sm23394183f8f.36.2026.01.09.08.52.20 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:52:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977541; x=1768582341; 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=BNqms3OkOfHCvuzIyaj2nWel2NPNjoAPXnkowRmdl3I=; b=xphBOQyu2x8ULRFvI9IVM0wDadfRvpUmmLCNHZVu4ru27DN7fP3bB15IcmfYtx2A6b whNUbV4g13WAO4GPEU3S39JRfvIA44ERIQt3n9LgNg6SWJC2OaaQA2LqTA49tRSynXQy 9Hg0H/w1YhKnN2NoPEtQFA6qY+Cv3gqYAPljBrwCICiCEprl5rF+sYh9kFD64EW5m6mS /Mc6kiVRA8BvnSoankWvOUg2yhtRx2I1jpTluLQvhrS7y8VKus+rgoteNYGJCgshojOA D7bySnOme+7UgaKTZcGwOkT4CVOpcnA25wCgMEYCl16ZJ2k8mYqkmwgTT/6vsQ9uxP+D 6f8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977541; x=1768582341; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BNqms3OkOfHCvuzIyaj2nWel2NPNjoAPXnkowRmdl3I=; b=jB9sRVp3MqakXwV5/KvQq1/3hk+g27kAXmoJb6ebfjBhif07WgCe2Sm8jClJlnBIU7 rM38pLc5uQtQGDD4VqT8F0tg/Dp3ajnDyo9LlqmtnUQioMD/5oAli9yjyFcAb5fa4Oq0 kwwIWIFms7arCe28ahCbtYQmo3mTCtiIrydqwpfM86lRcmFJ+cfeIpK6NwFjo6A64u6R L3Dxi0PcAQzf5rp9cUJ2WpcFu6EHsfHt8B/ga/praumpt4xGVtkfLvj5gx2Q47cxisgV gOXeEUpnrRICC0ma6zcYkomm8BRsZCqRktygBvO0p7MElwofn7sy68/KMhoAfDWduSwS uoLw== X-Gm-Message-State: AOJu0YzFNbC/OOyYkEEbbyW1h1hmrblCnzARdVdLwZPf9oz8bU5usYcb 2Cnrv14AK2bvyK43xkpOo937TdxAHaAeAyLYRboH2RMwhPcUXyRmV2QSeN0sWKNIXjFFjJobudx C3+RIeF8= X-Gm-Gg: AY/fxX6Y5Cg1wF9aKwS+OzdjvJ3OTa60YpQrY/ibV8q1MixdWaBoLkTNIraUKAxfmf2 hnK3sE7eQr0D6je0EB7rFFRzJinpqS7WcKQQwb77lfqeE302dGrI72DMK3zOyHHRBfL11g0JAb1 KtEn1fblWjSVuo6kEvs/PKgEUXekSrcWLhd8CzZZ3ZnccoKE9y6oJvfBC8JFImgRmFMNemxJmfE J2cPuxLxJomKG7DaI3IJ+ldmja7xqzK3xMekOlBwftgQUqP189Ynd51o7vo3dCz+eftsnFCiXD+ GPDBs3eUqLcuYjZsDS7RrseCQQsn/If6nsO8OWsCCfER+8yKeKzEip14RpWMEsEL7z/xIfKgbY4 IX2lp+v8ZjnUHE2h3/9ojJpzmXDbXQ7yzf3xrcIINXhuwm3oPNBBb6Fj29y0YEyjiBYJNhgi7uW XGLfC6ds3C+oNLROXNNVdyarmDgFXf8uNd+btWbC+R9h6bUTSGCSgzBsynrzIje0ofwloe28E= X-Google-Smtp-Source: AGHT+IF5l1l85KPDwKS9fveklmIlUVURI0ZT8kZUF/Nlp/cZPzRxsUohv/LTHh7tIOOPwOeS0adNMQ== X-Received: by 2002:a05:6000:26d1:b0:431:266:d135 with SMTP id ffacd0b85a97d-432c37d364dmr13924891f8f.52.1767977541106; Fri, 09 Jan 2026 08:52:21 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 12/22] system/memory: Use ldm_p() and stm_p() helpers Date: Fri, 9 Jan 2026 17:50:48 +0100 Message-ID: <20260109165058.59144-13-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::433; envelope-from=philmd@linaro.org; helo=mail-wr1-x433.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977686064158500 address_space_{ld,st}m_internal() take a MemOp argument so can directly use the {ld,st}m_p() helpers. Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- system/memory_ldst.c.inc | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index 5c8299e0cdc..d51c5feddf7 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -27,7 +27,6 @@ uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_DE= CL, MemOp mop, MemTxResult *result) { const unsigned size =3D memop_size(mop); - uint8_t *ptr; uint64_t val; MemoryRegion *mr; hwaddr l =3D size; @@ -45,12 +44,7 @@ uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_D= ECL, MemOp mop, } else { /* RAM case */ fuzz_dma_read_cb(addr, size, mr); - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - if ((mop & MO_BSWAP) =3D=3D MO_LE) { - val =3D ldn_le_p(ptr, size); - } else { - val =3D ldn_be_p(ptr, size); - } + val =3D ldm_p(qemu_map_ram_ptr(mr->ram_block, addr1), mop); r =3D MEMTX_OK; } if (result) { @@ -102,7 +96,6 @@ void glue(address_space_stm_internal, SUFFIX)(ARG1_DECL,= MemOp mop, MemTxResult *result) { const unsigned size =3D memop_size(mop); - uint8_t *ptr; MemoryRegion *mr; hwaddr l =3D size; hwaddr addr1; @@ -116,12 +109,7 @@ void glue(address_space_stm_internal, SUFFIX)(ARG1_DEC= L, MemOp mop, r =3D memory_region_dispatch_write(mr, addr1, val, mop, attrs); } else { /* RAM case */ - ptr =3D qemu_map_ram_ptr(mr->ram_block, addr1); - if ((mop & MO_BSWAP) =3D=3D MO_LE) { - stn_le_p(ptr, size, val); - } else { - stn_be_p(ptr, size, val); - } + stm_p(qemu_map_ram_ptr(mr->ram_block, addr1), mop, val); invalidate_and_set_dirty(mr, addr1, size); r =3D MEMTX_OK; } --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977579; cv=none; d=zohomail.com; s=zohoarc; b=Rc2knQAFyILJpF4ytRDg8j8bC7BBXhRUzO2i31scxwm2y+lk6p5g9KvIY3UMYsxvjy/PCYI4RQYwRdlqBX253OJ0XWcMCix/N0z8OebN1gq6z0PM++y573eDDU15kAVMs1kEVYSt7VWX4GcE0sFZ2ce9TuXdi8fx2IgTcm9KhME= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977579; 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=y4SqeZxl5HqhEizpE5MaSMKz3/wkRaflVH0M8Y28zmg=; b=dTN+K3UCxe+mfuLtOSeiOwyDecKf/5z6cnni5Bqmm+fnUdPgKGrNswquncJ3Z85S676Q3WqXeVGHSECqfiJxTYheXU2+IXxKuCF9UuOpjuet2PJXQ4tknv8fsiwrF7/udqkQ6OHsF09Rwj6nxsRcXYlWT6w0tdzsSP9XhkKt/6k= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977579486758.9384126509424; Fri, 9 Jan 2026 08:52:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFj7-0007AW-Lh; Fri, 09 Jan 2026 11:52:43 -0500 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 ) id 1veFix-0006vu-Tf for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:33 -0500 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 ) id 1veFiv-0007VT-VR for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:31 -0500 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-4779adb38d3so31523895e9.2 for ; Fri, 09 Jan 2026 08:52:29 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd0dacdcsm23311646f8f.1.2026.01.09.08.52.26 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:52:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977548; x=1768582348; 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=y4SqeZxl5HqhEizpE5MaSMKz3/wkRaflVH0M8Y28zmg=; b=uKqqUjTjcpjPhML/lUAb2oJSKjcpVT5D6+Sae82L4J3AQWdNvs1T13BzBajY2UvItC kcPz0Nu9urkgPTuIuICTEumS+RlvNrVpchL1/CYADyWNewKphm+DwIgyI5JvgA0HNmHQ Ub3DEkwkT6GSyXgHuYaEYcApPIpPxPcWUguNJaMrVXlzQtfAUN+xqH6Gy9t7jtFU4mLJ hA5EnQd+yzxnPJnCueSNN5gGOWj/HzMLw/zngeiOwKjZtNBlNo2iIQioscBU+myyUNw2 4rpWSxPR1lrN5Xpst+v6G45kFfA4DzR5B2spVAKWnGs2BBWWHpmgzcybNKZbv4r9IPn8 7QJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977548; x=1768582348; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=y4SqeZxl5HqhEizpE5MaSMKz3/wkRaflVH0M8Y28zmg=; b=KlLVSSn1AxA8+0HZYeVbzO8swIYz9nPo8+dKjEMwSW3XteBfwq77Jd6uqI9mCoR6Q6 wmKd1b3TZMoGYl9kcHjsluXfCBA51gHwouUs80MnQPsmiU81y/YP2Xqs3wG3PljVftXk yDAg+c7gZsL2XhlUSrWtuVyosoLqPJlYtc/0VRITq4KKVHC+70aWv4W4k/9OXKE+aDLS 4sh3QU6VgcR+m7+rkcHyoKwPX+UITWcWfOvnlP1qgHSBNj5mOlXuXamggEbAM9kc4RDx SrioYtL3M6Ed1l1wbhZ9GZGsSUC8xmdNgLjfGjQvB3h89x/2pYM1WzloFgWKmQS9qCTJ 7Ayg== X-Gm-Message-State: AOJu0YzB3CVanq+Ey/x7dph11/77dWk2DmvCZAIBkqXF5yO06h232YAr 0VaAcTEzslbEvGveXkJabJ5hHSZ4upjNhMsNgooS6mcoSWN/XpReTPv8y8YYNMLoN7Vmb143eXe ds06ZLpM= X-Gm-Gg: AY/fxX54J1YzcOCoA0DM/UF5wuEgO/P79274SPh/0YPw0n8afif0A9O4qrZRR9X1mo9 8RKxHVga5am6OBgJs3Z4ft5E5sHfZur8MDBBhsKc1Wwn6y3pAl8CiW5lutIad2z6m20LgCYlKRe 7XVQA1zEBKDXrsNc1EZXfKjzUNSPRdQhlyYxo/GYnAzf9y4/VnnaUHO/u4aPPJWxVZ93ifg1CBB cCNvO5qmMaCSjLGT/Vht2AuoGG6qDuQ6mkjDNRP71HNZ9s7tQ+bHtNe4iqVNNuvSTWQ69eu5QkM dFjM+pF+8kv5+WnsB1K9UTLpYNCnzacx57OWMkH6LxbWvp51YkuMsaIGIiyK2IEH/CPkPTG4EUk PyGoArgMIk9d+nOhC+9HQw5tJBkiWv5txPBCtiNewvOV91/5+qweEj+q3Bkk5QK9ll9MMxGAE6w TqWkzU7MjPM1UDebo6YNxXrRCZb2xhxeg+6OQ40ToUracw9E2ZmjVkOERjuRNB X-Google-Smtp-Source: AGHT+IHIlRVLMKFrRR3rQWuv7g5WDYLiKkuKYDcmCYuce50xfn2cnHgfH6nQGC76EX+toxyMyRMfKA== X-Received: by 2002:a5d:5c8a:0:b0:431:7a0:dbc2 with SMTP id ffacd0b85a97d-432c379dc0dmr12901166f8f.31.1767977548040; Fri, 09 Jan 2026 08:52:28 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 13/22] system/memory: Directly call address_space_ldst[M]_internal() helper Date: Fri, 9 Jan 2026 17:50:49 +0100 Message-ID: <20260109165058.59144-14-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977581590158500 Inline internal address_space_ld/st[L,D,Q] helpers, directly calling address_space_ldst[M]_internal(). Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- system/memory_ldst.c.inc | 47 --------------------------------- system/memory_ldst_endian.c.inc | 12 ++++----- 2 files changed, 6 insertions(+), 53 deletions(-) diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index d51c5feddf7..ebb441f1a66 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -57,22 +57,6 @@ uint64_t glue(address_space_ldm_internal, SUFFIX)(ARG1_D= ECL, MemOp mop, return val; } =20 -/* warning: addr must be aligned */ -static inline uint32_t glue(address_space_ldl_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_32, add= r, - attrs, result); -} - -/* warning: addr must be aligned */ -static inline uint64_t glue(address_space_ldq_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_64, add= r, - attrs, result); -} - uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *re= sult) { @@ -80,14 +64,6 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, hwad= dr addr, attrs, result); } =20 -/* warning: addr must be aligned */ -static inline uint16_t glue(address_space_lduw_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) -{ - return glue(address_space_ldm_internal, SUFFIX)(ARG1, mop | MO_16, add= r, - attrs, result); -} - /* warning: addr must be aligned */ static inline void glue(address_space_stm_internal, SUFFIX)(ARG1_DECL, MemOp mop, @@ -122,14 +98,6 @@ void glue(address_space_stm_internal, SUFFIX)(ARG1_DECL= , MemOp mop, RCU_READ_UNLOCK(); } =20 -/* warning: addr must be aligned */ -static inline void glue(address_space_stl_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *r= esult) -{ - glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_32, addr, val, - attrs, result); -} - void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result) { @@ -137,21 +105,6 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr= addr, uint8_t val, attrs, result); } =20 -/* warning: addr must be aligned */ -static inline void glue(address_space_stw_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *r= esult) -{ - glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_16, addr, val, - attrs, result); -} - -static inline void glue(address_space_stq_internal, SUFFIX)(ARG1_DECL, - MemOp mop, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *r= esult) -{ - glue(address_space_stm_internal, SUFFIX)(ARG1, mop | MO_64, addr, val, - attrs, result); -} - #define ENDIANNESS #define MO_ENDIAN (target_big_endian() ? MO_BE : MO_LE) #include "memory_ldst_endian.c.inc" diff --git a/system/memory_ldst_endian.c.inc b/system/memory_ldst_endian.c.= inc index 9cf36017135..fb933de11f8 100644 --- a/system/memory_ldst_endian.c.inc +++ b/system/memory_ldst_endian.c.inc @@ -22,42 +22,42 @@ uint16_t ADDRESS_SPACE_LD(uw)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(uw)(ARG1, MO_ENDIAN, + return ADDRESS_SPACE_LD_INTERNAL(m)(ARG1, MO_ENDIAN | MO_16, addr, attrs, result); } =20 uint32_t ADDRESS_SPACE_LD(l)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(l)(ARG1, MO_ENDIAN, + return ADDRESS_SPACE_LD_INTERNAL(m)(ARG1, MO_ENDIAN | MO_32, addr, attrs, result); } =20 uint64_t ADDRESS_SPACE_LD(q)(ARG1_DECL, hwaddr addr, MemTxAttrs attrs, MemTxResult *result) { - return ADDRESS_SPACE_LD_INTERNAL(q)(ARG1, MO_ENDIAN, + return ADDRESS_SPACE_LD_INTERNAL(m)(ARG1, MO_ENDIAN | MO_64, addr, attrs, result); } =20 void ADDRESS_SPACE_ST(w)(ARG1_DECL, hwaddr addr, uint16_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(w)(ARG1, MO_ENDIAN, + ADDRESS_SPACE_ST_INTERNAL(m)(ARG1, MO_ENDIAN | MO_16, addr, val, attrs, result); } =20 void ADDRESS_SPACE_ST(l)(ARG1_DECL, hwaddr addr, uint32_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(l)(ARG1, MO_ENDIAN, + ADDRESS_SPACE_ST_INTERNAL(m)(ARG1, MO_ENDIAN | MO_32, addr, val, attrs, result); } =20 void ADDRESS_SPACE_ST(q)(ARG1_DECL, hwaddr addr, uint64_t val, MemTxAttrs attrs, MemTxResult *result) { - ADDRESS_SPACE_ST_INTERNAL(q)(ARG1, MO_ENDIAN, + ADDRESS_SPACE_ST_INTERNAL(m)(ARG1, MO_ENDIAN | MO_64, addr, val, attrs, result); } =20 --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977618; cv=none; d=zohomail.com; s=zohoarc; b=Ayo23Ys5eCgY5sGJoIozG1achRhAHDRqaxLsBfNSf7F65rxzu3wa8hutB913v5ZYuj33vwybyhyiNjIESiB7BEKtyCaa1xO48B0rjGsZKhJDe5OSp4zJXTvRp5//a02gyNKwuTbuO15I8vWLFjq8HvQKkkOmJaqxLQ/c5NpRY4s= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977618; 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=X3ZoIJR3OjEuiKDmyBptqH1tgWzQzhR33On1g0jSsHA=; b=Bt3mAotUy/8jGdBWAiqWFR3akOgQJwoVdSOunPhIzDAiduRbGImDXqyorNBCoKdadMpyftrXfB3akJBTC04agFMmqRRkBfXeJ0WkX/mfaMw6kOjq3X3m55cSixnl5JmDLSwgcv2V0SqavLtZePtaUBanbrxzzLQZ6Q0I/IM+hxc= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977618229215.43890440786276; Fri, 9 Jan 2026 08:53:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFjN-0007P8-2P; Fri, 09 Jan 2026 11:52:57 -0500 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 ) id 1veFj5-00077m-38 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:39 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFj3-0007WM-Ea for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:38 -0500 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-4779a4fc95aso16971595e9.1 for ; Fri, 09 Jan 2026 08:52:36 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd0dad8bsm23857372f8f.8.2026.01.09.08.52.33 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:52:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977555; x=1768582355; 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=X3ZoIJR3OjEuiKDmyBptqH1tgWzQzhR33On1g0jSsHA=; b=J+yc7CK98LKyZIwAT5hvzX/3RlugVlgSQs9pxzZmGXYATcal7NBj5e1btGfeC3HgIe 1oyhSixVgOId6fmpluR6IvUr6QD2rY8ZS9DlygzYCmpWVJrhAT9/6uXVMVMAza/WRJMg 4JSkgQKl65pWburmbaUi+LTct8wBYz0/iyQFYN9eahX9vm+N66lExY2JCwsl//gQAd/v 9TeTl+TxLWMyghlFhL9sA7pBtp+SO0Tfiv99ebT21dTYsmoQ2xNOrJXDgqciJXrsc/aQ XDIvrLP0xivbI627uM5PaEn+z1ByFVO5izjwDujOmhQntQsBAZq9dYaHO7nMQQiTvfsc a7xQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977555; x=1768582355; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=X3ZoIJR3OjEuiKDmyBptqH1tgWzQzhR33On1g0jSsHA=; b=FZGh2Q/ZyzlFevFmUI/0NUy+69dv/zQsvUd8x6jmQnoR+6cvy6IAAIe+oahsaBXFny 1efD/hp+U4knUE1nnxdnUhzl8/gV22LOvUUdj1OVVf054qqHQJf3G+DmrtIa2avqopAG 4xCpxFV7VaeUuhNCZo2/cf9rNsZUCuM9nEv4FOCQqyYvy9AIKQo+4egG9envwwU9zhmN U8a8sq8Qv1D6rBlwZY3XkxpyNetGhzAD5OU4YaepobxUg11PX8RueMKLGg4K/LI2GKWN TCgD9v4HtD2unrfuo5HYpDHILCQZ6BcIZn0AW87kgs96QFQHzno3qSuf0Y/segs0Tn2C Q6TA== X-Gm-Message-State: AOJu0YxqtaopXQAmS4//TRsXFjTLUevhPS1uPJbi8anRBqRepr+6HHtZ P+fcSCTkBOAJFiJbXB8G36s8dY1LuufY3X/842X/dEg1pWNkWLX0tn5K5QqNGW1Kgvr54tXhWBJ EbqtkES0= X-Gm-Gg: AY/fxX5ljn/RtKeWhMDIBxdv2jiHLm3Vsfh7xIDDbBm/Dnkv0SEsyTiV0h6stt1NlAJ jv5cqqFJuSluTDnK7wBRbHMIwsnFq+mSQNjhm5KGXekY6uTk3UgrbzbH74G5GuvxBdVSuZlEiM7 vaI4tUeo9aEX/DinzXAE4Q9bKKdHsaX8azHTh0HHyF4LZcM4OZUJ1X7BeQkkCCNa5zPIe44TK0r A5uEzPMAZ6EQlxgjGWD4e/y2bW3aKxGijA1iU2j4qxFytokwRy81hg/TSI+VzNw3I/XvRhcAJXO YF2YunsYANvx/rU2TfjVGYZWe1NmzsLvyFg0WHH9wePd9O7C4zcmdoeb2jT9BYupZ/wfuuvTkiA 5tVgFIerpbrovnmITgcUhO1CdyhQZo6X86mSW0yHsVUQVQ01adWzbi5f0Cdtvm3mw9lywnm8N2b d71yAZKsbeMrWpOLuV+ZePAlKuyuKGSKHxhb/wCZXizgDj6Lv1w0r2z+wUabz7 X-Google-Smtp-Source: AGHT+IEFPdZfYLbvp8BxfnXBIN/rVJbV33qMFqHbDfHf5571rrnmbuMC1WbPpkLq0ZBl47+ugbKAgA== X-Received: by 2002:a05:600c:6308:b0:479:1348:c63e with SMTP id 5b1f17b1804b1-47d8486d60dmr94051855e9.9.1767977554726; Fri, 09 Jan 2026 08:52:34 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 14/22] system: Allow restricting the legacy ld/st_phys() 'native-endian' API Date: Fri, 9 Jan 2026 17:50:50 +0100 Message-ID: <20260109165058.59144-15-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::331; envelope-from=philmd@linaro.org; helo=mail-wm1-x331.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977619780158500 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Since all targets can check the definition, do not poison it. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Manos Pitsidianakis Reviewed-by: Richard Henderson --- include/system/memory_ldst_phys.h.inc | 2 ++ scripts/make-config-poison.sh | 1 + 2 files changed, 3 insertions(+) diff --git a/include/system/memory_ldst_phys.h.inc b/include/system/memory_= ldst_phys.h.inc index f4c91dc7a91..66bbd3061c2 100644 --- a/include/system/memory_ldst_phys.h.inc +++ b/include/system/memory_ldst_phys.h.inc @@ -31,8 +31,10 @@ static inline void glue(stb_phys, SUFFIX)(ARG1_DECL, hwa= ddr addr, uint8_t val) MEMTXATTRS_UNSPECIFIED, NULL); } =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #include "system/memory_ldst_phys_endian.h.inc" +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ =20 #define ENDIANNESS _le #include "system/memory_ldst_phys_endian.h.inc" diff --git a/scripts/make-config-poison.sh b/scripts/make-config-poison.sh index 937357b3531..b4d61e8bc9e 100755 --- a/scripts/make-config-poison.sh +++ b/scripts/make-config-poison.sh @@ -11,6 +11,7 @@ exec sed -n \ -e '/CONFIG_USER_ONLY/d' \ -e '/CONFIG_SOFTMMU/d' \ -e '/TARGET_NOT_USING_LEGACY_LDST_PHYS_API/d' \ + -e '/TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API/d' \ -e '/^#define / {' \ -e 's///' \ -e 's/ .*//' \ --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977603; cv=none; d=zohomail.com; s=zohoarc; b=M55tX64eLWQP3HC3u1N96d53ozrSCxP/82uAkHZGFfyA58q1I93BflPswribkoEmLhvhdBX2gnQB7Mjy+XLnOORWdXMEgox4FYGuA5KwsnFwV3LjIKYS5GVYhNC4rbCqN/TQ+3+mD32TXI8RH6x3n1MYNmtddllVF+R/EQ9snDo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977603; 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=m7nwKohwrUhcs5GBd6WgjNcDHff3KfVrztRvD4pmA+o=; b=YJd8C1R8GIzjdv74GIi8Ucm3xXZK+KPJq0QzuSPjgo78aE0YVQtKnFCSpNIXKRLsLWNJUXmiXcOxoJzDKtZtCsixy2b3Hb8/qzGwzdmR9jh9D7TuWNwJQKKIEUiXXhEmhDbvEsVv8d/XY4thFKg0fuIbmFvNtnXBzAAHQYjw6TY= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977603570168.1448465980451; Fri, 9 Jan 2026 08:53:23 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFjO-0007Tm-V1; Fri, 09 Jan 2026 11:52:59 -0500 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 ) id 1veFjB-0007Hj-QC for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:47 -0500 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 ) id 1veFj9-0007Wy-B6 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:44 -0500 Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-42fb6ce71c7so3605775f8f.1 for ; Fri, 09 Jan 2026 08:52:42 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd5ee24esm23350809f8f.33.2026.01.09.08.52.40 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:52:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977561; x=1768582361; 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=m7nwKohwrUhcs5GBd6WgjNcDHff3KfVrztRvD4pmA+o=; b=tkh6xkk7S6TnympJnyMrIxLqJYxf0/6ZQOKF6sALBYtHPnenizFAWgrv8bA1LNK6Zw 7OKyvhE9U8hrV4TZtbjlOuLGMJ5JXQz3v+cxxjnWLHqX75hxA5ZIsLR25rkYJ4KY5Ogo /eoLkQLFsA1vHynCo4CTgPm4NRRRTuTadGC9rlnIPjs357wp9UnPKMHkTTkM7rWvWB6v hrwBxLxuO9fkiQXAP4Nq2uIt3+Z8eZ2qbKNuM9QP9BHqPbCsYMmKVW8NfquLMl1Koirl gu8lDY9lAxiK0yHRVhTcYkEHbOUYdfL1KIYR2EAeaK3sH0ODIv2/HLxJN+z1/x5hN8ja IP7Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977561; x=1768582361; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=m7nwKohwrUhcs5GBd6WgjNcDHff3KfVrztRvD4pmA+o=; b=kiC5gWac59WaQwp0gyMKPW8Ie0lTJRQZrIyJIOMuS9SJZY7aheGG8j//thCWAJEoSr 9qkLPJ5hD4NHS7QkYPFa2WV/3E4jzFbCA9lh6BXIjh6ea/gAB/xcDrecO4bpSF9HxGxA JB0DA0xpfi6sakKwl54aSGLMdbGNMFLWaiLLhdR5r9n4iiNCS5g2OBzHw4aa5k9neJzj rZxXapO56hcE7ad+ntFCQSqJ/oll0iuoGSOENARqsm4mGG6OtvYvmDTGYJdrIXmH115a zarWElPOjgZzAKSEXMxb7/Yn5aa3dvOQdwfszjiIWnnzztF+kB8h7bWJq2pqaEpfbBVZ +P2A== X-Gm-Message-State: AOJu0YzT7ZvLyRYWOCJKnVFgILxUmw9AkUfrGhrA+xXAfrXiQdruepTf 0op//b+jgOgdNWmvfivylHDxWNEDQzb9ThUtbWIwiN2XtXWb4d5qWrlrfpnmGWa1cwHT6hxBriJ nPSXrmfQ= X-Gm-Gg: AY/fxX7+RjuBSxWg3OhuaGZoDOhgWhNjSgZQ5Fk78caIsdh77To7n9c6NqV64mZ4liH v8lYhMi/UziYmrmR75w63o2LjLKqm8dso+CvXWXMpBn/k1jmTkYzIrpSsibt0RcaxcXBBB8UOsA qBDO5ehSvh5b4se0Gjm8IkSHtVrks3pyJjEMAbbQDKzTPLbGNWqWu+Y5neN+wnvBbBe7tXTCVar gmBx5x5Zu7cipIu/KonL3OgqkNa73DZsHmmvg+YIdygmlxjLf5Jw4uw4MVYYsfnWTnSjSIv9BdT 0B0wFaTaFMCEqy1RgNpUBVQJMUfMdzDYTKThTWrStD/Vc683G+wpx9xOrTFsasPtg0kZVLbEokN UKepnUtekqG1WJIHcyg8fURiZ371D8/AdiLffYO1G8VX1Xz3hyCtptrvA09PrMwGcgaIBFoJn/R /mdsRLtiT6WlAJoZDmoC6EyS81tWI3DHyv6OAwaniv619fWcrOybmqAfpQ+GqwxlGAXCXyaHU= X-Google-Smtp-Source: AGHT+IEOfikmyWS2pCcMbmg+1MstFDyCHIFKXGW9Qs0uZQvCHWom6g+l4Co2XnX0NTSrAteKUdwUjw== X-Received: by 2002:a05:6000:420a:b0:431:c60:c600 with SMTP id ffacd0b85a97d-432c37c86ebmr11334679f8f.35.1767977561489; Fri, 09 Jan 2026 08:52:41 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 15/22] system: Allow restricting legacy address_space_ldst() native-endian API Date: Fri, 9 Jan 2026 17:50:51 +0100 Message-ID: <20260109165058.59144-16-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977605697158500 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/system/memory_cached.h | 2 ++ include/system/memory_ldst.h.inc | 2 ++ system/memory_ldst.c.inc | 2 ++ 3 files changed, 6 insertions(+) diff --git a/include/system/memory_cached.h b/include/system/memory_cached.h index e0ed54bd1eb..6eb6179140b 100644 --- a/include/system/memory_cached.h +++ b/include/system/memory_cached.h @@ -80,8 +80,10 @@ void address_space_stb_cached(MemoryRegionCache *cache, } } =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #include "system/memory_ldst_cached.h.inc" +#endif =20 #define ENDIANNESS _le #include "system/memory_ldst_cached.h.inc" diff --git a/include/system/memory_ldst.h.inc b/include/system/memory_ldst.= h.inc index dd1fb482eac..896550bdd65 100644 --- a/include/system/memory_ldst.h.inc +++ b/include/system/memory_ldst.h.inc @@ -25,8 +25,10 @@ uint8_t glue(address_space_ldub, SUFFIX)(ARG1_DECL, void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr addr, uint8_t val, MemTxAttrs attrs, MemTxResult *result); =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #include "system/memory_ldst_endian.h.inc" +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ =20 #define ENDIANNESS _le #include "system/memory_ldst_endian.h.inc" diff --git a/system/memory_ldst.c.inc b/system/memory_ldst.c.inc index ebb441f1a66..a728b7737c2 100644 --- a/system/memory_ldst.c.inc +++ b/system/memory_ldst.c.inc @@ -105,9 +105,11 @@ void glue(address_space_stb, SUFFIX)(ARG1_DECL, hwaddr= addr, uint8_t val, attrs, result); } =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #define ENDIANNESS #define MO_ENDIAN (target_big_endian() ? MO_BE : MO_LE) #include "memory_ldst_endian.c.inc" +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ =20 #define ENDIANNESS _le #define MO_ENDIAN MO_LE --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977606; cv=none; d=zohomail.com; s=zohoarc; b=VZWssJ3luCsBXb+I86rKDzUBOXC3NsOaNg/+cA3jigmfge2Qx95hK3FUebBASi+YIssHKSeoLADVbZ+FC3qHyEUDpKAI0Hk2Ia2htW9oBisSIjtOPVlbB043bzD7Agm6pZaVQzQpKXCgeidFc9/Fxp/qKvF5xLlhD49HNjSlFRk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977606; 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=ZDayLa9IHiaG4d3i6+piUlKioZqcrfCwHQyt+SfPnIE=; b=LsEgVt+jp1qcbTzHGm2Ktco/OYTS5mJUc4yGwz8UiXMSBAv+5wXTWIHchx4XUc6bW1Z9KIdOVmSwFgozAGf32vYaKPv2rXt8CGz3eFdSBKfoyFIwLZ6QacnWADFGMiU8dm8EpJkJ3ai+gxgWamJ1FNWJSCj+53FWhJy+0jW6BJk= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977606779490.4807178694434; Fri, 9 Jan 2026 08:53:26 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFjT-0007r4-La; Fri, 09 Jan 2026 11:53:03 -0500 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 ) id 1veFjQ-0007dV-3j for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:00 -0500 Received: from mail-wm1-x333.google.com ([2a00:1450:4864:20::333]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFjM-0007Xw-40 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:52:59 -0500 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-4775895d69cso22529525e9.0 for ; Fri, 09 Jan 2026 08:52:50 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f695225sm217994415e9.4.2026.01.09.08.52.47 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:52:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977569; x=1768582369; 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=ZDayLa9IHiaG4d3i6+piUlKioZqcrfCwHQyt+SfPnIE=; b=hz6esLKsc32Uw8TRArYI8xYfJXKhDa65fP+b3H6+a9mSaUbZ4nbTW3/upE0II2oiiC gcgzM+IITO+FJk+PFvFSr9UYUpDZP5gIP23zjTch0ieaX2h/y2dCMRIoQaP+o1e8qCt3 enYuVa4oNhmvp+HcUNzuQYwuB/UbqxiS1EDij3yK3I0S8QNaJHFrywAKZQaTIv+RIM5Y IBGtlYIOUnXe0b5EoteFZ9bPS/6dppSeV/WljOM75nKLnn8u5LyeIvwatD13XaJc8bfW gIFriK3Uh8Uqc9v9il/2+fFq/R7f1rDPN49AvTgpZrKkC0ORQXINGTQ1/+7d4XMrZ5gk Rc9A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977569; x=1768582369; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=ZDayLa9IHiaG4d3i6+piUlKioZqcrfCwHQyt+SfPnIE=; b=TjcMM9EmtAYKNKUaXIa2oqfNDjO59y9z2N96+ofE8qo8YG+aCWCsozubmAbyYKHNiK JOimNqLygc69SsXvZAWa2PBZj+uPXytXRgAtctkO1Cu2EbZL7PWqPQz1t0lh/cS6FxcB IW/LCKpUK1x/pIG88SLa/GVjEkurhkGHZ1PC9heQkAfx1TkWXai7vzEt+fOaki9u1xPY t3uNG+uol+sBx/qjUCl1pWPMpbnUoo/JQH8qfcOzv1XjKvp+OQpg5NYVIvI0BeA5upTM hheymTSI1P1E1mWBn1RowiSXNxqWpCeW5J8SvB5QRQ3Tvp6+wfh+Gz6Jq3sseA6sjoz3 240A== X-Gm-Message-State: AOJu0YyaXgsK6JsW/AbtwSbaZTRXmB5e+nWwlc0aqETNvP4kTcf55N29 xXAr3R3wY/BGbseNC0ZysaBppHqwDcBYDgKXYZxiEiv8AjMrKUrETMVvUPwcl0eIIdI5LqDn2iz wo8J8TU4= X-Gm-Gg: AY/fxX40KEkbWS1p1VmBRKYrEIitQbEtNUViiXHYNLiORbNE9tOS/Hq4SN0x43B0ag8 vVecuhWbYnV3CFPsd0HautE+sFT8l5MlnwW4K8rNdKfLpERP4Va3Skxfy/VHCT54pTKLC06uT04 AE9p82aoqFjXb/9UiUzFClacjszZg2AFPyHSzrnAFZGT6+VcCVwAEavtrgXPjeY+6enkjM8sopH r5OzXjPAEBKX9WIk23qc6JTj7cHKOot2BceXAxj5YG9QsQWqgODOL99pXSSvo/mhJx15qA/U886 YY5eQDrsnKN/IGBr5XPVeyo4dEF0rRGS00cngEO8e4599Ux0Jo1sg0DA1hBtOCn0RPsxDiFUDNQ vWmcf3ymtyLWCG7buC2epDa2rDA+lbevX7xrPPKfKrfe3uUeQS0KJs/1mF+20WSb1xAUtO9Jb17 H0CO69ECmlVMjdM7qBKTTXy/jHfbnOdhVx/5xIu+V5tgApUMIfDamXCs6r4cMI X-Google-Smtp-Source: AGHT+IG3EmAvxSEzq4YllUvTBKi30NMsA6v9Z70RghDbrHcPvFL4W9VDIr6w2UEZ6jmeAIJF+SdrEg== X-Received: by 2002:a05:600c:3b19:b0:45d:d97c:236c with SMTP id 5b1f17b1804b1-47d84b3b645mr124464745e9.21.1767977568833; Fri, 09 Jan 2026 08:52:48 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 16/22] system: Allow restricting the legacy cpu_ld/st() 'native-endian' API Date: Fri, 9 Jan 2026 17:50:52 +0100 Message-ID: <20260109165058.59144-17-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::333; envelope-from=philmd@linaro.org; helo=mail-wm1-x333.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977607708158500 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/accel/tcg/cpu-ldst.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/accel/tcg/cpu-ldst.h b/include/accel/tcg/cpu-ldst.h index 0de7f5eaa6b..a5711bc15a6 100644 --- a/include/accel/tcg/cpu-ldst.h +++ b/include/accel/tcg/cpu-ldst.h @@ -428,6 +428,7 @@ cpu_stq_le_data(CPUArchState *env, abi_ptr addr, uint64= _t val) cpu_stq_le_data_ra(env, addr, val, 0); } =20 +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #if TARGET_BIG_ENDIAN # define cpu_lduw_data cpu_lduw_be_data # define cpu_ldsw_data cpu_ldsw_be_data @@ -501,5 +502,6 @@ static inline uint64_t cpu_ldq_code(CPUArchState *env, = abi_ptr addr) MemOpIdx oi =3D make_memop_idx(MO_TEUQ, cpu_mmu_index(cs, true)); return cpu_ldq_code_mmu(env, addr, oi, 0); } +#endif /* TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API */ =20 #endif /* ACCEL_TCG_CPU_LDST_H */ --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977618; cv=none; d=zohomail.com; s=zohoarc; b=mScoO134COPHf15iCnGaWGfmKtPcEzxNwemMPilFlPn/i5ehpoYLNoDdtQdx3752xW/zgbOYUBXPXFRFoTKSuJq2xecU2njl3RbxZ7XAuMt/w18wHl8N499ZNLxYDZaB/ZG6hzHjcB14It+3zjejNOtIOv3KzQL9gR5nIj3udPw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977618; 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=clmUza8l1GwtG34+YXHZaXD4EgmAbnoa/13LIvHiXg8=; b=Gp9qj2onPApypG33hFY+WkH6H6k04IpD+k9lF0lkTgzSoNTdQrz1QCFVCNf9hH8Mh1ABMCD0DAr2eIL/uvG3FsJoDZxTMzjn6ePQrbqyZuqeKopvnioQSG5pKQwDFUiYVNBlVSjcEh8yg7rzA712q3GQBe5iEKHV/L2aZVSMibc= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977618224383.30141388525806; Fri, 9 Jan 2026 08:53:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFjY-0008FB-Bo; Fri, 09 Jan 2026 11:53:08 -0500 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 ) id 1veFjR-0007lM-K4 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:02 -0500 Received: from mail-wr1-x436.google.com ([2a00:1450:4864:20::436]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFjN-0007YP-N0 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:01 -0500 Received: by mail-wr1-x436.google.com with SMTP id ffacd0b85a97d-42fb03c3cf2so2423985f8f.1 for ; Fri, 09 Jan 2026 08:52:57 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd5df9c5sm24198592f8f.22.2026.01.09.08.52.54 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:52:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977575; x=1768582375; 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=clmUza8l1GwtG34+YXHZaXD4EgmAbnoa/13LIvHiXg8=; b=pFOIGs+AsAmOvnTKhb0LrRjhOBhjbsjStcO9rIodWYverBI3iVgxpmt8O7Nanb+T0s 5ogffb3/e6ABj+Gz44QKTmMGb5vRRyww/6yH5uxJKeMjfHAYWESPkoUhBfw8sDnUrLWC Ngb9z2YnF48zFRmZ5aYgqc6zWlqWr9fUZDFVJMPtGrwISHPjNSNNM8giCJRG4Ja635JJ 5EJvC7qVeriFP7wQooP+kSgBW7OX48crzPkluQQgd6rTYt/7NXP5uGkVySdEmMTV22+q taOpoAXfDMoZu/U8EPjuOQlSW7MCgEkq3bL9JKjVgAIAWLEmAN/c07OGhuC4fjzdnHnU B1Qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977575; x=1768582375; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=clmUza8l1GwtG34+YXHZaXD4EgmAbnoa/13LIvHiXg8=; b=kLMxjPE9sqp/1+Y4O+s5l0Qm4oOkqHlYBSmkuCAqFC5SmUrRFFbGubL5nwZjtx3yhC 7fdZdgWrFsYTzx846TYYCkG3oSl/6JJC6pktLNTDMO51LS+Ui7jowUlCxK63l3LrdvnG XKxW6k1jgd8ISY5wnb6jEWbILVvHTJDPRnMZ3Vr6L7XL8zPMGgzNgFyXNBSxfpsEBfQC tf+ZBhnhHFHlbvU9LA+BbrQeA5SWQ72W2kX2Pap3EFEf2o83SvMmRCVHdJY9rO7Rojju vCD7pL3yYyihvCzZY5nxMnuqAsSpOKpKMz3N9/ZlXduQ+Rez4qUw3m8dbawqw7sMQ4AY +R7Q== X-Gm-Message-State: AOJu0YwydeXdYq6uSG5KTGAmu35N0IWvqAk4hh3yqn4b6hm8kzHGddK0 wlcMLXs7GSdORTsY6I7JvJnsdEoheMi+FwNCkEadbv4QAoUDCHh8J4aZl2VWyJbAjMS+Z4QCwbr gkabmPhg= X-Gm-Gg: AY/fxX4gfaKbs4axd5h4nvkGn2H4OHqL3wL7EzcM+5A/TRQiLpM6cqOpVpqq4FwtWRh QrVBv2N4K8Z9AeVqoFoKlG2s6HABnP/Klszme6g/6+xTgKfkLIFQKK3laAn9JP6KMzOhZST0Q2r N8Vzm/hude4ITCbjUxIB5EdighVKoPfZ1UXYZ/D8yWBbwZpaq5KmwxfUtxm4Oo255T/eOOLyDgT M+YczehUJeHP9/C1L6sJzOTNej9yQZbZMbhKw+NGSPTlW30myidjN7BEWv42NDVMzpJZEQulcJA CRy8gPEVw/H7beH+HWDgftjxXaCGdBboBpZICR8PTYIFUDYt16ifjfxS+agLP4c1BCpvf99CzIw KlVX1UCJG4xOo+8LyuN25u2TJ7++aqAElA2hfdXWNyUB7mTLdsEcl0S548pQsWWdYuxAGAsDF7o h4owC/csp8TXIiiD9oy9n4T5El2a+qtCEWkTDwx0ElqfvcZN7Dxc00XRO+a3W4 X-Google-Smtp-Source: AGHT+IHZ/jTrG94+hVfwpGawvYB6HWJ3Z2ukOnEMfDqRRQ6q3lV9y9qN8TWCm2OtiSfCQJB+6NJvXQ== X-Received: by 2002:a05:6000:1448:b0:430:fd60:940f with SMTP id ffacd0b85a97d-432c363351fmr12489972f8f.14.1767977575540; Fri, 09 Jan 2026 08:52:55 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 17/22] system: Allow restricting the legacy translator_ld() 'native-endian' API Date: Fri, 9 Jan 2026 17:50:53 +0100 Message-ID: <20260109165058.59144-18-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::436; envelope-from=philmd@linaro.org; helo=mail-wr1-x436.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977619741158500 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/exec/translator.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/include/exec/translator.h b/include/exec/translator.h index 3c326555696..8d343627bd9 100644 --- a/include/exec/translator.h +++ b/include/exec/translator.h @@ -188,7 +188,8 @@ uint32_t translator_ldl_end(CPUArchState *env, DisasCon= textBase *db, uint64_t translator_ldq_end(CPUArchState *env, DisasContextBase *db, vaddr pc, MemOp endian); =20 -#ifdef COMPILING_PER_TARGET +#if !defined(TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API) \ + && defined(COMPILING_PER_TARGET) static inline uint16_t translator_lduw(CPUArchState *env, DisasContextBase *db, vaddr pc) { @@ -227,7 +228,7 @@ translator_ldq_swap(CPUArchState *env, DisasContextBase= *db, { return translator_ldq_end(env, db, pc, MO_TE ^ (do_swap * MO_BSWAP)); } -#endif /* COMPILING_PER_TARGET */ +#endif /* !TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API && COMPILING_PER_TARG= ET */ =20 /** * translator_fake_ld - fake instruction load --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977618; cv=none; d=zohomail.com; s=zohoarc; b=XJ7BNAk15PLMi9dpRV74+wU/nfqwcfQ6OP2ioie/rRnZI7uhVyPKsw6nB8p7OKajZsmBAkM8ajzpDS90jiIzIG93Ns22CGOA4HEXF2lsFYFk6Ku9vp5gXfGLfWVD4B3ibAGhXwlI55TZf+MkUCQLZsAiueoEgSK0SjsJBkfQS6w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977618; 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=GL8P56C3QKW+wYSnHUjfX38VQq1YNg4U4yN3Hx8cg1U=; b=T4FxkEHEm5LcTf0EbAST9qbfK+NEzlrl5YYEFAg7Rjh0qXIHj4Du+NsRLxjp0opbEJTWE0aLU/GJmgTjTYZe02KmWGY+6bDPj6Z4IJv2TrIh3wtUMx/v9E2Zsj4SSZ6s1lho9eK9IUqz+IXEacpqXfTb4g13wrSWFmMBRprWs3o= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977618322979.1141895802502; Fri, 9 Jan 2026 08:53:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFjj-000091-4d; Fri, 09 Jan 2026 11:53:19 -0500 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 ) id 1veFjZ-0008K2-5S for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:10 -0500 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 ) id 1veFjU-0007aN-AU for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:08 -0500 Received: by mail-wm1-x334.google.com with SMTP id 5b1f17b1804b1-47d3ffa6720so45558325e9.0 for ; Fri, 09 Jan 2026 08:53:03 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d7f653cd6sm228678875e9.9.2026.01.09.08.53.01 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:53:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977582; x=1768582382; 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=GL8P56C3QKW+wYSnHUjfX38VQq1YNg4U4yN3Hx8cg1U=; b=SMrXUnlgxkdix7WG9eS+UKr8Pc/N8jeUVkwaBkUeVf+augTimWW/UTUKeipHVhrSdI IhL+YGTtLtmzOuDV17m9vnPwOvqymOio+oY/ExM57uQIpElV/7cNxKA/KdJ+raOvkWCN cEgn5MOO9pfCIlrqiw9b7tbyzIEnTsX40d1jr+Plhe2qlzqH70ryMi+2szCjmq5NrwH+ SUN6GhbIKgyB4FKRC3C4pUPQZ59pwb3cNISnnW7r/gqjKrX+WXelvtJ7WE6SDg66f6Vj IjPsHtFFHT+thXa1icZ8Q7hLIfAHlBqcmSAuhKvGqKaX/+RhTUS44ND61k1Nl4JEaq/q 7zNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977582; x=1768582382; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GL8P56C3QKW+wYSnHUjfX38VQq1YNg4U4yN3Hx8cg1U=; b=sZdIi53XNKiTeuXVhEG0VBvORUfyapJliyH15P7kB9pUiSRgySyRn8MuaWk8L+AIBC JGhdXQX5Teac8mnTvUW3R2bLYyTjMvJ4HC96CyzMVeWcqJbq+npquyWOEGVCI37RIRa4 Xf12ejlu79BGZK5Q6/QESsjcz4F+fIiMkOyXI3kjjJzZAvuuq/KmTcMpSxhrH6g8I2Zh //kBJhMqds9JmOnUDInL1KdGfNifXFmWQHQrMhy9vNCLgksLg96OVPLTOHd4Xhvvzof7 VEqNR8GWwPDm4eArObStRMlkUSqf+nwhO0Lri6luaZl+vviYuVVLsuwJ9upRRv3gDHwM XcJA== X-Gm-Message-State: AOJu0Yw8WszGdPW0WmUtwJPA7tOktkIUsNgsKEor216u8iyYnfEmHts4 9vxJ35/Fzt0xTLR/kP5H8wW601JTOQV1OgybrLTVILRu6VMiMriFVF3FQWUUcGTuMSXeWLsPflV 1eF4OY+U= X-Gm-Gg: AY/fxX6rBm7Y8jjFxXnIDsW1W2NfxCxl64hkWHQNjBY6MFEcIdGC6VWyjjDUIt7Powy DvDQf21BJ13Vart1VkC8IaWzweNjjNBxZPmWb5JknrclYnKHspUV+Yb76ubmkhJ2+bA6rDsuRpv SzvvigcS1NvuYsZlDFRZY3Yipt8JGqmySmBIPcpFmg/R3Uc4UWSl06R7y2TRzqnFyzSDLD58khd 9aE5E2SnFYZh16sZPA7ir+H5O1LJeX8BsBDKuSnIorcypGRa9V1lmP5hpCYNmQZxa39O0y836kR 65pfAEaaxAcE0j2MBUgMd+bKxsief+10aa6eQNfjvjCptDmwyr3899IKTRa/3N6nW2D1Kd4qlgO WbHa5z02xc9WEs57TLKbmkdOjXpLRj/mGmmvTFFCySTUxCH7fH6/Pif9Bi7woGbl2LyHlnNLqtU iI3JlXzGeqI3mrSZBuF54fXpl7kY1fviD3irTZ4QHJvQ+8MkQ/fm8hr3n1i9k/ X-Google-Smtp-Source: AGHT+IH6UBEzw2dRoWqX6WmBU+nTdEZ23v8QzwsIiecIaSZ0jAFlFKudKC9BI4Cfwp3Xdyj0+Vr6vw== X-Received: by 2002:a05:600c:1e1c:b0:477:58af:a91d with SMTP id 5b1f17b1804b1-47d84b0aa4bmr104709775e9.5.1767977582165; Fri, 09 Jan 2026 08:53:02 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 18/22] system: Allow restricting the legacy tswap() 'native-endian' API Date: Fri, 9 Jan 2026 17:50:54 +0100 Message-ID: <20260109165058.59144-19-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977619688158500 Guard the native endian APIs we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/exec/tswap.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/exec/tswap.h b/include/exec/tswap.h index 72219e2c431..9e94fa0021c 100644 --- a/include/exec/tswap.h +++ b/include/exec/tswap.h @@ -21,6 +21,8 @@ #define target_needs_bswap() (HOST_BIG_ENDIAN !=3D target_big_endian()) #endif /* COMPILING_PER_TARGET */ =20 +#if defined(CONFIG_USER_ONLY) \ + || !defined(TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API) static inline uint16_t tswap16(uint16_t s) { if (target_needs_bswap()) { @@ -68,5 +70,6 @@ static inline void tswap64s(uint64_t *s) *s =3D bswap64(*s); } } +#endif =20 #endif /* TSWAP_H */ --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977618; cv=none; d=zohomail.com; s=zohoarc; b=E6A5Eirc/O3UG7qF9KPNNUUprStmeosVIvAMzk8u2MNQmh53kuMwiM4dDl5JI14lsvf3A7qlEeLhBvKwe4mV2cnpaG5qHZLETD4rVgHnhRS5J1v9Xz3RaeMfLFM/w1C21BdZC8riz/lLprmJp9e2uLjbBBgCyIeFJQkZFoVfnjI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977618; 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=uCyMmfY1je4KK++qvAKc5w59+JOFx7vAsdkNeOooSpo=; b=ZEj53rYNqfpKhAIqUpV5uEkLoslyMfteTEktV+quKFXhQCLGhkJOdD0+OkPSj/Iyuyjgka+jyjgxwDTim6MoMXvAQOmNVTF+96bbbO1qnhogFxcEezbp47gBy9ZUFGIfaSzeCfCfQQ+tLObBLNjkkRdkTN44ijbPMq/iHDYL8Ak= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977618097380.73466666334184; Fri, 9 Jan 2026 08:53:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFjq-0000YM-7i; Fri, 09 Jan 2026 11:53:29 -0500 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 ) id 1veFjd-0008U8-Ix for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:14 -0500 Received: from mail-wm1-x329.google.com ([2a00:1450:4864:20::329]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFjb-0007bE-U9 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:13 -0500 Received: by mail-wm1-x329.google.com with SMTP id 5b1f17b1804b1-477632d9326so27309165e9.1 for ; Fri, 09 Jan 2026 08:53:10 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d87166d0csm69469625e9.6.2026.01.09.08.53.08 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:53:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977589; x=1768582389; 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=uCyMmfY1je4KK++qvAKc5w59+JOFx7vAsdkNeOooSpo=; b=xWcEZCXhCrIBoVHFfdQBEBcTau08RkSOG4B4E6zTY3DHNYzYozUawKAMjZCWQfSb0o WsHDolm9I5QGJCxzna5L1QQWlkTPTL3UgpL1a8ysGVtEpaWmgW2Aw7zDSJKg7R9WqKU3 Rn7tdDwJSxjiyT8rrzQeSHFt5AYGJ2dNlmaq8S6RbzQ1LfBYlw7vyzSt5Bn8bNX30Hng Xq5ODwR4UIynXYfkgak/UdVeipaKKnZ3MRg5ZLNhVan7vps/Hw2c3h7SyBKlIFTYgt5p iqiw381iyyYbjRqGRIgFocLoI5MK7bBZh4KBv+BqFPLdd/7Oif8I86SDzNrEq07597Hg Z8NQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977589; x=1768582389; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=uCyMmfY1je4KK++qvAKc5w59+JOFx7vAsdkNeOooSpo=; b=Vyf8F/xZoMIzrgLHTVjYXnesDQ7FH74ESiN6UKM2c96THGlA3jRmC/Rm6/vNhO4jXo AdAqNVHkfqgVQt+H7W29Wz6d5tc8cD4RNUQmc9LuhgTnI8PoOlbweQg0hjzYKONKVRTV u1mzYOhOG3EUgCvVV7lZPVVvc/CNSBNJx6FewXgE60Akb7DDTxz0MHgN8dM7p1ceMXvd OFnZv9mVWkhuiuY3M9TD2Vusr3jYtyl/3re1okHNxjvU543JOYX1UE2bJKTHlr+G/KXP vCfbh9ksZsySd3NHkwu4wu31ZH+UlduUSCt6IaMcysc1XeFowjGxLX7Q5dzaBaynJo3/ zGQw== X-Gm-Message-State: AOJu0YxpKubwIyGcV3waL4SG/yARFq51YpSAYU8iRpvNV5bM/taXMz6F msqP88bvU4gbGJ3pMoeyxaOb+ixix0/vOHDKg+jF30nOqityDpBjyYoTIjfF7KhHbJr1NhcOsDo m9axnsMY= X-Gm-Gg: AY/fxX6fdbx8Pjrak2QF2xQRFRFHfGCpibqz1NMoLE+y6RiYdyplet8T06e6y283ES1 zEWsKjxqvytrsh6jPRHWDdAMRs/zpp/rF0wp5tftNtJEowIw7tNma0sG4Z4E32qG/WJD02UBFHb e5WLXaVLbhkTVJFIXt9UYvmk9Ssrzt8CDqhbhuKNM2u2PZG/0O7Y49RQdWs0C4cDHv7/g22OanP jq8NHc3amj9sr966blSQd6Tri0Gx0kSIfLo3cwRkxuwjYO1Zax/m6LIukcflH5BoARE3rtlCaY+ pkcc3MthyNvCfYkYgHuLDdUEGFSfoEnWQqybNTmyrzBYZvlM6ed01mKYMlEkLNBCCDFQDgDRsjz uVLiZtfMSeIXcMFp7qRa3f9kgoWG9KTnnxEahPlaJgBz9JjWCCfs9ZmQTEuD5Ie6S+TtdeX8ebR imCV4OEyoew22SOsYqwik0o+BaX4OPXgn3tAUEuVn+EWySpOmMiGB+BySvaJue X-Google-Smtp-Source: AGHT+IFGJnvyZWZ1AjLFB7MJDn8krIPBrH3fe02U/gXWaKQ9AsNlibaNg5dWyTZFEoQ9L4Z5uP7GdQ== X-Received: by 2002:a05:600c:630f:b0:477:7a87:48d1 with SMTP id 5b1f17b1804b1-47d84b3b4d7mr117619205e9.30.1767977588845; Fri, 09 Jan 2026 08:53:08 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 19/22] system: Allow restricting the legacy MO_TE* 'native-endian' definitions Date: Fri, 9 Jan 2026 17:50:55 +0100 Message-ID: <20260109165058.59144-20-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::329; envelope-from=philmd@linaro.org; helo=mail-wm1-x329.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977619672158500 Guard the native endian definitions we want to remove by surrounding them with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/exec/memop.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/exec/memop.h b/include/exec/memop.h index 799b5b42218..4aaa6a0ab02 100644 --- a/include/exec/memop.h +++ b/include/exec/memop.h @@ -36,11 +36,13 @@ typedef enum MemOp { MO_BE =3D MO_BSWAP, #endif #ifdef COMPILING_PER_TARGET +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #if TARGET_BIG_ENDIAN MO_TE =3D MO_BE, #else MO_TE =3D MO_LE, #endif +#endif #endif =20 /* @@ -150,6 +152,7 @@ typedef enum MemOp { MO_BESQ =3D MO_BE | MO_SQ, =20 #ifdef COMPILING_PER_TARGET +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API MO_TEUW =3D MO_TE | MO_UW, MO_TEUL =3D MO_TE | MO_UL, MO_TEUQ =3D MO_TE | MO_UQ, @@ -157,6 +160,7 @@ typedef enum MemOp { MO_TESW =3D MO_TE | MO_SW, MO_TESL =3D MO_TE | MO_SL, MO_TESQ =3D MO_TE | MO_SQ, +#endif #endif =20 MO_SSIZE =3D MO_SIZE | MO_SIGN, --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977621; cv=none; d=zohomail.com; s=zohoarc; b=hVVa8JudzrzWoEOji2DjN3R4kdh9sLl+YADy9zgQ/61j28MszfR3MNYTcqgYSc1fMMDdu2pbRYBLa1c9e/wDIZU7SRukSWUKFUamdlwQQpG4vTOTWcAXojZ5ky1jvF01ZlZBPngHDrSqdmfwI8Pcj083HDal9wtGZTO4MhL+nV4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977621; 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=hq3QhcR9ZU55rk1Z2h2O6JUZujdO6pgNZezjX6oFLNI=; b=Q5vUla8k4DVKT0WMAdhPwKIQtCaCZZI2YavgNDR1RqmUrmdZd+G/QXAE0eFoU8tsCqXyJrMTxP6kzyeyaPrLfBvxNSkdeMKYs3PdRLjFcRschpdLEKheUuTjnPq8mK3ikfSIJ+BrXIOWM9TMP8dX2u9T7XydJ8a82YbWr4yKmA0= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977621561287.0988054124051; Fri, 9 Jan 2026 08:53:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFjw-0000nR-FY; Fri, 09 Jan 2026 11:53:32 -0500 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 ) id 1veFjj-0000Ar-6g for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:19 -0500 Received: from mail-wm1-x32c.google.com ([2a00:1450:4864:20::32c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFjh-0007cQ-Hq for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:18 -0500 Received: by mail-wm1-x32c.google.com with SMTP id 5b1f17b1804b1-477563e28a3so22773805e9.1 for ; Fri, 09 Jan 2026 08:53:17 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d8719d057sm65489135e9.16.2026.01.09.08.53.14 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:53:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977596; x=1768582396; 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=hq3QhcR9ZU55rk1Z2h2O6JUZujdO6pgNZezjX6oFLNI=; b=GN/g+xBNzxp2uAMtAE2gRDKxAG+8BFrm00KMnRa5tXovbf7ggCDFU99dYhEzar4WWh IIC5t/e55Lv9eRvmvCdsi4/YH/cH4W6Yi53+d3WhA3aj7Bkri4hsvca7rrTJnXlsmISn 9ZZhgkoSloal7gXeV5oVxFrw1NATMrCnPKp1K4oGk3S6pm1ZG6yeb31VCDvUbOJMCfbm R/frpfbgxP3wp3VrXr1VSIHgxdaWR3p7YkkdF9lNZfZnGdUKFx2cVNGJXuCBa+FWDgaG lAq+8GUbLzxQj9xsaiNsfblPKniJuZMTb1VH3WA+yCXdm8V3YaI0Twb1geYspLwhbAoC D/4A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977596; x=1768582396; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=hq3QhcR9ZU55rk1Z2h2O6JUZujdO6pgNZezjX6oFLNI=; b=hyGNFqaSGwvkv27fFjfXi1QMhizrgcPZTk2n/sq+LpdAoXKYMvkhPK0EMrGOiPuck+ sBba9T229eVy1EP3MTL8qFKRdjcUsPztErT8KbTM21QyQlYICAsVQO7d99eylJ91vVS5 lsSRUf8kKb1PtjYMvRH4iUy8+4oUDb+xnT13iM7B3HbNKtfXTumA9Y5CbfAd3VYUzCvx pLHA61IIXTFaPhp0bjp9ZdbDGg7J0OW89rzUbhS05tE2FRr/jFxfumTwHJcC0zrFh9Ey 6SLYgTHeHUuu3Ym/Rt2xoinuPKpTF8tAIVXNXRUCYndkUyjajP0Fh/XkUov6wdXeSt4t 5UNQ== X-Gm-Message-State: AOJu0YyKjFrxGuNzsY/HYjp/5S0iq2M63fmJeWUy5a5pRcE+S3Qoq625 TcoP4YsFMl52C8M3JEsrcjw18SSgIBczAR4wmSkkUCVaumfgkai4KegYEwSrmITOLYQ6lNKF3Eq gjfSiOxM= X-Gm-Gg: AY/fxX7RJpCpSn8DzotwAwgj+w/fTteQRWTByHyADC1O+1acxcETDqZyldHPTe+IrSp IAdYcrdUicOzUX6zKYR7lP3CLYpfGIS6CSRB5JmE8jZ5cqX3RxNS8w65WTeurdhIGIzeg3TPFpG W/K9xJebI/0N17bahNK62QJIC1F0hGSq9McZaSjnAPnwUnX/wl0Rx+PN4SkY5xzt2MT6DhvVurw 0dcdL6OzbRruV2owaHxroC0Xp+vShWFZttBlS01QI9kRpoEtpEtoA/rj33vvqmNBHCSQ/eDst0z ul6jNnNLmCJe9zE9V6g+TZTY4G/NLTX4SjDZFg/x2C+u9rH+BlE5ritAcKJJDNZUZYMZbYLvekX 1gtbG3dU0xV4tsRkk9qKt2BKpH+D/PgQ2k3vLbvhCmb/OEXEF/ot8ePACLLowUFEBiJO9NY4S9H PA1qYJmNfiOYXlJ1WCdL5H1SORkOudbYe8gCtSDEY/MegMQuTNVvC3hd1OrbtB X-Google-Smtp-Source: AGHT+IHBPKB+l4Tne/Qv0Se2fqW2jNnzb82gB5JkbXs8Dh6Y3xNvbUGkaK8et7RhJpA1icIcVTe32Q== X-Received: by 2002:a05:600c:6308:b0:479:1348:c63e with SMTP id 5b1f17b1804b1-47d8486d60dmr94069575e9.9.1767977595738; Fri, 09 Jan 2026 08:53:15 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 20/22] system: Allow restricting the legacy DEVICE_NATIVE_ENDIAN definition Date: Fri, 9 Jan 2026 17:50:56 +0100 Message-ID: <20260109165058.59144-21-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::32c; envelope-from=philmd@linaro.org; helo=mail-wm1-x32c.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977621747158500 Guard the native endian definition we want to remove by surrounding it with TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API #ifdef'ry. Assign values to the enumerators so they stay unchanged. Once a target gets cleaned we'll set the definition in the target config, then the target won't be able to use the legacy API anymore. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- include/system/memory.h | 8 +++++--- system/memory-internal.h | 2 ++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/include/system/memory.h b/include/system/memory.h index 92028dc7a4e..8f8725ea2d5 100644 --- a/include/system/memory.h +++ b/include/system/memory.h @@ -27,9 +27,11 @@ #include "qemu/rcu.h" =20 enum device_endian { - DEVICE_NATIVE_ENDIAN, - DEVICE_BIG_ENDIAN, - DEVICE_LITTLE_ENDIAN, +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API + DEVICE_NATIVE_ENDIAN =3D 0, +#endif + DEVICE_BIG_ENDIAN =3D 1, + DEVICE_LITTLE_ENDIAN =3D 2, }; =20 #define RAM_ADDR_INVALID (~(ram_addr_t)0) diff --git a/system/memory-internal.h b/system/memory-internal.h index 46f758fa7e4..5f0524756eb 100644 --- a/system/memory-internal.h +++ b/system/memory-internal.h @@ -41,9 +41,11 @@ void mtree_print_dispatch(struct AddressSpaceDispatch *d, /* returns true if end is big endian. */ static inline bool devend_big_endian(enum device_endian end) { +#ifndef TARGET_NOT_USING_LEGACY_NATIVE_ENDIAN_API if (end =3D=3D DEVICE_NATIVE_ENDIAN) { return target_big_endian(); } +#endif return end =3D=3D DEVICE_BIG_ENDIAN; } =20 --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977685; cv=none; d=zohomail.com; s=zohoarc; b=NUIa0bee3bkUIOA7b7bB1Wj0hy0AbqAb2zVY0rrwhnTD9NQcq2Zto2OCDnJc0UpBtswYvrnB4wiWBEGNe1NDxW3P8+xdVPNkl1LPc9Z+rmRZknKG11gM+7Dt7x2nzrf96KAabIPb9MxLO4DC7zV+fjkeTD0rCOZG533GwPb+F/E= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977685; 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=nbBzGEvp7uU7FunAVjhxKmGIPX914MoXiFSBgfcwfeU=; b=ehClW7dscIirZVv+EXIP9vwocXheZV5RzYbDDlGpmeYGapMqfp4OEhCcdBwwU6N5u2HI54SWWI7YbbVkw1UyV4yxVFePMHeTgSVIx/wdfC0GV6viejFC7a9I/BffEMSbzmDy5iak8WWL1RvKwe5DYz3tcFPi7SRCkg0dwd7s7pU= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 176797768515087.04967600669704; Fri, 9 Jan 2026 08:54:45 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFjx-0000wO-UO; Fri, 09 Jan 2026 11:53:34 -0500 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 ) id 1veFjq-0000iE-M8 for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:29 -0500 Received: from mail-wr1-x434.google.com ([2a00:1450:4864:20::434]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFjo-0007dZ-OR for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:26 -0500 Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-42fed090e5fso2508415f8f.1 for ; Fri, 09 Jan 2026 08:53:24 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-432bd5edb7esm22988667f8f.30.2026.01.09.08.53.21 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:53:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977602; x=1768582402; 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=nbBzGEvp7uU7FunAVjhxKmGIPX914MoXiFSBgfcwfeU=; b=Nc1nCcaLLx5rnrHMHrxdqgNU9C6xf/Jvo7JaRjMqKap8TnSLLcLUYfo2XDExhex6RK OUwfM3ffyeaBL53mekmORnhMQZKr1FxkW1TgIL1Pd6Z5+8TFDghH0g0ukNSMX2L+GTG7 TLD7bLkIA0Pu7egRCBu78WM6AJTgrLi5rDDjLbN8Tuq9zZ0dfZIV4Dv/fZf9WPDJhdNX 8xoieH32HYAZUtz142owaKEpu8PkTi9Wyg4ahqcv7ODr27zkb7xAJpufQS3rakX32ubl 36Phn/sXnLep6vpneXZczmUKg3zSFXD7RpnwQWCJR9+1lbIx0wYoV0tgv5qZKI3EaKXx 6nUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977602; x=1768582402; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=nbBzGEvp7uU7FunAVjhxKmGIPX914MoXiFSBgfcwfeU=; b=EES8oa9JS0Dylqzi//pqobEC++F2SbbIVoWJNqtDl/DUyCcv4f8CPqxGLXx+c0Rk/J rHujas11lVVi8/PlthiMGxl+PtC0a0++OEqE0flmgFbKi9MDbH9Y5knI6I02ARKqxRNy J1uy84swMJTLOvUJNS2oFodw9qO0UP3zni1tgY0mRysHUT4ywi5ugc3DnFwqclLk6tOB 8WZj1lbLEOgUFk+qrGhOUbZahpMjv5sgGnAINHlkhdP0FMyYKy66wyGDI5PQSMMa3m5R WbrfrMQEhem5aACjc+LnjYGhuPiPIOYZGm6+sqSNLIMMOrNJMub4Ks6le/HApdHbJ0VJ VQJg== X-Gm-Message-State: AOJu0YzDvhgwH2AOYJ8LBDx3YAH7dtqLMLFgcDO4GB9cDxuWeyi3IYdd OjTqCUICgHS/cVO5H9Poj4VAVJWsvvkerEUar+MUF6rJlrYePXDiO24q214efLppiSpK3komyZZ f95CqJo4= X-Gm-Gg: AY/fxX7QiinZ8DTBsgLq69HUZR73y+CEJX/9Yp8iFUtdD6NFA9DgMqTnwcmlh+Px4He pRy9bhYNUn52wZ7A2F4u0JlKCWOaNlUGZsjXrsof/xH8NnnMGoon9vN1OsX/Hg5463jlw8Ofk57 ZHsHKFbGDFr2sjezDoZPjx0ba/DMzMWH0SuagSpBUg04BK5crhT17/qPyisg3UsHd1FHRAfrvak 0s3JmanwGZNXsKzgd/6+JoX2pNU24cTu32iFCevu0fouhZtJyG4DaEABYO4bHWPX4ienBw3AUdH tYwzJaTgFdS1c1JLXGI1lPH7DDz9cvADsV+OKxZU7Au4wBQT+fqipyqZfKyHivoKWUSl03ZyLjW csfXGhDbeKfO4p+Y1Bs1HYcfVvMqUz8da6kcityUe6cSZj4cyi20+/1gpZLRUS+z6rN18jV1cbf oDr0z0S61uTlo2g10PQM3q6Lzd+jrOOUW6j+nYNXhrApv6LpCakKZtPyxMoh8c X-Google-Smtp-Source: AGHT+IEamCBM6DB7n93fi4v326V/ekjVbLx/2r2TNxgAm55V9q/DRQcm6eC1kWmyR4vI13M0w3O2bg== X-Received: by 2002:a05:6000:2311:b0:432:aa61:a06e with SMTP id ffacd0b85a97d-432c374fc59mr12893755f8f.32.1767977602381; Fri, 09 Jan 2026 08:53:22 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 21/22] system/ioport: Declare x86-specific I/O port in little-endian order Date: Fri, 9 Jan 2026 17:50:57 +0100 Message-ID: <20260109165058.59144-22-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::434; envelope-from=philmd@linaro.org; helo=mail-wr1-x434.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977687985158500 X86 in/out port (related to ISA bus) uses little endianness: - enforce little endianness in x86 cpu_in/out() accessors, - serialize QTest in/out port accesses as little-endian. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Fabiano Rosas Reviewed-by: Richard Henderson --- system/ioport.c | 10 +++++----- tests/qtest/endianness-test.c | 10 ++++++---- tests/qtest/libqtest.c | 13 +++++++++---- 3 files changed, 20 insertions(+), 13 deletions(-) diff --git a/system/ioport.c b/system/ioport.c index 801e2490c36..4b94f2f8111 100644 --- a/system/ioport.c +++ b/system/ioport.c @@ -56,7 +56,7 @@ static void unassigned_io_write(void *opaque, hwaddr addr= , uint64_t val, const MemoryRegionOps unassigned_io_ops =3D { .read =3D unassigned_io_read, .write =3D unassigned_io_write, - .endianness =3D DEVICE_NATIVE_ENDIAN, + .endianness =3D DEVICE_LITTLE_ENDIAN, }; =20 void cpu_outb(uint32_t addr, uint8_t val) @@ -71,7 +71,7 @@ void cpu_outw(uint32_t addr, uint16_t val) uint8_t buf[2]; =20 trace_cpu_out(addr, 'w', val); - stw_p(buf, val); + stw_le_p(buf, val); address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, buf, 2); } @@ -81,7 +81,7 @@ void cpu_outl(uint32_t addr, uint32_t val) uint8_t buf[4]; =20 trace_cpu_out(addr, 'l', val); - stl_p(buf, val); + stl_le_p(buf, val); address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, buf, 4); } @@ -102,7 +102,7 @@ uint16_t cpu_inw(uint32_t addr) uint16_t val; =20 address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, bu= f, 2); - val =3D lduw_p(buf); + val =3D lduw_le_p(buf); trace_cpu_in(addr, 'w', val); return val; } @@ -113,7 +113,7 @@ uint32_t cpu_inl(uint32_t addr) uint32_t val; =20 address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, bu= f, 4); - val =3D ldl_p(buf); + val =3D ldl_le_p(buf); trace_cpu_in(addr, 'l', val); return val; } diff --git a/tests/qtest/endianness-test.c b/tests/qtest/endianness-test.c index 222d116fae2..2b2f92099d0 100644 --- a/tests/qtest/endianness-test.c +++ b/tests/qtest/endianness-test.c @@ -65,8 +65,9 @@ static uint16_t isa_inw(QTestState *qts, const TestCase *= test, uint16_t addr) value =3D qtest_inw(qts, addr); } else { value =3D qtest_readw(qts, test->isa_base + addr); + value =3D test->bswap ? bswap16(value) : value; } - return test->bswap ? bswap16(value) : value; + return value; } =20 static uint32_t isa_inl(QTestState *qts, const TestCase *test, uint16_t ad= dr) @@ -76,8 +77,9 @@ static uint32_t isa_inl(QTestState *qts, const TestCase *= test, uint16_t addr) value =3D qtest_inl(qts, addr); } else { value =3D qtest_readl(qts, test->isa_base + addr); + value =3D test->bswap ? bswap32(value) : value; } - return test->bswap ? bswap32(value) : value; + return value; } =20 static void isa_outb(QTestState *qts, const TestCase *test, uint16_t addr, @@ -93,10 +95,10 @@ static void isa_outb(QTestState *qts, const TestCase *t= est, uint16_t addr, static void isa_outw(QTestState *qts, const TestCase *test, uint16_t addr, uint16_t value) { - value =3D test->bswap ? bswap16(value) : value; if (test->isa_base =3D=3D -1) { qtest_outw(qts, addr, value); } else { + value =3D test->bswap ? bswap16(value) : value; qtest_writew(qts, test->isa_base + addr, value); } } @@ -104,10 +106,10 @@ static void isa_outw(QTestState *qts, const TestCase = *test, uint16_t addr, static void isa_outl(QTestState *qts, const TestCase *test, uint16_t addr, uint32_t value) { - value =3D test->bswap ? bswap32(value) : value; if (test->isa_base =3D=3D -1) { qtest_outl(qts, addr, value); } else { + value =3D test->bswap ? bswap32(value) : value; qtest_writel(qts, test->isa_base + addr, value); } } diff --git a/tests/qtest/libqtest.c b/tests/qtest/libqtest.c index 622464e3656..132aa511375 100644 --- a/tests/qtest/libqtest.c +++ b/tests/qtest/libqtest.c @@ -31,6 +31,7 @@ #include "libqtest.h" #include "libqmp.h" #include "qemu/accel.h" +#include "qemu/bswap.h" #include "qemu/ctype.h" #include "qemu/cutils.h" #include "qemu/exit-with-parent.h" @@ -1190,12 +1191,12 @@ void qtest_outb(QTestState *s, uint16_t addr, uint8= _t value) =20 void qtest_outw(QTestState *s, uint16_t addr, uint16_t value) { - qtest_out(s, "outw", addr, value); + qtest_out(s, "outw", addr, qtest_big_endian(s) ? bswap16(value) : valu= e); } =20 void qtest_outl(QTestState *s, uint16_t addr, uint32_t value) { - qtest_out(s, "outl", addr, value); + qtest_out(s, "outl", addr, qtest_big_endian(s) ? bswap32(value) : valu= e); } =20 static uint32_t qtest_in(QTestState *s, const char *cmd, uint16_t addr) @@ -1220,12 +1221,16 @@ uint8_t qtest_inb(QTestState *s, uint16_t addr) =20 uint16_t qtest_inw(QTestState *s, uint16_t addr) { - return qtest_in(s, "inw", addr); + uint16_t v =3D qtest_in(s, "inw", addr); + + return qtest_big_endian(s) ? bswap16(v) : v; } =20 uint32_t qtest_inl(QTestState *s, uint16_t addr) { - return qtest_in(s, "inl", addr); + uint32_t v =3D qtest_in(s, "inl", addr); + + return qtest_big_endian(s) ? bswap32(v) : v; } =20 static void qtest_write(QTestState *s, const char *cmd, uint64_t addr, --=20 2.52.0 From nobody Mon Feb 9 07:39:35 2026 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=1767977639; cv=none; d=zohomail.com; s=zohoarc; b=GPtBQ4ARuGj9SyZbSbkoYvh5BxV34rWKwOW06FeQGNHDQ7vxvHYlTb1m9PJ++0Z+adJoO9Nvp29vOmJ2orKXBzp2poB88U2ud2EaenhlK68dGakoJycSlQMInQAjrwBz3beGcayeknez8L2ud/3Iw2zERTs5tBTnx6A1i4tVgDI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1767977639; 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=e3vBt+/cHvUwaWL5WGQ08yAwhNp1rybGH7qjumTtzBQ=; b=gxYdmjRMQQP+BjA8xhpVM9Hg7G3xYvzpBVAr1iGhydx3TCGemOPxdZnakmvYljFgBBbWze+bwN3toLW6KZWMq8z8+hFYK6d2CMSGr7JHiYi37iokkyXfpWs7Bfn/gtjhsmn9MzXo/gPL0ZMVUuAncq9BIatN/hMgxmOumWqdDz4= 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= (p=none dis=none) Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1767977639710880.8173435199601; Fri, 9 Jan 2026 08:53:59 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1veFjz-0001By-93; Fri, 09 Jan 2026 11:53:35 -0500 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 ) id 1veFjw-0000pb-Iq for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:32 -0500 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1veFju-0007ds-RR for qemu-devel@nongnu.org; Fri, 09 Jan 2026 11:53:32 -0500 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-4779ce2a624so37114835e9.2 for ; Fri, 09 Jan 2026 08:53:30 -0800 (PST) Received: from localhost.localdomain (88-187-86-199.subs.proxad.net. [88.187.86.199]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-47d8717d9e7sm64371435e9.8.2026.01.09.08.53.28 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 09 Jan 2026 08:53:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767977609; x=1768582409; 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=e3vBt+/cHvUwaWL5WGQ08yAwhNp1rybGH7qjumTtzBQ=; b=djh6PBhBz45sTjRU8BFDv8UsAi66hWzggJBYDTBXiFjoCUXtVJCoJ9QBUDj5AOT1jk S+j1pnTrBLZtQbf+owEyEQIZ/OYsGTjUeYvLgQdE0uFOfMfjMuRSRwWt/9Rubbr471ZP a9Z3K3i4zHuYS5ImONeUCJ6gDFuQ1NAerKa8B7+WNspgCnh2eJ5wAHixDO+f//QQz0/D p9zkGRINC5U3Cxj7KuoTOg0O2tOKgDRgZHsbl7ky+ejlqp31+tVvWknBNVVQEk8k29Jr drhXCFyH2CcFAzKqVoa+Sc0oE5HmNbVg0c+ojM2V4fczsIhqciJlR09yIZeJvCtsV0SU M01w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767977609; x=1768582409; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=e3vBt+/cHvUwaWL5WGQ08yAwhNp1rybGH7qjumTtzBQ=; b=onzloj7UPK4Y6qd8d2zxJOK7s6e5fyZ9eQpjmPhAWqnNiqGkFU4s1Fya7sgpAW6MaJ 3e1tzv1Agu92lYtk0gjZLG0tjuy+/ONF9A023s6swMilz97GFoNL4lFa7bqZAEa0HYY8 /arTN8Olu4ZxpuxXS7014WdSffUIA73Sxbwx/r7QjF+sCGQzCmxZKER+ZUfZxkIXNH59 YqmVwyNhRrtE19oTOfSNc9g5pPq3puK4NytbBpBy+CaeLCh9vTyRhWIU2mRF1gEw0DTo WCh3HrPs+ohZgzEMKNaEt5lASmboCKpQwwbxBLS8mwkfeh0WQWF4pYr9MmqJvLIfsgwC UFEw== X-Gm-Message-State: AOJu0Yyk+hEt3Wjv/MCQUFI5GC6CSdNO4DfaWP0dCbLYXEjcERqJToZJ 4eTFEoBR1psHsT/Ed7a1URikUnKFgqw62bjWpj1d+PdSfOZGxC7SYRnUm1k50KhS6s+R9JQvjVu Z2zYSKJs= X-Gm-Gg: AY/fxX7lwfK3IlnakDyI3elBxR53gaIoLqfv7ypcxBmzVl0paBMc25XK2mNCw1esHcC AZOCGnAkgFmMMT0KaP08096AP7rofzgd2gpkGcHu/UhtBMUIg9+e4UVEIrB6yoSUrExGdvgfd9y FMyA/anaGpQVG04cbEb49OUKFKwkL+XSY/QjN7kUKL46fumLEVDrzD3IrDZIeKPr7ZBZqKZ9kuM 5rUAbo+dlM9hHRf29lyJu0rUwS1rIErxZlkxIc/dHVIsvkcw9H15LMS0hbsEJ5cue/QW8gDD29i OdN95uhNDoUes7ehDgHMmqoBr1uS1wWIT+FQ0xFIqn24cqIzHSrqzJ3apNuhjzJkj0ZP1HKZmTr YUo0LAfA1HPZlnlGyRkuGFNjmnPOBP/mJAkPA4+g7rY3O9ht6tXDJMlOgX86lnZ0VV4UlpAPZxM 1vbeHD3sLq+s4Ukclp0YYefkAUali9zLyTjwDzogaZZHbxx9rIldPeyb9m5BszK+VGpaiG8Cg= X-Google-Smtp-Source: AGHT+IGCVZbMvLRIbuyJGj9IbF4psjfUtUVxpsF65dwdkbeSXvxQVCHq7Fi4VJ9xCSVcK+G7I3kogA== X-Received: by 2002:a05:600c:a106:b0:47d:73a4:45a7 with SMTP id 5b1f17b1804b1-47d84b3badfmr115007595e9.24.1767977609060; Fri, 09 Jan 2026 08:53:29 -0800 (PST) From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= To: qemu-devel@nongnu.org Cc: Pierrick Bouvier , Peter Xu , Richard Henderson , Paolo Bonzini , Anton Johansson , Manos Pitsidianakis Subject: [PATCH v5 22/22] system/ioport: Do not open-code address_space_ld/st_le() methods Date: Fri, 9 Jan 2026 17:50:58 +0100 Message-ID: <20260109165058.59144-23-philmd@linaro.org> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260109165058.59144-1-philmd@linaro.org> References: <20260109165058.59144-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 (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::331; envelope-from=philmd@linaro.org; helo=mail-wm1-x331.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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-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: 1767977641826158500 When a variable size is known, prefer the address_space_ld/st() API. Keep address_space_read/write() for blobs. Signed-off-by: Philippe Mathieu-Daud=C3=A9 Reviewed-by: Richard Henderson --- system/ioport.c | 32 ++++++++++++-------------------- 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/system/ioport.c b/system/ioport.c index 4b94f2f8111..9209bff2eab 100644 --- a/system/ioport.c +++ b/system/ioport.c @@ -62,58 +62,50 @@ const MemoryRegionOps unassigned_io_ops =3D { void cpu_outb(uint32_t addr, uint8_t val) { trace_cpu_out(addr, 'b', val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - &val, 1); + address_space_stb(&address_space_io, addr, val, + MEMTXATTRS_UNSPECIFIED, NULL); } =20 void cpu_outw(uint32_t addr, uint16_t val) { - uint8_t buf[2]; - trace_cpu_out(addr, 'w', val); - stw_le_p(buf, val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - buf, 2); + address_space_stw_le(&address_space_io, addr, val, + MEMTXATTRS_UNSPECIFIED, NULL); } =20 void cpu_outl(uint32_t addr, uint32_t val) { - uint8_t buf[4]; - trace_cpu_out(addr, 'l', val); - stl_le_p(buf, val); - address_space_write(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - buf, 4); + address_space_stl_le(&address_space_io, addr, val, + MEMTXATTRS_UNSPECIFIED, NULL); } =20 uint8_t cpu_inb(uint32_t addr) { uint8_t val; =20 - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, - &val, 1); + val =3D address_space_ldub(&address_space_io, addr, + MEMTXATTRS_UNSPECIFIED, NULL); trace_cpu_in(addr, 'b', val); return val; } =20 uint16_t cpu_inw(uint32_t addr) { - uint8_t buf[2]; uint16_t val; =20 - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, bu= f, 2); - val =3D lduw_le_p(buf); + val =3D address_space_lduw_le(&address_space_io, addr, + MEMTXATTRS_UNSPECIFIED, NULL); trace_cpu_in(addr, 'w', val); return val; } =20 uint32_t cpu_inl(uint32_t addr) { - uint8_t buf[4]; uint32_t val; =20 - address_space_read(&address_space_io, addr, MEMTXATTRS_UNSPECIFIED, bu= f, 4); - val =3D ldl_le_p(buf); + val =3D address_space_ldl_le(&address_space_io, addr, + MEMTXATTRS_UNSPECIFIED, NULL); trace_cpu_in(addr, 'l', val); return val; } --=20 2.52.0