From nobody Sat Nov 15 05:35:27 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1755491216; cv=none; d=zohomail.com; s=zohoarc; b=L1pZCeflG8yC0QocQBpODHT9ec5CNEvLjGwojoNAf6WKkBXqHLdBsnlary+D0dNmJBa/XoPX2Jov2NLjeY6DS0tDFikGZGI5kh1jYX51Q5JZK+G9LPGHuBGekh6ShpKEams1e1W4kS0g7Qt3fwgdoaYKo36C7UvjKSIkXQrDEoc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755491216; h=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=64+ahYFh4IwC51HUbhtOgwf0sNLEsCS04TzU9ll5HPo=; b=cHrRaxupr7sc7xp8Tvpq0dgHXaegA+j1uYi0BdiKrZt9kSBqxUeKVgK+w7S2w5eWq5mybsMPkO6UQqdtlSWjG+WK4uZIYH2udBGq01D4/Qpt4AfbD8m1b9NZilJJL6+VQgZdko7I0ezHoWlTD2ja3Ro+Kal8MY1TsQvjipw9pzw= 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 1755491216870600.4344749683244; Sun, 17 Aug 2025 21:26:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1unrRd-0000XZ-AT; Mon, 18 Aug 2025 00:26:05 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unrG7-0005nm-NO for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:12 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1unrG4-0002Bw-Dl for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:10 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-244581caca6so27580605ad.2 for ; Sun, 17 Aug 2025 21:14:08 -0700 (PDT) Received: from localhost.localdomain ([206.83.122.207]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3232f8c8e4bsm5498344a91.2.2025.08.17.21.14.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Aug 2025 21:14:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755490447; x=1756095247; 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=64+ahYFh4IwC51HUbhtOgwf0sNLEsCS04TzU9ll5HPo=; b=YtX+rVXs+nLRp2Wj6iuSD2Dhs0COJkCZQI9IT1CEFM8ekwBJwJZyUloas/s4LeDxH4 XS/NvSmVpDubciR90rr6K3/ceQBwSgqJUZOruQLnPDMdBCLDbhJ2VEgShI6Ekq/UuRO2 HC3NTVtppikhMFx5sjztVAc7bp91Dj0mMeNljlNh1b0matbPUsjtzhQtPkR2SBLYuPmT 5vWshzRFan4jFeCKTRaTonSYVPGMgU2Q1RAR/45EBuMoGuDBGzsUgqHdQVyIIWcW1Ukt 5MLEpUx8bEC2kpljt0xWbbg+OWhshwF1PIVDKiZQyzpL9R8qRrc173A2Aj+Ww4vz1Ffp frbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755490447; x=1756095247; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=64+ahYFh4IwC51HUbhtOgwf0sNLEsCS04TzU9ll5HPo=; b=NvaihxmaonoNXvZiK4fkZTqVBLlxKGkE2W1h/LcLxCNQg13U+NRfMg0qFs0FYIWJK+ hscoYjYv2VpnHKxxROr+KFSC921Py35CUQOWD1h5cdrh56/LeDSFFZdz07e3U87aQbzJ 5D+Fm2Bv+bJka+wIdX9pbFNYNWk/lTpQKqzBW5l+FwQY+XGO53Idz3CxlcvNxqcimwtM ggRmK+5o7soN+h0PRUekhUWrnLZRyRX46hfh1PVZEJ9uhGzrGZJLxQmzsbmVOWXETNYO AB/pHnvINojGaSO3GOPr/b2hpad5IDAHrkNtN64q2D4kooTPAjkJZJnRquyqUOnZ9tCF BWdw== X-Gm-Message-State: AOJu0YynPvy+UDnGIHHJ+JfRidSCuYe7qRbKccO5awzIYf5qdqxVktQo CiO66M8XGL/X+mzzGuV3zpt2UIeR9Lbc3fAEQWgKaBPhd0LIU64K/kuDu80rV6hqYO21E+djkCH 7oERfPyw= X-Gm-Gg: ASbGncsT6E7wnvmF98am3i/TxT9v2998fMd696JyIXI4/QqV7BvBi4ClbbfjLOG7uPL 4S7x7MG86pYwciqkYs7oY7XhIgrQlOdfX9A2WiVBnunJ9Jnqr2CJPrkroUuS7yoODFHxPcNr72O ya9AVTC3eKgwpGfRetWiXPJU2a2nDy1xzfZKkh4LFeJve9b+o7FzGcDkukRJRbxJugzHr69IJ+f F3K8hOxSLiaEGQATC7oKzCFB0d0JiuJuRrS4qdSYXmGd+Z7FZP+Nv9lzPUzvAX8FhKkVHRqOSf2 bXm3NtrZZE901TwN41d63TSlINQRnRA7v51eVOZ8Zl7IEMUHbd75vZF4UvECbQQjG2q5YABCtdW 1dzU2Qq2lCBFtuIBk2M8LVyxzT94tGkacHiWobFVCspISnGE= X-Google-Smtp-Source: AGHT+IHrAdJ7dmciH2Py8pMjYvuvihH+V7uvt4TmGTyTFH0eaKLqq4XSUopGi+zLQaPMCnM1Vm5iqQ== X-Received: by 2002:a17:903:1aae:b0:240:3909:5359 with SMTP id d9443c01a7336-2446d8dcccamr147351265ad.40.1755490446765; Sun, 17 Aug 2025 21:14:06 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: mads@ynddal.dk, agraf@csgraf.de, qemu-arm@nongnu.org, philmd@linaro.org Subject: [PATCH 1/7] target/arm: Introduce KVMID_AA64_SYS_REG64 Date: Mon, 18 Aug 2025 14:13:48 +1000 Message-ID: <20250818041354.2393041-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250818041354.2393041-1-richard.henderson@linaro.org> References: <20250818041354.2393041-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62e; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62e.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: 1755491218642124100 Content-Type: text/plain; charset="utf-8" Allow us to create kvm ids directly, rather than going through ENCODE_AA64_CP_REG + cpreg_to_kvm_id. Signed-off-by: Richard Henderson Reviewed-by: Mads Ynddal Tested-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/kvm-consts.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/target/arm/kvm-consts.h b/target/arm/kvm-consts.h index c44d23dbe7..90d792ad42 100644 --- a/target/arm/kvm-consts.h +++ b/target/arm/kvm-consts.h @@ -180,4 +180,15 @@ MISMATCH_CHECK(CP_REG_ARM64_SYSREG_OP2_SHIFT, KVM_REG_= ARM64_SYSREG_OP2_SHIFT); =20 #undef MISMATCH_CHECK =20 +#define KVMID_AA64_SYS_REG_(crn, crm, op0, op1, op2) \ + (CP_REG_AA64_MASK | CP_REG_ARM64_SYSREG | \ + ((op0) << CP_REG_ARM64_SYSREG_OP0_SHIFT) | \ + ((op1) << CP_REG_ARM64_SYSREG_OP1_SHIFT) | \ + ((crn) << CP_REG_ARM64_SYSREG_CRN_SHIFT) | \ + ((crm) << CP_REG_ARM64_SYSREG_CRM_SHIFT) | \ + ((op2) << CP_REG_ARM64_SYSREG_OP2_SHIFT)) + +#define KVMID_AA64_SYS_REG64(crn, crm, op0, op1, op2) \ + (KVMID_AA64_SYS_REG_(crn, crm, op0, op1, op2) | CP_REG_SIZE_U64) + #endif --=20 2.43.0 From nobody Sat Nov 15 05:35:27 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1755491119; cv=none; d=zohomail.com; s=zohoarc; b=PEBxZje0BQGXkiThZsxYEtWBByApTPxBMlNfefcuYfn1cWwj1/pGsgzwqW3c/NBdEwyv/5w03LamtrcSqbdgzabQFtPmHRJxKbMV0kuBrZTA2fRiPxeNSjfNfyiJm0RAqfPpLx4mamIKgksNlyV+zQGSPEbsPHraikWvTD6IfZY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755491119; h=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=bTfdSLA0aqt0pUrLTWLPJvwrF5/GVtbYLzuNkuYs9EQ=; b=OJtUBBTwpTBwVmIiIhnAn3z4yXqzZXYSUTjhs6suowUwEQn3sbe8gzJrBkmpJJc5/IaKxmkxtloM7bsmbNeQ/ju089MOpp6xt33q3N4ZHtg8qBYxfKCT87ApKpbSZctiRixoNF88DRL1KD9Av2Pkhn+Cdrbm8YObWWRoKGIEsuw= 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 1755491119445312.5821873291326; Sun, 17 Aug 2025 21:25:19 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1unrQN-00081w-E9; Mon, 18 Aug 2025 00:24:48 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unrGA-0005oP-AR for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:15 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1unrG8-0002CH-L7 for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:14 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-32326e202e0so2835410a91.2 for ; Sun, 17 Aug 2025 21:14:12 -0700 (PDT) Received: from localhost.localdomain ([206.83.122.207]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3232f8c8e4bsm5498344a91.2.2025.08.17.21.14.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Aug 2025 21:14:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755490451; x=1756095251; 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=bTfdSLA0aqt0pUrLTWLPJvwrF5/GVtbYLzuNkuYs9EQ=; b=JPKdbpdw9g0Qdzy3y3j+GAwW14uskGKUxjr8b6FVRfcXLgOcuwIgE9eLzxI61dTRMx 2b7Uj4M6PPbMlbr+MmOPiML+IZSYn2lNN92FpKmC3H7s/a9nNGDP9srQYwJRkWU246tT YsHPsu+p4Z6Y/bFWIdkog+YD+H13a6+3nD3ARy9YmP34p69NXV7bg3cZEphWOTQau3ya 3/Z1Xb//Dx8ZD3TUFEmDqXgsN3c/HEx5BAZPXDYc5Ji4pm4u7U2nXSgPS2SndESdNTZX KTVxwGnBMBXB63VGmRCK1DbxZtY/GV2Rla9BDDVH5l4Eatyi84hkcANEBfCRcQVxxqhM HPjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755490451; x=1756095251; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bTfdSLA0aqt0pUrLTWLPJvwrF5/GVtbYLzuNkuYs9EQ=; b=dWpgxL23+IKt/AAJwJfthNgYrKbwW2HN8zC6QLYennGT82JIZWKpPx607NyXK19xUz QNKq5nnpma7YV2eayZh5i5Bzjy/NJLH9XpOmgqBkueB9XuiG1xifK7yB2u7o2nHsD279 Gi7C4D9vMzXzeFZBWaw7d4ZZ8iMHT8PDr7KZGZUwuKd3IlEJpg+Tk4tdrtkf80gkW1aq 2PWq6t1x/YIu7k63yjZM4Qrzgw9S1pWG7KIbd5sDxadFK0kcIuH3pii4AiY4DBpIPgmr icuSKn+ijLuew0shJ1DzMKui4KpM0KXQjmZQIVXkEb73aBfUdhyu3+/Dhk6eSgm1Yr6B hpGQ== X-Gm-Message-State: AOJu0YygN5sHtETGStKUB6RbifuoRLX3+seq+f+zEMzNMSUEEJQBkODl 6bODSy7esoLa+RVuvzU7HLor/H7PsTr81Q6AlQFUWuPKsfhfkq3iRRZrIlgDEZYYknfTPxUnL9o Ol92P6gY= X-Gm-Gg: ASbGncskW39DCqn/rcP7oPI0jlvnBSMrpyDgAWzmo5UMwN8HNhR+f+tN08o6QyeQbFM +Voe/CvYtdhGFGLTje5NNnIm5uREJsX0dWnTAQHhbgBEhqqmB0cOPpylfF4qTVB9Ehw7Z/DQMSf WSkumQE7V1crSlllKr3EJ0ZZZXvHvo48X9Nt6eIFptj8jS5saWoLicue4JTj5btrEcAHJMQzfdr cB9iei86NNEwlegV+7wwBZc7aYcpVV1AyhYJEEKi0T+QrmFKX+YntKyIBOeAWRIdgzimF85wFEH oawlKC/LAHinsyht5LI/bCHvt5/7T4zV428V85aKyOAp/GI/Fc32ITLRP43+PV6+RSe/w7Yw7JS H5bRZfJMLDTQpzoUgdbIyaHPoFMgWErcQhOWrxQTVJ3BvjWU= X-Google-Smtp-Source: AGHT+IGdErE1IGOIXT4wRJMngyZK5ECh/vUtMFj3GcPqVhvfGDdYH+rSH5BFl9vY+Qz16lOzFXg96g== X-Received: by 2002:a17:90b:1dca:b0:321:87fa:e1e8 with SMTP id 98e67ed59e1d1-3234db6f096mr10302724a91.2.1755490450817; Sun, 17 Aug 2025 21:14:10 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: mads@ynddal.dk, agraf@csgraf.de, qemu-arm@nongnu.org, philmd@linaro.org Subject: [PATCH 2/7] target/arm: Move compare_u64 to helper.c Date: Mon, 18 Aug 2025 14:13:49 +1000 Message-ID: <20250818041354.2393041-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250818041354.2393041-1-richard.henderson@linaro.org> References: <20250818041354.2393041-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.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: 1755491121096116600 Content-Type: text/plain; charset="utf-8" We will use this function beyond kvm.c. Signed-off-by: Richard Henderson Reviewed-by: Mads Ynddal Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/cpregs.h | 3 +++ target/arm/helper.c | 11 +++++++++++ target/arm/kvm.c | 11 ----------- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/target/arm/cpregs.h b/target/arm/cpregs.h index c9506aa6d5..2854960c08 100644 --- a/target/arm/cpregs.h +++ b/target/arm/cpregs.h @@ -1189,4 +1189,7 @@ static inline bool arm_cpreg_traps_in_nv(const ARMCPR= egInfo *ri) (arm_is_secure(_env) && !arm_el_is_aa64((_env), 3))= , \ (_val)) =20 +/* Compare uint64_t for qsort and bsearch. */ +int compare_u64(const void *a, const void *b); + #endif /* TARGET_ARM_CPREGS_H */ diff --git a/target/arm/helper.c b/target/arm/helper.c index 0c1299ff84..d230f9e766 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -40,6 +40,17 @@ =20 static void switch_mode(CPUARMState *env, int mode); =20 +int compare_u64(const void *a, const void *b) +{ + if (*(uint64_t *)a > *(uint64_t *)b) { + return 1; + } + if (*(uint64_t *)a < *(uint64_t *)b) { + return -1; + } + return 0; +} + uint64_t raw_read(CPUARMState *env, const ARMCPRegInfo *ri) { assert(ri->fieldoffset); diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 6672344855..9e569eff65 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -718,17 +718,6 @@ void kvm_arm_register_device(MemoryRegion *mr, uint64_= t devid, uint64_t group, memory_region_ref(kd->mr); } =20 -static int compare_u64(const void *a, const void *b) -{ - if (*(uint64_t *)a > *(uint64_t *)b) { - return 1; - } - if (*(uint64_t *)a < *(uint64_t *)b) { - return -1; - } - return 0; -} - /* * cpreg_values are sorted in ascending order by KVM register ID * (see kvm_arm_init_cpreg_list). This allows us to cheaply find --=20 2.43.0 From nobody Sat Nov 15 05:35:27 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1755490858; cv=none; d=zohomail.com; s=zohoarc; b=lRsaJGT3ayblARL6ilhUIcWe6TpaPNjOiIY677zUcpx0JGMV6sZ+mHPNqJyowWU1cV9ZeXRZEzNYxkri9emmZVQTbpFhfXnkz3bDazSVDF8VSfZF9ChB6fU3vaZaKz7GnlEa8e9N66mt+WtXTTCxSBIhfOaX/2LS3ZruLrdSzzk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755490858; h=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=R2+nV0YfiHa2rAN0jtaoq5Xn/wQINVnz22GUz0HS3IA=; b=hCuhhgKaKd+kHuBVO8eExFPG61XXWEIny0lJ/OvBT5IGmzi8qAI6D9RZG5NwFQbA2gJLGCWrdo1NjDKeXthtqleBKTKpvf1WC8Jsy+yExuzU2kjxpmzG2W/Ng7z2BpnfTB1eTIRWBXI6FquhqTJgFoBLFVhuK2Aiw03Crk76D2Y= 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 1755490858417482.88027056852957; Sun, 17 Aug 2025 21:20:58 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1unrMB-00071Q-Nv; Mon, 18 Aug 2025 00:20:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unrGG-0005p6-9b for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:27 -0400 Received: from mail-pj1-x102b.google.com ([2607:f8b0:4864:20::102b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1unrGD-0002Cl-2s for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:19 -0400 Received: by mail-pj1-x102b.google.com with SMTP id 98e67ed59e1d1-323267bcee7so4441143a91.1 for ; Sun, 17 Aug 2025 21:14:16 -0700 (PDT) Received: from localhost.localdomain ([206.83.122.207]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3232f8c8e4bsm5498344a91.2.2025.08.17.21.14.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Aug 2025 21:14:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755490455; x=1756095255; 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=R2+nV0YfiHa2rAN0jtaoq5Xn/wQINVnz22GUz0HS3IA=; b=gtFAanFQFN/8/92AwnqnWJlP2mHdKOIoEj94Kt8qViMGT9ysViQSmk10i5Tf9PNnW1 KY0+oFBbzOerHCx5m8z/6Nw3CRtwbWbC0Kfhq3YO/arUld+FjY1BIgyFS5Gt6AQqCkre TGRIrlMEy/tRPDEtIlVD5WR50NIe5EDxIldOiEHXzjLppJJ6YOS0A2ZTpTlr/mpMheE7 UgKeZUmx3v+t919U0f8vYILvtK/SlFzvqP1/4aEc1OSsklIwOk3CyiN/XanI4hss27dm OylYTT2iGO4cRWMT9ypOdFn87dYKxBNaWkOFAHXEoZCD+6svJZplcUF8w4ejr/qQ+bWk 8OUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755490455; x=1756095255; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=R2+nV0YfiHa2rAN0jtaoq5Xn/wQINVnz22GUz0HS3IA=; b=w/GUUxX2O01rLzlYOLnGm7LQ+XQ5oQnmLg76t/O4TR9cjEshEGRqMdFwcLiQacoLjg m87+7dMvmjI3/vfNJ0bEaveern6JGf/VtsUqMARPm2TeaydNIdh8YqsIXhrfR5VwTfvs kdIcTDdgL4bmMfjs3b+wZS5CYpYD8j7XbZ9TXGYG9vBjxD/i2EHRY9EfnL9eZR+o83H4 sLTwEDu+h7bimp0cTQUSuf3yoPun5LAhEDnCqVmbIwSlGB1ML/cku0l4uTC1SbdxDVty RF12A76s9UDc//jdOuLaEeJn1teQXVnRwNntiNArJvYpC4ICdyzdyqn1uMxszthlE4d8 Tz8A== X-Gm-Message-State: AOJu0YyD9kWB7Qs4D2rhnp8T/2ABvqbXOE3NGFT/+qhtJqUF0VUUZMFJ 2BgiHEmtix+wN3BWBcVAlQz+PsKW3KPHQFciyz5XDPXZ0vd6fO6W2Nf5HixLgvaov1QXp+Qq/nK XIdLvNpk= X-Gm-Gg: ASbGncsvNSYb6+EEk9muX4UQjCehDYIJCmMPB7zqlHVMLA5NBCpCeWQiG2YdfgDOspj 1FmryAxBuDYxTyJs0Vb5qVFSo2RnvgrV2rlPmFp01yhL5EbW22GDQMvd1zqDn9uvXNpNx1ub/47 tCKTaCGYeGGM9FXUWQLfOCfMmMF12u3drie/TF4PnUvIbcpOWdN8o0Ww7ncoV5T8a4Cnr+sU1PL JPf74XPmMFRzpzado6UGVhlSmxNq88lBcCnfbrBrGCzGyhIb2HR4bHwOx/++lXrfQClQhhWKI0k 8O4nAdn10/I0O3iS+X6mpC1hjhH8Ninym6ZN6BZKcenOyIvmuP+1Oje4Qna1rQeKiTv/gvKjZfa 4WvYXl+qlwdgtm3IqmGXOMgnqWFiRnIEFq4Z81rUiL/c/pyo= X-Google-Smtp-Source: AGHT+IFzkbsdg0Lq6v5LrS2LBwx2rSLakrYFKHwWSxFDNoj8ZH1o2x02q10TWBONg3g6irXJfNpzCA== X-Received: by 2002:a17:90a:f94e:b0:311:ea13:2e70 with SMTP id 98e67ed59e1d1-32341ed2b23mr18088957a91.14.1755490455050; Sun, 17 Aug 2025 21:14:15 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: mads@ynddal.dk, agraf@csgraf.de, qemu-arm@nongnu.org, philmd@linaro.org Subject: [PATCH 3/7] target/arm/hvf: Split out sysreg.c.inc Date: Mon, 18 Aug 2025 14:13:50 +1000 Message-ID: <20250818041354.2393041-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250818041354.2393041-1-richard.henderson@linaro.org> References: <20250818041354.2393041-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102b; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102b.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, UPPERCASE_50_75=0.008 autolearn=no 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: 1755490862565116600 Content-Type: text/plain; charset="utf-8" Move the list of supported sysregs to a reuseable file. Signed-off-by: Richard Henderson Reviewed-by: Mads Ynddal Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/hvf/hvf.c | 147 ++---------------------------------- target/arm/hvf/sysreg.c.inc | 146 +++++++++++++++++++++++++++++++++++ 2 files changed, 152 insertions(+), 141 deletions(-) create mode 100644 target/arm/hvf/sysreg.c.inc diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index 47b0cd3a35..f0e4b75e6a 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -403,150 +403,15 @@ struct hvf_sreg_match { uint32_t cp_idx; }; =20 +#define DEF_SYSREG(HVF_ID, crn, crm, op0, op1, op2) \ + { HVF_ID, HVF_SYSREG(crn, crm, op0, op1, op2) }, + static struct hvf_sreg_match hvf_sreg_match[] =3D { - { HV_SYS_REG_DBGBVR0_EL1, HVF_SYSREG(0, 0, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR0_EL1, HVF_SYSREG(0, 0, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR0_EL1, HVF_SYSREG(0, 0, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR0_EL1, HVF_SYSREG(0, 0, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR1_EL1, HVF_SYSREG(0, 1, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR1_EL1, HVF_SYSREG(0, 1, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR1_EL1, HVF_SYSREG(0, 1, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR1_EL1, HVF_SYSREG(0, 1, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR2_EL1, HVF_SYSREG(0, 2, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR2_EL1, HVF_SYSREG(0, 2, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR2_EL1, HVF_SYSREG(0, 2, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR2_EL1, HVF_SYSREG(0, 2, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR3_EL1, HVF_SYSREG(0, 3, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR3_EL1, HVF_SYSREG(0, 3, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR3_EL1, HVF_SYSREG(0, 3, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR3_EL1, HVF_SYSREG(0, 3, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR4_EL1, HVF_SYSREG(0, 4, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR4_EL1, HVF_SYSREG(0, 4, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR4_EL1, HVF_SYSREG(0, 4, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR4_EL1, HVF_SYSREG(0, 4, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR5_EL1, HVF_SYSREG(0, 5, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR5_EL1, HVF_SYSREG(0, 5, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR5_EL1, HVF_SYSREG(0, 5, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR5_EL1, HVF_SYSREG(0, 5, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR6_EL1, HVF_SYSREG(0, 6, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR6_EL1, HVF_SYSREG(0, 6, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR6_EL1, HVF_SYSREG(0, 6, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR6_EL1, HVF_SYSREG(0, 6, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR7_EL1, HVF_SYSREG(0, 7, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR7_EL1, HVF_SYSREG(0, 7, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR7_EL1, HVF_SYSREG(0, 7, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR7_EL1, HVF_SYSREG(0, 7, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR8_EL1, HVF_SYSREG(0, 8, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR8_EL1, HVF_SYSREG(0, 8, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR8_EL1, HVF_SYSREG(0, 8, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR8_EL1, HVF_SYSREG(0, 8, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR9_EL1, HVF_SYSREG(0, 9, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR9_EL1, HVF_SYSREG(0, 9, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR9_EL1, HVF_SYSREG(0, 9, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR9_EL1, HVF_SYSREG(0, 9, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR10_EL1, HVF_SYSREG(0, 10, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR10_EL1, HVF_SYSREG(0, 10, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR10_EL1, HVF_SYSREG(0, 10, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR10_EL1, HVF_SYSREG(0, 10, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR11_EL1, HVF_SYSREG(0, 11, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR11_EL1, HVF_SYSREG(0, 11, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR11_EL1, HVF_SYSREG(0, 11, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR11_EL1, HVF_SYSREG(0, 11, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR12_EL1, HVF_SYSREG(0, 12, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR12_EL1, HVF_SYSREG(0, 12, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR12_EL1, HVF_SYSREG(0, 12, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR12_EL1, HVF_SYSREG(0, 12, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR13_EL1, HVF_SYSREG(0, 13, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR13_EL1, HVF_SYSREG(0, 13, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR13_EL1, HVF_SYSREG(0, 13, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR13_EL1, HVF_SYSREG(0, 13, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR14_EL1, HVF_SYSREG(0, 14, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR14_EL1, HVF_SYSREG(0, 14, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR14_EL1, HVF_SYSREG(0, 14, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR14_EL1, HVF_SYSREG(0, 14, 2, 0, 7) }, - - { HV_SYS_REG_DBGBVR15_EL1, HVF_SYSREG(0, 15, 2, 0, 4) }, - { HV_SYS_REG_DBGBCR15_EL1, HVF_SYSREG(0, 15, 2, 0, 5) }, - { HV_SYS_REG_DBGWVR15_EL1, HVF_SYSREG(0, 15, 2, 0, 6) }, - { HV_SYS_REG_DBGWCR15_EL1, HVF_SYSREG(0, 15, 2, 0, 7) }, - -#ifdef SYNC_NO_RAW_REGS - /* - * The registers below are manually synced on init because they are - * marked as NO_RAW. We still list them to make number space sync easi= er. - */ - { HV_SYS_REG_MDCCINT_EL1, HVF_SYSREG(0, 2, 2, 0, 0) }, - { HV_SYS_REG_MIDR_EL1, HVF_SYSREG(0, 0, 3, 0, 0) }, - { HV_SYS_REG_MPIDR_EL1, HVF_SYSREG(0, 0, 3, 0, 5) }, - { HV_SYS_REG_ID_AA64PFR0_EL1, HVF_SYSREG(0, 4, 3, 0, 0) }, -#endif - { HV_SYS_REG_ID_AA64PFR1_EL1, HVF_SYSREG(0, 4, 3, 0, 1) }, - { HV_SYS_REG_ID_AA64DFR0_EL1, HVF_SYSREG(0, 5, 3, 0, 0) }, - { HV_SYS_REG_ID_AA64DFR1_EL1, HVF_SYSREG(0, 5, 3, 0, 1) }, - { HV_SYS_REG_ID_AA64ISAR0_EL1, HVF_SYSREG(0, 6, 3, 0, 0) }, - { HV_SYS_REG_ID_AA64ISAR1_EL1, HVF_SYSREG(0, 6, 3, 0, 1) }, -#ifdef SYNC_NO_MMFR0 - /* We keep the hardware MMFR0 around. HW limits are there anyway */ - { HV_SYS_REG_ID_AA64MMFR0_EL1, HVF_SYSREG(0, 7, 3, 0, 0) }, -#endif - { HV_SYS_REG_ID_AA64MMFR1_EL1, HVF_SYSREG(0, 7, 3, 0, 1) }, - { HV_SYS_REG_ID_AA64MMFR2_EL1, HVF_SYSREG(0, 7, 3, 0, 2) }, - /* Add ID_AA64MMFR3_EL1 here when HVF supports it */ - - { HV_SYS_REG_MDSCR_EL1, HVF_SYSREG(0, 2, 2, 0, 2) }, - { HV_SYS_REG_SCTLR_EL1, HVF_SYSREG(1, 0, 3, 0, 0) }, - { HV_SYS_REG_CPACR_EL1, HVF_SYSREG(1, 0, 3, 0, 2) }, - { HV_SYS_REG_TTBR0_EL1, HVF_SYSREG(2, 0, 3, 0, 0) }, - { HV_SYS_REG_TTBR1_EL1, HVF_SYSREG(2, 0, 3, 0, 1) }, - { HV_SYS_REG_TCR_EL1, HVF_SYSREG(2, 0, 3, 0, 2) }, - - { HV_SYS_REG_APIAKEYLO_EL1, HVF_SYSREG(2, 1, 3, 0, 0) }, - { HV_SYS_REG_APIAKEYHI_EL1, HVF_SYSREG(2, 1, 3, 0, 1) }, - { HV_SYS_REG_APIBKEYLO_EL1, HVF_SYSREG(2, 1, 3, 0, 2) }, - { HV_SYS_REG_APIBKEYHI_EL1, HVF_SYSREG(2, 1, 3, 0, 3) }, - { HV_SYS_REG_APDAKEYLO_EL1, HVF_SYSREG(2, 2, 3, 0, 0) }, - { HV_SYS_REG_APDAKEYHI_EL1, HVF_SYSREG(2, 2, 3, 0, 1) }, - { HV_SYS_REG_APDBKEYLO_EL1, HVF_SYSREG(2, 2, 3, 0, 2) }, - { HV_SYS_REG_APDBKEYHI_EL1, HVF_SYSREG(2, 2, 3, 0, 3) }, - { HV_SYS_REG_APGAKEYLO_EL1, HVF_SYSREG(2, 3, 3, 0, 0) }, - { HV_SYS_REG_APGAKEYHI_EL1, HVF_SYSREG(2, 3, 3, 0, 1) }, - - { HV_SYS_REG_SPSR_EL1, HVF_SYSREG(4, 0, 3, 0, 0) }, - { HV_SYS_REG_ELR_EL1, HVF_SYSREG(4, 0, 3, 0, 1) }, - { HV_SYS_REG_SP_EL0, HVF_SYSREG(4, 1, 3, 0, 0) }, - { HV_SYS_REG_AFSR0_EL1, HVF_SYSREG(5, 1, 3, 0, 0) }, - { HV_SYS_REG_AFSR1_EL1, HVF_SYSREG(5, 1, 3, 0, 1) }, - { HV_SYS_REG_ESR_EL1, HVF_SYSREG(5, 2, 3, 0, 0) }, - { HV_SYS_REG_FAR_EL1, HVF_SYSREG(6, 0, 3, 0, 0) }, - { HV_SYS_REG_PAR_EL1, HVF_SYSREG(7, 4, 3, 0, 0) }, - { HV_SYS_REG_MAIR_EL1, HVF_SYSREG(10, 2, 3, 0, 0) }, - { HV_SYS_REG_AMAIR_EL1, HVF_SYSREG(10, 3, 3, 0, 0) }, - { HV_SYS_REG_VBAR_EL1, HVF_SYSREG(12, 0, 3, 0, 0) }, - { HV_SYS_REG_CONTEXTIDR_EL1, HVF_SYSREG(13, 0, 3, 0, 1) }, - { HV_SYS_REG_TPIDR_EL1, HVF_SYSREG(13, 0, 3, 0, 4) }, - { HV_SYS_REG_CNTKCTL_EL1, HVF_SYSREG(14, 1, 3, 0, 0) }, - { HV_SYS_REG_CSSELR_EL1, HVF_SYSREG(0, 0, 3, 2, 0) }, - { HV_SYS_REG_TPIDR_EL0, HVF_SYSREG(13, 0, 3, 3, 2) }, - { HV_SYS_REG_TPIDRRO_EL0, HVF_SYSREG(13, 0, 3, 3, 3) }, - { HV_SYS_REG_CNTV_CTL_EL0, HVF_SYSREG(14, 3, 3, 3, 1) }, - { HV_SYS_REG_CNTV_CVAL_EL0, HVF_SYSREG(14, 3, 3, 3, 2) }, - { HV_SYS_REG_SP_EL1, HVF_SYSREG(4, 1, 3, 4, 0) }, +#include "sysreg.c.inc" }; =20 +#undef DEF_SYSREG + int hvf_get_registers(CPUState *cpu) { ARMCPU *arm_cpu =3D ARM_CPU(cpu); diff --git a/target/arm/hvf/sysreg.c.inc b/target/arm/hvf/sysreg.c.inc new file mode 100644 index 0000000000..222698f1d1 --- /dev/null +++ b/target/arm/hvf/sysreg.c.inc @@ -0,0 +1,146 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ + +DEF_SYSREG(HV_SYS_REG_DBGBVR0_EL1, 0, 0, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR0_EL1, 0, 0, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR0_EL1, 0, 0, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR0_EL1, 0, 0, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR1_EL1, 0, 1, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR1_EL1, 0, 1, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR1_EL1, 0, 1, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR1_EL1, 0, 1, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR2_EL1, 0, 2, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR2_EL1, 0, 2, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR2_EL1, 0, 2, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR2_EL1, 0, 2, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR3_EL1, 0, 3, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR3_EL1, 0, 3, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR3_EL1, 0, 3, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR3_EL1, 0, 3, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR4_EL1, 0, 4, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR4_EL1, 0, 4, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR4_EL1, 0, 4, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR4_EL1, 0, 4, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR5_EL1, 0, 5, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR5_EL1, 0, 5, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR5_EL1, 0, 5, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR5_EL1, 0, 5, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR6_EL1, 0, 6, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR6_EL1, 0, 6, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR6_EL1, 0, 6, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR6_EL1, 0, 6, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR7_EL1, 0, 7, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR7_EL1, 0, 7, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR7_EL1, 0, 7, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR7_EL1, 0, 7, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR8_EL1, 0, 8, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR8_EL1, 0, 8, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR8_EL1, 0, 8, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR8_EL1, 0, 8, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR9_EL1, 0, 9, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR9_EL1, 0, 9, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR9_EL1, 0, 9, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR9_EL1, 0, 9, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR10_EL1, 0, 10, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR10_EL1, 0, 10, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR10_EL1, 0, 10, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR10_EL1, 0, 10, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR11_EL1, 0, 11, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR11_EL1, 0, 11, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR11_EL1, 0, 11, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR11_EL1, 0, 11, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR12_EL1, 0, 12, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR12_EL1, 0, 12, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR12_EL1, 0, 12, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR12_EL1, 0, 12, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR13_EL1, 0, 13, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR13_EL1, 0, 13, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR13_EL1, 0, 13, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR13_EL1, 0, 13, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR14_EL1, 0, 14, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR14_EL1, 0, 14, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR14_EL1, 0, 14, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR14_EL1, 0, 14, 2, 0, 7) + +DEF_SYSREG(HV_SYS_REG_DBGBVR15_EL1, 0, 15, 2, 0, 4) +DEF_SYSREG(HV_SYS_REG_DBGBCR15_EL1, 0, 15, 2, 0, 5) +DEF_SYSREG(HV_SYS_REG_DBGWVR15_EL1, 0, 15, 2, 0, 6) +DEF_SYSREG(HV_SYS_REG_DBGWCR15_EL1, 0, 15, 2, 0, 7) + +#ifdef SYNC_NO_RAW_REGS +/* + * The registers below are manually synced on init because they are + * marked as NO_RAW. We still list them to make number space sync easier. + */ +DEF_SYSREG(HV_SYS_REG_MDCCINT_EL1, 0, 2, 2, 0, 0) +DEF_SYSREG(HV_SYS_REG_MIDR_EL1, 0, 0, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_MPIDR_EL1, 0, 0, 3, 0, 5) +DEF_SYSREG(HV_SYS_REG_ID_AA64PFR0_EL1, 0, 4, 3, 0, 0) +#endif + +DEF_SYSREG(HV_SYS_REG_ID_AA64PFR1_EL1, 0, 4, 3, 0, 1) +DEF_SYSREG(HV_SYS_REG_ID_AA64DFR0_EL1, 0, 5, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_ID_AA64DFR1_EL1, 0, 5, 3, 0, 1) +DEF_SYSREG(HV_SYS_REG_ID_AA64ISAR0_EL1, 0, 6, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_ID_AA64ISAR1_EL1, 0, 6, 3, 0, 1) + +#ifdef SYNC_NO_MMFR0 +/* We keep the hardware MMFR0 around. HW limits are there anyway */ +DEF_SYSREG(HV_SYS_REG_ID_AA64MMFR0_EL1, 0, 7, 3, 0, 0) +#endif + +DEF_SYSREG(HV_SYS_REG_ID_AA64MMFR1_EL1, 0, 7, 3, 0, 1) +DEF_SYSREG(HV_SYS_REG_ID_AA64MMFR2_EL1, 0, 7, 3, 0, 2) +/* Add ID_AA64MMFR3_EL1 here when HVF supports it */ + +DEF_SYSREG(HV_SYS_REG_MDSCR_EL1, 0, 2, 2, 0, 2) +DEF_SYSREG(HV_SYS_REG_SCTLR_EL1, 1, 0, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_CPACR_EL1, 1, 0, 3, 0, 2) +DEF_SYSREG(HV_SYS_REG_TTBR0_EL1, 2, 0, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_TTBR1_EL1, 2, 0, 3, 0, 1) +DEF_SYSREG(HV_SYS_REG_TCR_EL1, 2, 0, 3, 0, 2) + +DEF_SYSREG(HV_SYS_REG_APIAKEYLO_EL1, 2, 1, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_APIAKEYHI_EL1, 2, 1, 3, 0, 1) +DEF_SYSREG(HV_SYS_REG_APIBKEYLO_EL1, 2, 1, 3, 0, 2) +DEF_SYSREG(HV_SYS_REG_APIBKEYHI_EL1, 2, 1, 3, 0, 3) +DEF_SYSREG(HV_SYS_REG_APDAKEYLO_EL1, 2, 2, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_APDAKEYHI_EL1, 2, 2, 3, 0, 1) +DEF_SYSREG(HV_SYS_REG_APDBKEYLO_EL1, 2, 2, 3, 0, 2) +DEF_SYSREG(HV_SYS_REG_APDBKEYHI_EL1, 2, 2, 3, 0, 3) +DEF_SYSREG(HV_SYS_REG_APGAKEYLO_EL1, 2, 3, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_APGAKEYHI_EL1, 2, 3, 3, 0, 1) + +DEF_SYSREG(HV_SYS_REG_SPSR_EL1, 4, 0, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_ELR_EL1, 4, 0, 3, 0, 1) +DEF_SYSREG(HV_SYS_REG_SP_EL0, 4, 1, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_AFSR0_EL1, 5, 1, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_AFSR1_EL1, 5, 1, 3, 0, 1) +DEF_SYSREG(HV_SYS_REG_ESR_EL1, 5, 2, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_FAR_EL1, 6, 0, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_PAR_EL1, 7, 4, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_MAIR_EL1, 10, 2, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_AMAIR_EL1, 10, 3, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_VBAR_EL1, 12, 0, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_CONTEXTIDR_EL1, 13, 0, 3, 0, 1) +DEF_SYSREG(HV_SYS_REG_TPIDR_EL1, 13, 0, 3, 0, 4) +DEF_SYSREG(HV_SYS_REG_CNTKCTL_EL1, 14, 1, 3, 0, 0) +DEF_SYSREG(HV_SYS_REG_CSSELR_EL1, 0, 0, 3, 2, 0) +DEF_SYSREG(HV_SYS_REG_TPIDR_EL0, 13, 0, 3, 3, 2) +DEF_SYSREG(HV_SYS_REG_TPIDRRO_EL0, 13, 0, 3, 3, 3) +DEF_SYSREG(HV_SYS_REG_CNTV_CTL_EL0, 14, 3, 3, 3, 1) +DEF_SYSREG(HV_SYS_REG_CNTV_CVAL_EL0, 14, 3, 3, 3, 2) +DEF_SYSREG(HV_SYS_REG_SP_EL1, 4, 1, 3, 4, 0) --=20 2.43.0 From nobody Sat Nov 15 05:35:27 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1755491195; cv=none; d=zohomail.com; s=zohoarc; b=MbzFSFqX+geKK4evs9lDHqXjrrflHg6hJDuOfK0ZfE50aYCFwMm2PxNsRwVuX3iRcQ9utPR/q5U+FajbKDmkae0tlCCjuDNPHTNToXNSlCXbI5c7fUf1xAFhPB7bzU6opS6jLigcncVfjuGtCoofk0/JPmTsRW9KB//Eq7Pt1C8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755491195; h=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=W0ZHX+tn8nkbaFtS2dHaq5l6wD0P0NOK8ivJm8HB/sE=; b=C9k78QXiq0XsQiMgFDGzTQ/LCmrCBROt5JTsUR5/SQqVZsHcOrEXuWKceue9oTE9sB9VDKgpJea0IxwUq470qrfMNlqUL0S3OoDo9xj1HFyq+EYIEmHbMHaplfxgLFjxWPDihmj0fJsbr/mut+8mQyWB3XHTx6LzyHNoWquOKHI= 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 1755491195617260.2645039211126; Sun, 17 Aug 2025 21:26:35 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1unrRc-0000Vg-MM; Mon, 18 Aug 2025 00:26:04 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unrGI-0005pD-95 for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:27 -0400 Received: from mail-pl1-x62d.google.com ([2607:f8b0:4864:20::62d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1unrGG-0002D5-In for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:22 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-24458317464so39367365ad.3 for ; Sun, 17 Aug 2025 21:14:20 -0700 (PDT) Received: from localhost.localdomain ([206.83.122.207]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3232f8c8e4bsm5498344a91.2.2025.08.17.21.14.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Aug 2025 21:14:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755490459; x=1756095259; 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=W0ZHX+tn8nkbaFtS2dHaq5l6wD0P0NOK8ivJm8HB/sE=; b=xFPfpr9FxLvXGAEf9XynyPbnTbYlqSJor1/JFgIXX1Ecom6WfN1I5s9LpTAxwF6X6l dBNcJk7a3uHE+6CsFQpeuQifwM9YHKekhRU1Pc6FFwUF51Ya2pfDepn0JG1Vqf6v+0GX 9FiG1WcT+1ciOl9He7+r1c2umAt4CxqS0SV+1MNFKCmLnKIkudFil6G2fAXyQBmcz0z2 d5WezPBGBFZrEdIvpFcDU6omaYHNrfLVqxsNtzcZY5VvHV9wMBBnNlqx/QNYSf2HYOCU FuXnLBOxDOCGKWnxFL+RVuo1CsWJ1kQT8KC9PQYZpFEb6IDF8SU8xd44VPs1lXaaJZA4 GZPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755490459; x=1756095259; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=W0ZHX+tn8nkbaFtS2dHaq5l6wD0P0NOK8ivJm8HB/sE=; b=ryuDnezBro6yFbXAU4CykfreNHHV36/4bNVWOn0JdzdvhBGjjocYSznyaJ9FvWYZEd sz4rZEEdTVm4EQTm5hLQuT7SVoECmzfxE0+khijsJaAg3GDleuUNB4GjBpYManOGKIl7 7b5RB9nCnFpLlesw2C84ekXQshLQYcOg9ak3zcc/FxV0Vtfkr77o/s4TPlio/HpdMm3I P4MODDG9hsrpaSR3IRXoHWouJX6BiRY+NgeeAmJhnLHFW3uWqKtPoVQn/QNpmS9vWfsa RW+iNNnuVmbSl9zNd0Q1SZQ13RBPOupreW/3p9OWw1vLfNjzxp5xLV3f5BcIdCjQmI0E pCIQ== X-Gm-Message-State: AOJu0Yzjy6iTc4T1acDSzRmurQ9DmPzUp0SfoH/l+oNMdp2xRjDmpxQ1 BFJk89QQW10Dud4V7Ii2tBj4yYdnUO6IAIvq7uqUXfqnx3/awzjDSbyVdxp8reyyqmtkU6isZ4w ybqmwvIo= X-Gm-Gg: ASbGncs/ixgpPIuQVTKvuhyuJHfbcWqweeiJjsvtkXY7rOaxLulYvsSyu4v/53uAD8S /08BnRUH46rZ3b2vjaqI7YeOtIwMFvqLi9sPg11qTdwoLUhWneo3qxDDduxrKGM5hXZmZSa4GVX Xg8qmpUGtn3hXvXzZ5Gorp4PrI+0je/P6+F8xN2kT1sdQOjWV71gc5R4z6MjfXd4J/o2ppMLCnf LZaTMKbBN6waB2fq6xts1kzXsb+bX7uRNIHaouAK8nCMp8vl4DnodFsYfGtZ5O9YuQjA4aRBUTG wcCNrpHp1/kMt07W0OxbmHpjdWNDi6qWmXbF6Day+N0teH8QkOsafMoAL8R+fBPq8UBwiVXH8gU 5zdCk6y30rEyaKHQhwVJnPhJRO4wKn8mlNrebSN9wJZVFBj8= X-Google-Smtp-Source: AGHT+IERiGlaVJB8ttAdKnv+Hzl8CWgSf3ujkjszyKmDUCM9q3ddRRHcoDfsPnv+mSwybBxlPSq4Sw== X-Received: by 2002:a17:902:d512:b0:240:3ef:e17d with SMTP id d9443c01a7336-2446d8d3c4cmr149364015ad.40.1755490458937; Sun, 17 Aug 2025 21:14:18 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: mads@ynddal.dk, agraf@csgraf.de, qemu-arm@nongnu.org, philmd@linaro.org Subject: [PATCH 4/7] target/arm/hvf: Add KVMID_TO_HVF, HVF_TO_KVMID Date: Mon, 18 Aug 2025 14:13:51 +1000 Message-ID: <20250818041354.2393041-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250818041354.2393041-1-richard.henderson@linaro.org> References: <20250818041354.2393041-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62d; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62d.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: 1755491197698116600 Content-Type: text/plain; charset="utf-8" Conversion between KVM system registers ids and the HVF system register ids is trivial. Signed-off-by: Richard Henderson Reviewed-by: Mads Ynddal Tested-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/hvf/hvf.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index f0e4b75e6a..2577dc1c0c 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -403,6 +403,26 @@ struct hvf_sreg_match { uint32_t cp_idx; }; =20 +/* + * QEMU uses KVM system register ids in the migration format. + * Conveniently, HVF uses the same encoding of the op* and cr* parameters + * within the low 16 bits of the ids. Thus conversion between the + * formats is trivial. + */ + +#define KVMID_TO_HVF(KVM) ((KVM) & 0xffff) +#define HVF_TO_KVMID(HVF) \ + (CP_REG_ARM64 | CP_REG_SIZE_U64 | CP_REG_ARM64_SYSREG | (HVF)) + +/* Verify this at compile-time. */ + +#define DEF_SYSREG(HVF_ID, ...) \ + QEMU_BUILD_BUG_ON(HVF_ID !=3D KVMID_TO_HVF(KVMID_AA64_SYS_REG64(__VA_ARG= S__))); + +#include "sysreg.c.inc" + +#undef DEF_SYSREG + #define DEF_SYSREG(HVF_ID, crn, crm, op0, op1, op2) \ { HVF_ID, HVF_SYSREG(crn, crm, op0, op1, op2) }, =20 --=20 2.43.0 From nobody Sat Nov 15 05:35:27 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1755490540; cv=none; d=zohomail.com; s=zohoarc; b=JF1LAZPNWBWZMSXSPipGAAggqx+WmadMek4ObxDobihp24aYpt5PrFrPtGBCkgJo+mjVE14/pf+vITlMi01E+Tsy/Foe/tSxxGzhd0LBdQBvf+ZNWolpHqk1pUhXWGwRGD0udWy5BUmbpQgb7At5J5oQS6AsFZ7mg8ruArDIuOY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755490540; h=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=9aps/5dRSIQxJoI5rTRRJw0UjbyCrM2YzxlFedWAMQo=; b=G36N4RcdGPA6q6WvfNAMHyiMzPe1/QORTu6QqdwmtNNu8EVPMWnx6Un4sTuPTQfldu8hIr32WsqRe1hbihR3BRes/C5EHKMGYhjwSHS2SiuOtAPBYQdeYW5Cnq37lWInSaSvisruImnANE4L7SAaKTSJJ7YUAM9Qt7B6vq51zxo= 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 1755490540852128.82845522112268; Sun, 17 Aug 2025 21:15:40 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1unrGg-0005vm-P0; Mon, 18 Aug 2025 00:14:47 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unrGQ-0005qM-0Y for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:33 -0400 Received: from mail-pl1-x62e.google.com ([2607:f8b0:4864:20::62e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1unrGK-0002DV-4S for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:28 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-24458242b33so33018905ad.3 for ; Sun, 17 Aug 2025 21:14:23 -0700 (PDT) Received: from localhost.localdomain ([206.83.122.207]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3232f8c8e4bsm5498344a91.2.2025.08.17.21.14.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Aug 2025 21:14:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755490463; x=1756095263; 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=9aps/5dRSIQxJoI5rTRRJw0UjbyCrM2YzxlFedWAMQo=; b=M1RkWEg+NQxV2M+5B0iFclZhH55b1nF/vSJYCI6c1BEgiGjVZ9ZovdUFcPZLYWzt/V RA9ewTayK73CHKHOT3pXeN/70ppIs6K5ZGjdyzrhIp06nTvWmC27dqXBx4TXyDkxMvqo l+vEjBhW2f0y9NrmqUueQnCmMBU9jujg3bahpxhOT3YyMycEx9DcpyrMA7eSpq7Q/gGf T2VIi8H/TXJ8jjKAV4g9Q6ONmVEu7IBtmB05sYVEH1EqRCtMDsFIkjBrDBQNalEtKXeh k34rVZAXX09n346PFNPu4ggbC4P/MmQc4NvOMSwsPl+p+Swm7gcrrzyd0PZX71sXq1MT qWVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755490463; x=1756095263; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9aps/5dRSIQxJoI5rTRRJw0UjbyCrM2YzxlFedWAMQo=; b=X4ixoZkGUNGp+3YsRp5QNU7k7toMgUIXF8dQ0WZEm4UwkuD5qVlhc/R2YUdxyHN6nW MoCU375ec3DFZ7e0s+DUVjxBW/LCaK5Hyp/YjsNOLiB+87Nzjg0nkDpsbIfpaAxCHyEz bgBbZt/3VVBrdusLNFCvtxcLQduo/Qaggt3Yk02MvH94kM2xxd/fLDVgtjH4+KXGdlhe Sa+FMj48FFAA6VlLKrmrzmDIgu4L1Wfax+0EVoFwLRCUDiHH0uCHlw48z8YRPxc+NfoD 6+oMAD1J6Dx0tZIShCS16jXkpcViiDaxs57nKTsWqJRDnF2MZdht+YBOFKdZKdhm80Ix 838A== X-Gm-Message-State: AOJu0YzklZLGd6AC4O3obk+xPcNPlm9zhMSk8+eIbRCqBllh90vVEmNx fpTBf/YA8jl3qyxQyjmzCXk10wLBZgVMvQQq2PmghxVg26rbrdnjGDr8xVSch2WfGuxwwoxrKgp 9BwgdhwA= X-Gm-Gg: ASbGncuurJVmHutzFAhSvsUNRJZTHlZwL5b8k0IsZm1swHCBJwirF/cjKrhkgMUwDEx d33MDIzjIKiXk30/1Y4oL5sSCJyw8ibX8hJ5WPQxPQGKA4QNV5lkQ5Now02BW3FFcPS6KaGlBN5 8gr1PnvhQ8N5qs7AulH4qw1r+1j49t7llhjtpDIhCz6khKV9nONxxHLIWDmcMD8oinX/oLlQqzT 82L3MoV6KFtLF6CoWy+wtY6MGF99E1HdQvB0oJgRgnKUOBGSkq84lxvMGXzTgVSj3NPJGYFn0/w bNlaWxhSB+S08kI7378ZYYqJCHGmw7R4ncTOJaUkpH/6b3JsAtFD5q8Yx9yvYblLcYK0855rHQD YRQVxaTJqqPB3uxTr1LbqQbHaX9OGS6uX+hzAIxhOnWWuxf8= X-Google-Smtp-Source: AGHT+IHRZPC5BhM2arAFIalGfuOd77Sp7F7bnkxw6nT0FDuoL8H4HFBxT7rzNXnbUqNWH9VtzLk1cg== X-Received: by 2002:a17:902:fc48:b0:240:125:1010 with SMTP id d9443c01a7336-2446d738cbcmr137235825ad.14.1755490462705; Sun, 17 Aug 2025 21:14:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: mads@ynddal.dk, agraf@csgraf.de, qemu-arm@nongnu.org, philmd@linaro.org Subject: [PATCH 5/7] target/arm/hvf: Remove hvf_sreg_match.key Date: Mon, 18 Aug 2025 14:13:52 +1000 Message-ID: <20250818041354.2393041-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250818041354.2393041-1-richard.henderson@linaro.org> References: <20250818041354.2393041-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::62e; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62e.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: 1755490543274124100 Content-Type: text/plain; charset="utf-8" Use conversion functions instead of table lookup. Signed-off-by: Richard Henderson Reviewed-by: Mads Ynddal Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/hvf/hvf.c | 35 +++++++++++++++++++---------------- 1 file changed, 19 insertions(+), 16 deletions(-) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index 2577dc1c0c..46e52e8d34 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -152,9 +152,6 @@ void hvf_arm_init_debug(void) g_array_sized_new(true, true, sizeof(HWWatchpoint), max_hw_wps); } =20 -#define HVF_SYSREG(crn, crm, op0, op1, op2) \ - ENCODE_AA64_CP_REG(CP_REG_ARM64_SYSREG_CP, crn, crm, op0, op1, op2) - #define SYSREG_OP0_SHIFT 20 #define SYSREG_OP0_MASK 0x3 #define SYSREG_OP0(sysreg) ((sysreg >> SYSREG_OP0_SHIFT) & SYSREG_OP0_M= ASK) @@ -399,7 +396,6 @@ static const struct hvf_reg_match hvf_fpreg_match[] =3D= { =20 struct hvf_sreg_match { int reg; - uint32_t key; uint32_t cp_idx; }; =20 @@ -423,8 +419,7 @@ struct hvf_sreg_match { =20 #undef DEF_SYSREG =20 -#define DEF_SYSREG(HVF_ID, crn, crm, op0, op1, op2) \ - { HVF_ID, HVF_SYSREG(crn, crm, op0, op1, op2) }, +#define DEF_SYSREG(HVF_ID, crn, crm, op0, op1, op2) { HVF_ID }, =20 static struct hvf_sreg_match hvf_sreg_match[] =3D { #include "sysreg.c.inc" @@ -469,13 +464,16 @@ int hvf_get_registers(CPUState *cpu) pstate_write(env, val); =20 for (i =3D 0; i < ARRAY_SIZE(hvf_sreg_match); i++) { + int hvf_id =3D hvf_sreg_match[i].reg; + uint64_t kvm_id =3D HVF_TO_KVMID(hvf_id); + if (hvf_sreg_match[i].cp_idx =3D=3D -1) { continue; } =20 if (cpu->accel->guest_debug_enabled) { /* Handle debug registers */ - switch (hvf_sreg_match[i].reg) { + switch (hvf_id) { case HV_SYS_REG_DBGBVR0_EL1: case HV_SYS_REG_DBGBCR0_EL1: case HV_SYS_REG_DBGWVR0_EL1: @@ -549,8 +547,10 @@ int hvf_get_registers(CPUState *cpu) * vCPU but simply keep the values from the previous * environment. */ - const ARMCPRegInfo *ri; - ri =3D get_arm_cp_reginfo(arm_cpu->cp_regs, hvf_sreg_match= [i].key); + uint32_t key =3D kvm_to_cpreg_id(kvm_id); + const ARMCPRegInfo *ri =3D + get_arm_cp_reginfo(arm_cpu->cp_regs, key); + val =3D read_raw_cp_reg(env, ri); =20 arm_cpu->cpreg_values[hvf_sreg_match[i].cp_idx] =3D val; @@ -559,7 +559,7 @@ int hvf_get_registers(CPUState *cpu) } } =20 - ret =3D hv_vcpu_get_sys_reg(cpu->accel->fd, hvf_sreg_match[i].reg,= &val); + ret =3D hv_vcpu_get_sys_reg(cpu->accel->fd, hvf_id, &val); assert_hvf_ok(ret); =20 arm_cpu->cpreg_values[hvf_sreg_match[i].cp_idx] =3D val; @@ -606,13 +606,15 @@ int hvf_put_registers(CPUState *cpu) =20 assert(write_cpustate_to_list(arm_cpu, false)); for (i =3D 0; i < ARRAY_SIZE(hvf_sreg_match); i++) { + int hvf_id =3D hvf_sreg_match[i].reg; + if (hvf_sreg_match[i].cp_idx =3D=3D -1) { continue; } =20 if (cpu->accel->guest_debug_enabled) { /* Handle debug registers */ - switch (hvf_sreg_match[i].reg) { + switch (hvf_id) { case HV_SYS_REG_DBGBVR0_EL1: case HV_SYS_REG_DBGBCR0_EL1: case HV_SYS_REG_DBGWVR0_EL1: @@ -687,7 +689,7 @@ int hvf_put_registers(CPUState *cpu) } =20 val =3D arm_cpu->cpreg_values[hvf_sreg_match[i].cp_idx]; - ret =3D hv_vcpu_set_sys_reg(cpu->accel->fd, hvf_sreg_match[i].reg,= val); + ret =3D hv_vcpu_set_sys_reg(cpu->accel->fd, hvf_id, val); assert_hvf_ok(ret); } =20 @@ -922,14 +924,15 @@ int hvf_arch_init_vcpu(CPUState *cpu) =20 /* Populate cp list for all known sysregs */ for (i =3D 0; i < sregs_match_len; i++) { - const ARMCPRegInfo *ri; - uint32_t key =3D hvf_sreg_match[i].key; + int hvf_id =3D hvf_sreg_match[i].reg; + uint64_t kvm_id =3D HVF_TO_KVMID(hvf_id); + uint32_t key =3D kvm_to_cpreg_id(kvm_id); + const ARMCPRegInfo *ri =3D get_arm_cp_reginfo(arm_cpu->cp_regs, ke= y); =20 - ri =3D get_arm_cp_reginfo(arm_cpu->cp_regs, key); if (ri) { assert(!(ri->type & ARM_CP_NO_RAW)); hvf_sreg_match[i].cp_idx =3D sregs_cnt; - arm_cpu->cpreg_indexes[sregs_cnt++] =3D cpreg_to_kvm_id(key); + arm_cpu->cpreg_indexes[sregs_cnt++] =3D kvm_id; } else { hvf_sreg_match[i].cp_idx =3D -1; } --=20 2.43.0 From nobody Sat Nov 15 05:35:27 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1755491192; cv=none; d=zohomail.com; s=zohoarc; b=HdrBSWhQjAbIf2CY/dW6J3KE6I9eoS80O06kLumHKbhpXWEjQk8nDux9GijIFszVPEIqjxmEaQzOwyFe1enBUH6u9MhxZM6oRIfoRIbfP5BiuBooCuW047KPJikyNwMyvV2PbBilnqlpsIrQN+3Gn63mpM/2+eVewZys1FArJPk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755491192; h=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=RWOUahuffRODKn11bwqIgWpsGqBtiathLmHpxPmSXXk=; b=cMgGbNmzGCnEwoEmnHuBoLtop7v8gtcjw058Eod2xo9rj/jUVZ5kdjOofb4xftRZa57hnSbjn0S8yO7Ne1Z+7MsuEdChIveNORpr5+H4YeUN16NHq7C/VZuZ82srbC5mxPbOFy0C9uaU3MgB3prjgZe4MHjQ/zIbzGmoiwT0Yw8= 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 175549119291967.82126640975878; Sun, 17 Aug 2025 21:26:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1unrRa-0000Pn-9n; Mon, 18 Aug 2025 00:26:02 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unrGV-0005te-Q1 for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:37 -0400 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1unrGO-0002Dm-Bv for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:34 -0400 Received: by mail-pj1-x102e.google.com with SMTP id 98e67ed59e1d1-32326e2f0b3so2578888a91.2 for ; Sun, 17 Aug 2025 21:14:27 -0700 (PDT) Received: from localhost.localdomain ([206.83.122.207]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3232f8c8e4bsm5498344a91.2.2025.08.17.21.14.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Aug 2025 21:14:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755490467; x=1756095267; 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=RWOUahuffRODKn11bwqIgWpsGqBtiathLmHpxPmSXXk=; b=jIaHnN/Vb9xoxT6biZ9gaEaTx8iAk36CHkzJaHYTJDEcJpiAMeuojOdvNP9p6K9jP5 84mXZVg5unUzz87T9kTI1ybsTY9B/xjBmCiPtGvavOruLFVDvWI4fD+V3s4ODkHKGr+N Sn1JrESgouN7xxuiD5qpzxjiXzD1oz+49l2jP0IA4Sctl0+r3xyahcgfRdFDPVm5J/54 adrhNpmWnROa/jSbiFZDFtE/0LVaTgebhnBBc6n+4mGebvrafU4iV70NY5y+hDQzNbCw 3d2oxYQ4aXeMQXEblTagqpDroSGM2kXuxMNQMRCDmysomgA160ZYK7epz1P8djH7nuqn yuLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755490467; x=1756095267; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=RWOUahuffRODKn11bwqIgWpsGqBtiathLmHpxPmSXXk=; b=IeWLWrXNmJ/vVae3F95nmgRg+9vbV7/WVcLHW+RkeYnkWy2BHg+mSPKBRvwB773o+G Ud7MvDjdC6FB/0dE6SLzV3cVy7V4YAdXu2h+dw3lGFcsH+fyQ/RrNy+yjmVPWWE5rucb Z/Wtldo4zpUybwoGe62F9Oz/JD+ithwvxmujRDCwodrBhuYxAR+k/i5f4E8XJ/nU2PIM RcPmz3GIqoTWaOvDn4+RisL9EKJwatf41pnbXlmXqEDiJZuBWFnaUmd6yVhpQ0bj+vkj 380DBIQlFNWXHxuf+ANZuevgCNS1SDGNrmWikf/ZrrpS3RdOT7iyJJbfGwHXtQGmEwAd 1fww== X-Gm-Message-State: AOJu0YxVIv9pA2QQeipOra7NPHn273+GQYGsjhLXFw7UNpd6TEeJ9Hb5 YUfhMxhJekc9XC86iASn09q96TzmHJu9YpQT1kpR3TECqcAU2FGddEEVjF0nVf2FsA/SczHfyO+ K8ceT7Sk= X-Gm-Gg: ASbGnctH2WlolxRYYppsJWVwNzijgtcaJZAkOQrsVswA8E8BwomUuJ1rVAuVkRkQySh YO5Hx/1w4l00ohcufTnklum4BlZxzM3SHAruSlUK3/OzZSdA155qlsnhBILzjIqngBAQt02nwec jNml21l4D1B1e1sOO9wNb/r5naRHbTSyx99sZkjVQfiN+0XNbIWTRyKElPOiAlbcxn85huAQyaY 0D5+0HkCmo4QdugEOWhWyjsjK/dF33JghTZJmA/DH+S3oOweU5r+o2TQBTcgRAjQepa9YroA0t0 t5e0tYH7U47ucwPncnPskhuFaCTPp+giJIR9a0iXw1HEV1LLXN9Bvn/58zjC+CVhs6SCfuz0wKS QZPHa9oiD7grM0wGy//G4w9Jf5JmjWrQi6b8TDrM8RvF38Ow= X-Google-Smtp-Source: AGHT+IERuxfI1O3EnWUjPF1v8hyZkTDZfdphL7bxohaPt1o99+f9scheIVJlf2X0zFf120QXhMD5Xw== X-Received: by 2002:a17:90b:2b4e:b0:321:c37e:e325 with SMTP id 98e67ed59e1d1-32341ec4eccmr14885378a91.12.1755490466711; Sun, 17 Aug 2025 21:14:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: mads@ynddal.dk, agraf@csgraf.de, qemu-arm@nongnu.org, philmd@linaro.org Subject: [PATCH 6/7] target/arm/hvf: Replace hvf_sreg_match with hvf_sreg_list Date: Mon, 18 Aug 2025 14:13:53 +1000 Message-ID: <20250818041354.2393041-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250818041354.2393041-1-richard.henderson@linaro.org> References: <20250818041354.2393041-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.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=unavailable 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: 1755491196067116600 Content-Type: text/plain; charset="utf-8" Change hvf_get_registers and hvf_put_registers to iterate over cpregs_indexes instead of hvf_sreg_match. This lets us drop the cp_idx member of hvf_sreg_match, which leaves only one member in the struct. Replace the struct with a const array. Instead of int, use the proper enum type: hv_sys_reg_t. Rename from hvf_sreg_match to hvf_sreg_list because there is no longer any matching going on. Signed-off-by: Richard Henderson Reviewed-by: Mads Ynddal Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/hvf/hvf.c | 45 +++++++++++++++----------------------------- 1 file changed, 15 insertions(+), 30 deletions(-) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index 46e52e8d34..647eb675ef 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -394,11 +394,6 @@ static const struct hvf_reg_match hvf_fpreg_match[] = =3D { { HV_SIMD_FP_REG_Q31, offsetof(CPUARMState, vfp.zregs[31]) }, }; =20 -struct hvf_sreg_match { - int reg; - uint32_t cp_idx; -}; - /* * QEMU uses KVM system register ids in the migration format. * Conveniently, HVF uses the same encoding of the op* and cr* parameters @@ -419,9 +414,9 @@ struct hvf_sreg_match { =20 #undef DEF_SYSREG =20 -#define DEF_SYSREG(HVF_ID, crn, crm, op0, op1, op2) { HVF_ID }, +#define DEF_SYSREG(HVF_ID, crn, crm, op0, op1, op2) HVF_ID, =20 -static struct hvf_sreg_match hvf_sreg_match[] =3D { +static const hv_sys_reg_t hvf_sreg_list[] =3D { #include "sysreg.c.inc" }; =20 @@ -434,7 +429,7 @@ int hvf_get_registers(CPUState *cpu) hv_return_t ret; uint64_t val; hv_simd_fp_uchar16_t fpval; - int i; + int i, n; =20 for (i =3D 0; i < ARRAY_SIZE(hvf_reg_match); i++) { ret =3D hv_vcpu_get_reg(cpu->accel->fd, hvf_reg_match[i].reg, &val= ); @@ -463,13 +458,9 @@ int hvf_get_registers(CPUState *cpu) assert_hvf_ok(ret); pstate_write(env, val); =20 - for (i =3D 0; i < ARRAY_SIZE(hvf_sreg_match); i++) { - int hvf_id =3D hvf_sreg_match[i].reg; - uint64_t kvm_id =3D HVF_TO_KVMID(hvf_id); - - if (hvf_sreg_match[i].cp_idx =3D=3D -1) { - continue; - } + for (i =3D 0, n =3D arm_cpu->cpreg_array_len; i < n; i++) { + uint64_t kvm_id =3D arm_cpu->cpreg_indexes[i]; + int hvf_id =3D KVMID_TO_HVF(kvm_id); =20 if (cpu->accel->guest_debug_enabled) { /* Handle debug registers */ @@ -553,7 +544,7 @@ int hvf_get_registers(CPUState *cpu) =20 val =3D read_raw_cp_reg(env, ri); =20 - arm_cpu->cpreg_values[hvf_sreg_match[i].cp_idx] =3D val; + arm_cpu->cpreg_values[i] =3D val; continue; } } @@ -562,7 +553,7 @@ int hvf_get_registers(CPUState *cpu) ret =3D hv_vcpu_get_sys_reg(cpu->accel->fd, hvf_id, &val); assert_hvf_ok(ret); =20 - arm_cpu->cpreg_values[hvf_sreg_match[i].cp_idx] =3D val; + arm_cpu->cpreg_values[i] =3D val; } assert(write_list_to_cpustate(arm_cpu)); =20 @@ -578,7 +569,7 @@ int hvf_put_registers(CPUState *cpu) hv_return_t ret; uint64_t val; hv_simd_fp_uchar16_t fpval; - int i; + int i, n; =20 for (i =3D 0; i < ARRAY_SIZE(hvf_reg_match); i++) { val =3D *(uint64_t *)((void *)env + hvf_reg_match[i].offset); @@ -605,12 +596,9 @@ int hvf_put_registers(CPUState *cpu) aarch64_save_sp(env, arm_current_el(env)); =20 assert(write_cpustate_to_list(arm_cpu, false)); - for (i =3D 0; i < ARRAY_SIZE(hvf_sreg_match); i++) { - int hvf_id =3D hvf_sreg_match[i].reg; - - if (hvf_sreg_match[i].cp_idx =3D=3D -1) { - continue; - } + for (i =3D 0, n =3D arm_cpu->cpreg_array_len; i < n; i++) { + uint64_t kvm_id =3D arm_cpu->cpreg_indexes[i]; + int hvf_id =3D KVMID_TO_HVF(kvm_id); =20 if (cpu->accel->guest_debug_enabled) { /* Handle debug registers */ @@ -688,7 +676,7 @@ int hvf_put_registers(CPUState *cpu) } } =20 - val =3D arm_cpu->cpreg_values[hvf_sreg_match[i].cp_idx]; + val =3D arm_cpu->cpreg_values[i]; ret =3D hv_vcpu_set_sys_reg(cpu->accel->fd, hvf_id, val); assert_hvf_ok(ret); } @@ -899,7 +887,7 @@ int hvf_arch_init_vcpu(CPUState *cpu) { ARMCPU *arm_cpu =3D ARM_CPU(cpu); CPUARMState *env =3D &arm_cpu->env; - uint32_t sregs_match_len =3D ARRAY_SIZE(hvf_sreg_match); + uint32_t sregs_match_len =3D ARRAY_SIZE(hvf_sreg_list); uint32_t sregs_cnt =3D 0; uint64_t pfr; hv_return_t ret; @@ -924,17 +912,14 @@ int hvf_arch_init_vcpu(CPUState *cpu) =20 /* Populate cp list for all known sysregs */ for (i =3D 0; i < sregs_match_len; i++) { - int hvf_id =3D hvf_sreg_match[i].reg; + hv_sys_reg_t hvf_id =3D hvf_sreg_list[i]; uint64_t kvm_id =3D HVF_TO_KVMID(hvf_id); uint32_t key =3D kvm_to_cpreg_id(kvm_id); const ARMCPRegInfo *ri =3D get_arm_cp_reginfo(arm_cpu->cp_regs, ke= y); =20 if (ri) { assert(!(ri->type & ARM_CP_NO_RAW)); - hvf_sreg_match[i].cp_idx =3D sregs_cnt; arm_cpu->cpreg_indexes[sregs_cnt++] =3D kvm_id; - } else { - hvf_sreg_match[i].cp_idx =3D -1; } } arm_cpu->cpreg_array_len =3D sregs_cnt; --=20 2.43.0 From nobody Sat Nov 15 05:35:27 2025 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=pass(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1755491221; cv=none; d=zohomail.com; s=zohoarc; b=ktz/6BJHWsypSe3qTiL6zYhyy02GOsnjiS8GAWAh+QxlTEQEQ+DGtypzosyaMAwk7SVJsc28/vPvTliDo7O3mpahRcNSyAILgSETzsVeQ7EaYNwOJ4bhO1rhuG1lIGgr9GsriyTn0WpRoDhZoSSzrxBioOyozFercF17rva9rr4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1755491221; h=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=JIkeU3rXeazXD0joqAFpWiHN3iI9fKZ4K7whY5dqlfg=; b=XXFoyhWWREBBCgzxj/6i2HxCcViCFAnyPXUyyd+cF/cciV0T9QZIOMwgrsVkGIBOkjzIZG35L/l/MVMfiaM/J/K2DVQJt3ni5c0a2nGT2RsengZSU4ywAwPgFLcpzSWCyn5evBn7A3D7inuMUNYV9kuV9y32BZ5+iiRYBcPtoyI= 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 1755491221542263.2156669508921; Sun, 17 Aug 2025 21:27:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1unrRf-0000e3-4t; Mon, 18 Aug 2025 00:26:07 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1unrGU-0005tU-IK for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:37 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1unrGS-0002EG-Gz for qemu-devel@nongnu.org; Mon, 18 Aug 2025 00:14:33 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-323266d2d9eso2711126a91.0 for ; Sun, 17 Aug 2025 21:14:32 -0700 (PDT) Received: from localhost.localdomain ([206.83.122.207]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-3232f8c8e4bsm5498344a91.2.2025.08.17.21.14.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 17 Aug 2025 21:14:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1755490471; x=1756095271; 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=JIkeU3rXeazXD0joqAFpWiHN3iI9fKZ4K7whY5dqlfg=; b=rz4l0JzXbI2acaneu2ggPhjUHbo4xD0/pVc5YWFchotG+7W7rq58ucPVUJZSud4iId Uz0TLYotvEivjgw8gCEjKtNlJA0FN0jd+xmHfU/iGjF/+3eBygKPPb4gEPK0WpgRNO1O Oq292icKMPHzd1cc6n1KV8wRNMVkD0WtF083rwu9THnw7RD644aXzpPzu4NyX4nte8jc O6veB//44EAT/NQTr33x7tTT4qTho//PVcwn2+ZkORPzPM/NvLYiCIZ4v6k3HtymhuDA p5HNMRCgKNR9pN3AUJX7rI8Rsrcd1S5rouMZFqVP4Slen3oa1l4ECmVRelk+jn90laMJ KIAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755490471; x=1756095271; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JIkeU3rXeazXD0joqAFpWiHN3iI9fKZ4K7whY5dqlfg=; b=nJrBiDXMF6Rl0uAJn5Z3jNDX3C7ZwvoRYcbzjgZ5ClMSUJKd2l2jJnm7L7wO3uUg3X 8MAYMdIzAhIAASFwEqBf3IsjBdaNtZNr0x7/9B0Rx+PlJ7SyZ7Nd2jIgaSugSzLGToDR 5iATSTAHNA0mETxLHcbjn3/wAUVdwQuCAR4Rkz3gIctLnEqD7ZiI/ocBPvC2ymlnpchC 16c8C9tQcC7JlUkbkFLLxaKm3ZeGDVPL/qB4EPMqAyw3ef7w5Nc+sX+5NGL0Sfzyv4f9 k5nMYDc9OR/WSY2Mcvt0LjATH10ouFB23C9drMvU9J0+hEB/c7RvazgXn7c1ZW+a04MG 0FFw== X-Gm-Message-State: AOJu0YwqCJ2MGpjHhuoRLx+/nU7RBQIwNAf173upbnMkY2IV/igFuo5T cYHDINgekOyvu7V7/u1+1UG4GhDSSaQkCcHBWN48HoXzZBiGo56Jui2C5ITh91Jscx8D961U9GW VH33kYy4= X-Gm-Gg: ASbGncuV4w6Sp7oKYrTi780OnsUBD+B79pvdJ+FOoGR1NHeCLPxdxwBjLU6E5ma2Sp9 S978dpW5ih8QGAVfdqWdxdFPA1baWeJLhZW2fgI/+p2+MM0SX+MonVkPvFwA5OHqSxC+rT1Jhq0 TZXNW6eJX+jIFadGuzdTWXVscnCWgyNHGYFE0VE9tBkQG/JI51V41bq25n4/Pd7UxaI5zAqgrxC SnJU76+3p0SdBNwpa0QvK9SfhP9wrZ+kuVmh7tnHp1RVvPrSUwadEpWEHskPnN/O1YrbIvUxfiR WY8sB2BaNdj/O3OJyce90JV3IUNhYb3FSdtJHS0Asdqg+ujTpbhxJoeoT+pA1yxpdSMAluaurWu 6BKPYqt2uOewFGU7SNe67vdzVaKEd/kp5E8dzgCuy4y8gqVVbpctUgSEDuQ== X-Google-Smtp-Source: AGHT+IG7SBAsjQzbExG2k+dQNmBqRLaEeCDm1wbUTOud53d2Z6VubTzkwoRqxIBLHWLbY+a2fj0LXQ== X-Received: by 2002:a17:90b:1fc5:b0:31f:32f:3a87 with SMTP id 98e67ed59e1d1-3234dc4f06bmr10018049a91.26.1755490470773; Sun, 17 Aug 2025 21:14:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: mads@ynddal.dk, agraf@csgraf.de, qemu-arm@nongnu.org, philmd@linaro.org Subject: [PATCH 7/7] target/arm/hvf: Sort the cpreg_indexes array Date: Mon, 18 Aug 2025 14:13:54 +1000 Message-ID: <20250818041354.2393041-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250818041354.2393041-1-richard.henderson@linaro.org> References: <20250818041354.2393041-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.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=unavailable 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: 1755491222557124100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Mads Ynddal Reviewed-by: Philippe Mathieu-Daud=C3=A9 Tested-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/hvf/hvf.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index 647eb675ef..88ed96be11 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -925,6 +925,9 @@ int hvf_arch_init_vcpu(CPUState *cpu) arm_cpu->cpreg_array_len =3D sregs_cnt; arm_cpu->cpreg_vmstate_array_len =3D sregs_cnt; =20 + /* cpreg tuples must be in strictly ascending order */ + qsort(arm_cpu->cpreg_indexes, sregs_cnt, sizeof(uint64_t), compare_u64= ); + assert(write_cpustate_to_list(arm_cpu, false)); =20 /* Set CP_NO_RAW system registers on init */ --=20 2.43.0