From nobody Fri Nov 14 18:17:45 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=1760473216; cv=none; d=zohomail.com; s=zohoarc; b=LulhXnQat2gtUXAEkeOYXsgjll0sMJEFO+34be175De84vI3T54X0STxCFYeKDZKZvgjT4Mbe/4xXgUrDKAE9EdjhF8J7viInUH7v9OgOnluaazpccII2MqJxQCOdyqn/aMt+/4s16rJO/grRw25uvZA/fLUyTrWitTDs6CFGk8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473216; 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=83gITCsTSz6Z2rymdsqW04YSPMva2dhKn7k0rNEW+ko=; b=FfH1vmtUbf7MYwLKVW4AvfN7Oc8U/9lFQJHFKJSqXlYvHbtCwiYF+l4+n7cT3oWvdfkDAaK6kbdbsWx1eKhjPfQ1sOL6DkviJQtrHCAP75jrt0f93ITNX0tTFmtVMivKfK7OaNV7RI/mx4/h3vsv63xExWMHTdkZcbgJJuw1kQU= 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 1760473216452137.57086314334822; Tue, 14 Oct 2025 13:20:16 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lIy-00020E-GB; Tue, 14 Oct 2025 16:07:32 -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 1v8lIw-0001zZ-9r for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:30 -0400 Received: from mail-pl1-x632.google.com ([2607:f8b0:4864:20::632]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIq-0005Jn-F1 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:29 -0400 Received: by mail-pl1-x632.google.com with SMTP id d9443c01a7336-2697899a202so1826495ad.0 for ; Tue, 14 Oct 2025 13:07:22 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472440; x=1761077240; 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=83gITCsTSz6Z2rymdsqW04YSPMva2dhKn7k0rNEW+ko=; b=cwYpe8bE0Yvzh6TMNLlB6mSkrDO/qF/b4mB2wGIQ7ujWHcw8LXmeZyxywLJRDwV2GX exsVCpaA8lijEQz438BmQSfdlRyiGHuqtDi2E9gVrYm5bljmNXojx6vPU7irOevPyotD h0QF5t/A83BMdDzSfBJfpTybmmGp46Dh4T/hHngkM3yBq8oqtuqIDzSJdhFbVHolpzLk 3jJdFQiGbtkCqxdwopy00H7WxjsUIXqctl0WSKjvBQjP2KiLplIDvKzRHcRcve2qCZU9 4r+i4vTL5C0mZZsEUNQDeuSKp06soX2A7d7l9OBx07ij6uAi2aGTeL8FVK1Nc1wkg/Ya yHDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472440; x=1761077240; 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=83gITCsTSz6Z2rymdsqW04YSPMva2dhKn7k0rNEW+ko=; b=p6/gXswuYfYq8qvm7Kqg5OaJi69Npc1o1VW5NqICACLz2jCFwBNyobYbqStMxxqPqK zQq2m+5pcLozeNHcUXwcxTXX5Xwi1sxx3uK2nzAY+QvHM+9TEi1EDdtAKqyaOWrnK8xR BGoKxtF0qxu9J3REPrkHGcxE7qOAaLRZ4/VZHjcdNOU0udrPDVqy4iufjujUQ9K9ny74 +MajOdbtMEKbVy+DI/mpfLJ/jU0MZfyzilTfPNcEACAKibayEpijmXMyZZES1aTYpdek x+MSIIBF4ACQidrIlbQwTGWSICcS2LxRKnvx07ryXOKZNhlxJTqYEGHT/uDx4jksov9v 71Tw== X-Gm-Message-State: AOJu0YzEmtzb+iqUVGIpuBzzl6YYZHfma+zyj8/G9RjBi94nvIMvSb8+ Fd9rKHBiGFNZ+oRHtHFUpsGrZHtJcJTyMu94MznMJzhYNZQWb2BHwwfPYFS6VdX2UYHTIfLp5cX u+uPIZI8= X-Gm-Gg: ASbGnctiabwsLmyAiEWkT3wa+RktZf2mdpUm8olwlTg5zBomTYh3HkZaogAlJtHnpae bIEc9d+B1Avd70mtgt1epDN/fBZiVbPwDM7KzJZNYTHU+OidKJuqMK4m/yiIBPD/k7VAZF0IyJ5 ez1ikGGXIVMHtztIMuKwp5mgBanW03AtQ/V9F94BTmRvsn935QiATDKDAToSaAhBieJJK6duRXE rWJyTN/aly8TOoymZPM/ShVzAjaW4A7krLra+D6gbYKE1uuN69K9QfGnPAMwyFRYAgFAX6FNSq8 C+/ekwz848gFUhC8Vm83d9MBp5khLLwS+PDO+lLryKzCPIqBYk9QlkqrW+AEptiuXbRaNIPGc2j j72jU4K3H2JiRzVZOfNyVMDpdfJW6DFcM2xQCgglvZVH7UpsCiFA= X-Google-Smtp-Source: AGHT+IGttS3HusLzPEQjBbOn4URsYgIGZ8JWt57lHAZ4NlDOxPAE7DL1Rn+1bZHTbL2m2zRycqNiEw== X-Received: by 2002:a17:902:c410:b0:249:71f5:4e5a with SMTP id d9443c01a7336-29027f3e32emr368783955ad.26.1760472440113; Tue, 14 Oct 2025 13:07:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Manos Pitsidianakis Subject: [PATCH v2 01/37] target/arm: Implement isar tests for FEAT_SYSREG128, FEAT_SYSINSTR128 Date: Tue, 14 Oct 2025 13:06:42 -0700 Message-ID: <20251014200718.422022-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::632; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x632.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: 1760473216729158500 Content-Type: text/plain; charset="utf-8" Reviewed-by: Manos Pitsidianakis Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu-features.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target/arm/cpu-features.h b/target/arm/cpu-features.h index 579fa8f8f4..9b7fdde0d7 100644 --- a/target/arm/cpu-features.h +++ b/target/arm/cpu-features.h @@ -1019,6 +1019,16 @@ static inline bool isar_feature_aa64_mops(const ARMI= SARegisters *id) return FIELD_EX64_IDREG(id, ID_AA64ISAR2, MOPS); } =20 +static inline bool isar_feature_aa64_sysreg128(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64ISAR2, SYSREG_128) !=3D 0; +} + +static inline bool isar_feature_aa64_sysinstr128(const ARMISARegisters *id) +{ + return FIELD_EX64_IDREG(id, ID_AA64ISAR2, SYSINSTR_128) !=3D 0; +} + static inline bool isar_feature_aa64_rpres(const ARMISARegisters *id) { return FIELD_EX64_IDREG(id, ID_AA64ISAR2, RPRES); --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472807; cv=none; d=zohomail.com; s=zohoarc; b=HEU0CmOFHbKyZjmusTIELSvArcQfwiCBXtGtHedH5Y69W9FCdooCHDy+OYbft+6LsDe9bG6RFmCA3LrKv2dRwcn5MNhiRCm+mrdtEo0mEn+BCbfbT9GDHkSAxFZEGeRvnGnS8SNS5c7UfQRpTKlRnomTT5fLBOuj0b+FW3cRkS0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472807; 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=oewVOJfgxyjUz8vTExFpafNqiBn7o4ivsK84dIOvlkk=; b=CljkqwbEEDri29+f+OJhFzvd/zQMkTYOnpnNa7CbGK9YSJq48AZKuQlifdBHWtJRjWF3NH/G3FTff1K34dzc7ynF058G8kDJwszm3tjxK+3Yf8KtOBGrknyBp0tKA0GYhiQu++40bEtje3MC2TMCLATGKlyA4gf5iXYRAFqtVeg= 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 1760472807200609.6655855260775; Tue, 14 Oct 2025 13:13:27 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJD-00025p-Kc; Tue, 14 Oct 2025 16:07: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 1v8lJA-000246-HR for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:44 -0400 Received: from mail-pg1-x52e.google.com ([2607:f8b0:4864:20::52e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIs-0005Jt-8k for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:44 -0400 Received: by mail-pg1-x52e.google.com with SMTP id 41be03b00d2f7-b57d93ae3b0so3480918a12.1 for ; Tue, 14 Oct 2025 13:07:25 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472441; x=1761077241; 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=oewVOJfgxyjUz8vTExFpafNqiBn7o4ivsK84dIOvlkk=; b=VuH0MLrSlBrhIO4/yPund5eI9sFzQIE6FsmZiiXMHfCJQGMMU0fN1wxLdfH8UHaI9y GFyEPgfV81Z7oaPG+W2Yg3UQlMG9p9wDZKimHcKvvklT9AkB+T/1UFzLQY1Oij/WQZOI Cxo1hmQvfa4UbE+mBdu5kOJqfZPu/2nf8IoHJ8c7e73bF33d9wjLDQO+MJvqMOCKMjW5 2feN9r4w94FTKfD6KpcgG4HBW6YMYKruFf7/uugWsQRExgLZm8zszDoFL6WGfy0joqe5 mzYIxU7EATWigfJIzK14mUbDAGyRQ5pjc9WFeRg/gCh8XZQxRqaZLVCPh2g12PdCmBWc jM2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472441; x=1761077241; 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=oewVOJfgxyjUz8vTExFpafNqiBn7o4ivsK84dIOvlkk=; b=sM19iccxjDDPpddA5JQdvSueUngvuvzZRgOs9idRWexezyM00wyBZYxmWbMtE9H1hl EIq1AQSynO2GCCHdCOhYyO7M1I1XPKyDOw8hy5WGaHZwmkGeqyOVP/O3S70YSAe7+bCv ZPlPqAFue9YL6fauXucUZDT8OiZ78S2kBDZ5g64fCPZ6AhuPuwlo9PtiGHVFKRo/eS94 59IHZ3qNNk6TgnknTtQkmtBr514wy4JCn6EfGvMSQEi0zt/TsNPjxneIOopDzkW66xc8 xbAJ0XsgfT9pMT4FP6ZcNe1lM+euqVCF5jmi7k5h97Vdm0gXASy1wxGbsySx2LdO8vG/ 1AJQ== X-Gm-Message-State: AOJu0YxuLSqhymI3CtyT+XFaJ7us6GzV111sgwpmha890PFEJg8BRVVe 0VINTw+l5zAn9QGTFD/EE2FsHQoGirmpiVg3KwJwW4wgpj+lthLiQRbyhIlGwmAcnyKnbz5Qmd4 Jyf5ww2M= X-Gm-Gg: ASbGncuk3BN58m3xfNwMhFeuPb2DAeyA8N8dO5UW2FDfz64dFhJbqmVAjI9HxkTLUwB ZbD2ZVmMpAyfWMcy29BbK9J8YAaPioHxxP+uWVeuJixJRDqkyEq6wxKzBlfZzb1Uc/Z3vviyFgW +Y9PlPc58iR3XTerft6839zitXDNRtkARuKfpwfEJQcVJ1fgiAPJsMmg5F3NkE6sDog9RRA8SYT lgv9wet6YV3Pg2mwJKz+9FmraZiJTUVaxDrMJuYDyt4XuosKtPzPnzEf1T2iE0QNErz4eotLIoc 7sfWIIAfUUxuLYxAiqeB4mui+9kLs/aHbuDIW4v6nY32eHS+Gqs3SrBpNcIzopO0fTowb0anDIs kuD+J+QmsIWST6bz6qgAwwkxC2rQrtMihN4R9XkZ2mhv1475W+l4= X-Google-Smtp-Source: AGHT+IEGTiKAdR+kvOmGu7djBOIA7v3L1wPDaSJ6eZKVT/XY+jM8j8mm9NKnfvjCgDMymFcB4Iqg8Q== X-Received: by 2002:a17:903:3c2c:b0:246:7a43:3f66 with SMTP id d9443c01a7336-29027213356mr334659415ad.7.1760472440728; Tue, 14 Oct 2025 13:07:20 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Manos Pitsidianakis Subject: [PATCH v2 02/37] target/arm: Define CP_REG_SIZE_U128 Date: Tue, 14 Oct 2025 13:06:43 -0700 Message-ID: <20251014200718.422022-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::52e; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52e.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, T_SPF_TEMPERROR=0.01 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: 1760472808776154100 Content-Type: text/plain; charset="utf-8" Reviewed-by: Manos Pitsidianakis Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/kvm-consts.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/arm/kvm-consts.h b/target/arm/kvm-consts.h index 54ae5da7ce..1b3c10c0d3 100644 --- a/target/arm/kvm-consts.h +++ b/target/arm/kvm-consts.h @@ -30,6 +30,7 @@ #define CP_REG_SIZE_MASK 0x00f0000000000000ULL #define CP_REG_SIZE_U32 0x0020000000000000ULL #define CP_REG_SIZE_U64 0x0030000000000000ULL +#define CP_REG_SIZE_U128 0x0040000000000000ULL #define CP_REG_ARM 0x4000000000000000ULL #define CP_REG_ARCH_MASK 0xff00000000000000ULL =20 @@ -37,6 +38,7 @@ MISMATCH_CHECK(CP_REG_SIZE_SHIFT, KVM_REG_SIZE_SHIFT); MISMATCH_CHECK(CP_REG_SIZE_MASK, KVM_REG_SIZE_MASK); MISMATCH_CHECK(CP_REG_SIZE_U32, KVM_REG_SIZE_U32); MISMATCH_CHECK(CP_REG_SIZE_U64, KVM_REG_SIZE_U64); +MISMATCH_CHECK(CP_REG_SIZE_U128, KVM_REG_SIZE_U128); MISMATCH_CHECK(CP_REG_ARM, KVM_REG_ARM); MISMATCH_CHECK(CP_REG_ARCH_MASK, KVM_REG_ARCH_MASK); =20 --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472841; cv=none; d=zohomail.com; s=zohoarc; b=OLcs96sO+fw7wbrCJBwFA1dVDxR92d/CQ6OzcWQA2d7g6cY04zI7lSgzwFFCQKJdWLrIN7flDvLlajnIA1iwruQyTXmP90VKutLLkHror5XFV/x9vMdi6Wb8fm1NcmjOu3qiKd8bWmS+JxoyJeicdZdR51bZdGfTyyMmd74wcn4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472841; 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=RQFcykZzWxrbZtxjDQ1imqMK5f7bh9/0kLjg1nW4RaI=; b=Ebl+6UNTasTeJzrlZlXDXNfRnXSLCL87rsUWNmA5ybpiWayMXiRDctE4JZSYweqtDAIWMMiClsANRCy+3ejFy7KRsDDnTKJ5TfwaXZC+bDn/sXOYszx7ziB3woDTX0QmstFUw/T6ygGKHB47nHMB+lbCuo58EMF+fz74XN+fsdg= 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 1760472841905414.90066902354806; Tue, 14 Oct 2025 13:14:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJC-00024t-1q; Tue, 14 Oct 2025 16:07:46 -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 1v8lJ6-00022d-PY for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:41 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIs-0005Jy-Tn for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:40 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b6271ea3a6fso3707987a12.0 for ; Tue, 14 Oct 2025 13:07:23 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472441; x=1761077241; 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=RQFcykZzWxrbZtxjDQ1imqMK5f7bh9/0kLjg1nW4RaI=; b=NlOB77swLYXuNhoIDO2bjOD99/DliEYdeXJBI/jGzz4rNYOCZWeRT3Ukx4vnTArc8B kHDNXTzj9aSOPz+nL90eTYhxXLtcTao1EfClyGpf8p8W/GFe8NWP5tvKqW9xnQ3aT9df EzWLa696/56D0v2IWhyz4r8AMIxJhKnlq1qOQQ9E+J9UjkepnWAHVOvx5DtXGvTUKN5m xRmWKfBG8kghEO0/VdMgv160Q4XwndRJjGhN6eeEroK03m5wURzY4DXPJtbIDfwho0OE cncNzk0zyvdKN9Zc2LsgPKw6B2FU5AJ8YiviOgku4P6x90PMCXETHQRO8y6aAVu4Ys5a eM4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472441; x=1761077241; 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=RQFcykZzWxrbZtxjDQ1imqMK5f7bh9/0kLjg1nW4RaI=; b=UZxtTDtqabp2HH4R7ZLNZxGzTFYnKNeQzsY2MdoUuhK3k3t6Xxscl1SYQbCDyOzbmn 2SJwrLrFttEoYx2BgLFA+ezo8kJZMieWTboqVhnoDMJTmvAIDq1qnR2lRwB/F+VOOKcw JkOVjHB2lBsLc7mFxmRLWmGx8Kk6k/JmpeExH6q+4PhRicZ6ez3CFBZ6IWiF/XIu9SM+ /Kj1VvttUPD44WTUFaezya/scLRf1CbbTeo0Usmvjdk4icszqH2H7+mqhp8XSSb8DO95 oj0DMEaEZezpb+P90+HaDVSejULflqb1BsY7rUYH3ZOlyKnH/UudIDUitxpmIX43HKF1 oHEQ== X-Gm-Message-State: AOJu0YwmY2wC9Hqoq+oz2RlzfTlatVJ/7+SKCoxT2eMdgLJdz7Hv01t6 rqkiWiY7RfSRo+pjm/xhd6NTMCjOIDIQlTcoQ7ic2chtZIaLJ+47OvWkl92B5mnsm0SnyBiqF0M 589cbBnk= X-Gm-Gg: ASbGncsQW6txK/8+Nl7/FbwSjelxT3vON2OZX4jHpYhgI189nD/OlE2hY8l5RONbiz/ f76osD/eX1t4L81N4jHHP9TKtUGCCcT+tdXCClDyPM6MbE74GYbyT+qtSMLFaoTDK3XOiTo9TFJ zqe4bnjWZ4soifI6Kr/5QCX7JaRhJ686oGjN6DHhulSOaKeNGOCcMwWn9yY0I46PLGnPk16tSgc 88Boe2L3XT4UgrCvCYEnGPEQPzDZ+wa32N6/jMJD/yrd7D3w1y4e5Uz+EWpcoqp+/yBIbDil5Yr 0d0/q1KvKnaN9uM+Lqvnu9xn+BkxKEZagHVa27aL4tOxReISvaLHHK5tUy5RXQvnFgxa/HXvFs7 1zsfHg8Zk+3ZCABj+hVEdnhAZ6F/91ku+uGHKveG3a3vXPzH8ybA= X-Google-Smtp-Source: AGHT+IFTekPh7oqJ8zUniHifv2uMnEIbd5Mc87XkqoE5Ja8vg1S3jEzyAj280NvyZ+C4oYWuwN0VbQ== X-Received: by 2002:a17:903:3d0e:b0:267:a942:788c with SMTP id d9443c01a7336-29027216267mr338602625ad.1.1760472441359; Tue, 14 Oct 2025 13:07:21 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Manos Pitsidianakis Subject: [PATCH v2 03/37] target/arm: Update ARMCPRegInfo for 128-bit sysregs Date: Tue, 14 Oct 2025 13:06:44 -0700 Message-ID: <20251014200718.422022-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::534; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x534.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: 1760472844603158500 Content-Type: text/plain; charset="utf-8" Add ARM_CP_128BIT for type and functions describing 128-bit access. Reviewed-by: Manos Pitsidianakis Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpregs.h | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/target/arm/cpregs.h b/target/arm/cpregs.h index 48a406a5fb..e1d54baead 100644 --- a/target/arm/cpregs.h +++ b/target/arm/cpregs.h @@ -149,6 +149,8 @@ enum { * should not trap to EL2 when HCR_EL2.NV is set. */ ARM_CP_NV_NO_TRAP =3D 1 << 22, + /* Flag: For ARM_CP_STATE_AA64, sysreg is 128-bit. */ + ARM_CP_128BIT =3D 1 << 23, }; =20 /* @@ -191,6 +193,10 @@ enum { #define CP_REG_AA32_NS_SHIFT 29 #define CP_REG_AA32_NS_MASK (1 << CP_REG_AA32_NS_SHIFT) =20 +/* Distinguish 64-bit and 128-bit views of AArch64 system registers. */ +#define CP_REG_AA64_128BIT_SHIFT 30 +#define CP_REG_AA64_128BIT_MASK (1 << CP_REG_AA64_128BIT_SHIFT) + /* Distinguish 32-bit and 64-bit views of AArch32 system registers. */ #define CP_REG_AA32_64BIT_SHIFT 15 #define CP_REG_AA32_64BIT_MASK (1 << CP_REG_AA32_64BIT_SHIFT) @@ -903,6 +909,9 @@ typedef struct ARMCPRegInfo ARMCPRegInfo; typedef uint64_t CPReadFn(CPUARMState *env, const ARMCPRegInfo *ri); typedef void CPWriteFn(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value); +typedef Int128 CPRead128Fn(CPUARMState *env, const ARMCPRegInfo *opaque); +typedef void CPWrite128Fn(CPUARMState *env, const ARMCPRegInfo *opaque, + uint64_t valuelo, uint64_t valuehi); /* Access permission check functions for coprocessor registers. */ typedef CPAccessResult CPAccessFn(CPUARMState *env, const ARMCPRegInfo *ri, @@ -991,6 +1000,11 @@ struct ARMCPRegInfo { * 2. both readfn and writefn are specified */ ptrdiff_t fieldoffset; /* offsetof(CPUARMState, field) */ + /* + * Offset of the high 64-bits of the field in CPUARMState. + * Similarly, may be omitted if read128fn and write128fn are set. + */ + ptrdiff_t fieldoffsethi; =20 /* * Offsets of the secure and non-secure fields in CPUARMState for the @@ -1046,6 +1060,13 @@ struct ARMCPRegInfo { * fieldoffset is 0 then no reset will be done. */ CPResetFn *resetfn; + + /* For ARM_CP_128BIT, when accessed via MRRS/MSRR. */ + CPAccessFn *access128fn; + CPRead128Fn *read128fn; + CPWrite128Fn *write128fn; + CPRead128Fn *raw_read128fn; + CPWrite128Fn *raw_write128fn; }; =20 void define_one_arm_cp_reg(ARMCPU *cpu, const ARMCPRegInfo *regs); @@ -1115,6 +1136,9 @@ void arm_cp_reset_ignore(CPUARMState *env, const ARMC= PRegInfo *ri); */ static inline MemOp cpreg_field_type(const ARMCPRegInfo *ri) { + if (ri->type & ARM_CP_128BIT) { + return MO_128; + } return (ri->state =3D=3D ARM_CP_STATE_AA64 || (ri->type & ARM_CP_64BIT) ? MO_64 : MO_32); } --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472524; cv=none; d=zohomail.com; s=zohoarc; b=Hvt46GEg4bVOQ2rCPkUeDISzj8TJs8/KPyksnZF9EE4aKtFY8vj0NWaybreD8Ylm1vElFTl3iMZ7Tq31TRQqeeLpyg58iiS1k7OeRLea5MAGOmre0jDpU29ePjKPYDbn6gljDT3PB2SKmZrTC5vKB/ylWnQ95fLxvL2rOK7iLPw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472524; 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=Z1lTFXn6uKuCiyCV0s/y9SEm5jCxZH9j54VQidGTnOE=; b=ddbVBf/ltaayun/r3TLSTNzRGTbmBxPpq98db+TfH8JolR6CouOIHqcvvMAeqjq1WcRQJD2/dUUQYkL4sxNj6/TY6YZsQwHoab9RFjopKD9mHLYA5Rp5RaJo9lEGvBnCdVca3WiihXuG6xrk/L+WnIlb15GMNWxCrF/MehTGfgk= 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 1760472524399412.45314684332675; Tue, 14 Oct 2025 13:08:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJ7-00022G-N0; Tue, 14 Oct 2025 16:07:41 -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 1v8lJ2-000218-G0 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:36 -0400 Received: from mail-pl1-x62a.google.com ([2607:f8b0:4864:20::62a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIr-0005K5-CY for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:35 -0400 Received: by mail-pl1-x62a.google.com with SMTP id d9443c01a7336-271d1305ad7so91248735ad.2 for ; Tue, 14 Oct 2025 13:07:23 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472442; x=1761077242; 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=Z1lTFXn6uKuCiyCV0s/y9SEm5jCxZH9j54VQidGTnOE=; b=clv/snpUmw92lG6VX1H7vED5jSjGT1uZGgfRAY/ch9YYcu/sKydyvLFl/+O6BQ770+ RYUQJFzBA5EDcn38k5Yf0I+jFBDKY7u9ml4LbKJZINeEoq8e6LqMlX76bYctrxG+7iCs LVDA1C311n14osUblOs66EqgF5dCsrMSstEjpnvx12KyXbs8MFso6YxLeZ4avdxSehMS Azxv7cc+nKwt/0uJaFazGnwJY2d5t5n2wFFlOhSuMVBAs+UQLfK510jNlrv7aO60fmzy xsEm2uPHoqK1Xjgz0weqqHgc7I5UnvC+BH36BZsdJqGuXb4Ove1szSClYOcH2DVnS0Rh 6NKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472442; x=1761077242; 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=Z1lTFXn6uKuCiyCV0s/y9SEm5jCxZH9j54VQidGTnOE=; b=qKunjxMgfPmKa+wyAYp7EmU2eYF03bW+lDRnt0YSP5TBENin39+obAzAsJ/f8LBoXJ CBbL23Q+xEDbzVFv2ftLPZbXZLxja6YbDHCHT/zbfmgwYII09v+BGjBYPdIsehDq6/w2 c+zubhIsxYc8sZKeew/0vx9IH6BGwXukNw8dFUipkzUjrxmlnzzTVwAFKY6hELYvx357 JwV60HwqQye5xwuF6TXWWTTjgOg8UVSTeNGolKWt9DVpaYvnbAR919XynWgfKFdhsdPh 9Og++krsDX6ixObc5XPsY0URQzOvsZatE5t/t3FPpm3vDFUlafcTY0ZVJ4oK15XvkIF5 OL+w== X-Gm-Message-State: AOJu0YzsWYLkn0ACqpwpRpZ63oggHcyzHfedZh5m4Ze80Zy7YB9TiG0x +9wpWtS4tsq1ICFnjtH0VGSduE0b0I9KXQ1f5TEaZ9+eqLIlRbNKzhLqdji+DW456Q6GTmYw5cm SWWolnJ4= X-Gm-Gg: ASbGncvM6lFsse8vpI7dplfR8qPDZCk54EWrXnbq7pOPIniIDce0co4wLNFxcHuSf7b vQfO/089QZWvsPm9sQP4fMJ809NrXwPAC5K0mc1VmUkJhIbR+CoT3Ffcxe+GrSKxIoDRwihxYZR p6WU5ZMCbpxWzyEGoW0BI+R+OUPP5ATc0I2jY1YNc7nR0Z7yfaO9KNUXEIC517pn6X8pzHrK9rI L7pQ2ftXsQ+P8xb/FRcq7NXC2BWQYe9WUcBN2YS9DcJ3ygU39Riko1Ruhd30SCdXcQekFRQgye9 INJgjoDSr+DZjBm69O4is08F0obbMNXGBMPgRaS09lLTKHRPoHCzYcjSPNbfl309wELDRR6ht++ NNIEgUjOjqPRxjKIE0KUtnA/MscS4olZD6i9T45REHiDlw9Lopzv3JLZP7u1ySw== X-Google-Smtp-Source: AGHT+IHAu5TFFyFx1nMwVkb1PXZIOMOpGle0COxxdWE7E6K1YFCbxJa3M8xJ8WIMzN2izlLCMsfW8g== X-Received: by 2002:a17:903:19c5:b0:27e:f07c:8413 with SMTP id d9443c01a7336-29027356911mr278840405ad.9.1760472442010; Tue, 14 Oct 2025 13:07:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 04/37] target/arm: Asserts for ARM_CP_128BIT in define_one_arm_cp_reg Date: Tue, 14 Oct 2025 13:06:45 -0700 Message-ID: <20251014200718.422022-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::62a; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62a.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: 1760472525965154100 Content-Type: text/plain; charset="utf-8" 128-bit registers are aarch64 only; disallow non-zero reset values. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/helper.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/target/arm/helper.c b/target/arm/helper.c index 8c0b8889db..3b06704963 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -7805,6 +7805,22 @@ void define_one_arm_cp_reg(ARMCPU *cpu, const ARMCPR= egInfo *r) assert(r->state =3D=3D ARM_CP_STATE_AA32 || !(r->type & ARM_CP_64BIT)); /* AArch32 64-bit registers have only CRm and Opc1 fields. */ assert(!(r->type & ARM_CP_64BIT) || !(r->opc2 || r->crn)); + if (r->type & ARM_CP_128BIT) { + /* + * Only AArch64 regs are 128-bit. There is usually an AArch32 64-= bit + * register aliasing the low half, which must be defined separatel= y due + * to encoding conflicts above. + */ + assert(r->state =3D=3D ARM_CP_STATE_AA64); + /* + * All 128-bit regs are UNKNOWN at reset, so there's no need + * for either resetvalue or resetfn. For those EL2 registers + * that become CONST RES0 for EL3 with EL2 disabled, we allow + * ARM_CP_CONST, but only with value 0. + */ + assert(r->resetvalue =3D=3D 0); + assert(r->resetfn =3D=3D NULL); + } /* op0 only exists in the AArch64 encodings */ assert(r->state !=3D ARM_CP_STATE_AA32 || r->opc0 =3D=3D 0); =20 --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473172; cv=none; d=zohomail.com; s=zohoarc; b=QhT/t5JK+MZHEtDuLPxNIDYGOK7U9mrB2Fe0/3Lw+lCni+MNrkESR946Q0n2XKhoxqkHm68tSpvLmf5zNM9WvPD7uERjEV1SE+VSqyMZSX/s7bqpsff+2i6ce1xaw9a7iz/ql1WKFqdPS/LjDsGzHJVc60VUOSP/qOcpDWQLF3I= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473172; 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=nVLp2fMlNwwT84vDf2syQ7Ds5F9iDytds/Dwe6kgLt8=; b=f7//iNB59QvGCEOXNGjJPMomGUWqgVWV1HD57djprEvbEKhkVKlq21FZxATnBQc2EdIl2EokeJkP82SOroTxuS4b+AWDz/8GahbuLesJqHK4jpGsgZPNQpUvydvorFfa9SstrcXBwWdknjDJAYnJV7ZXNbCkjYGez0NC0Ho+d0U= 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 17604731727144.323034144441863; Tue, 14 Oct 2025 13:19:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJG-00027E-O4; Tue, 14 Oct 2025 16:07:50 -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 1v8lJE-000262-A3 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:48 -0400 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIt-0005KH-10 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:48 -0400 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-b633b54d05dso3738298a12.2 for ; Tue, 14 Oct 2025 13:07:25 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472443; x=1761077243; 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=nVLp2fMlNwwT84vDf2syQ7Ds5F9iDytds/Dwe6kgLt8=; b=BRsx4Z51DGoR5yBPilIF/AJZTSGUjXttk6NkCHrOKYjK/FSS69i4a/TTrpnPJG2yGI SPCQ0h0TE8XH+xXaZ8C2wBUAyA/MyJiIojG7nDdd+dmbZnOoci9V8ariCUjtQ1MuAlZk 3BAHkxDvnrehLt20OGWPDHtnNIbpqTzR06eu2xZRqM073WPDpF4EsFGXKgdNwgTMhaKb 1Tym61M1FD0V/9TbJntsUp3qgm7VDFWbAOWHSserilkvwq2fjs5W3iqDCaNlZ7VDUlgQ gBi/WJXr3uEW5dHt5noxtv9x/RnqYn0AOLCOQsCAtV/1/mfxuqR1Nvkzp207+eDKoDZ1 s6yA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472443; x=1761077243; 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=nVLp2fMlNwwT84vDf2syQ7Ds5F9iDytds/Dwe6kgLt8=; b=JPViOlFiqixFKWKtKO4UKgIy/UTfUVt8rlW6p571SRFa7XOsQSMHGyKAavVjQV1vtM oj3SqQ77SovBxhDfVmc2ncPG7ffnINZkTFX9+syYF4b49hhfKM3j87/dnm//LSCVSGLh /On1N+/iTck+S/z4tY39xH0ham3VRUK3MImG/ubpCVgQcTrPLXC1mg9JkND8oFVehUuA 00yg2GKu9vd1McXhBGqPbeuK3BTQ7HT4y6ocL7RVWVXTiUeJstbHEj0D20eWzNtzjhox rBRa5NT36zsk5IUzkdPil3/yZDt1EHDhHqjDyPcLWXsMjOE6Ls93lXZp2JSvG+8DHXhI ktzw== X-Gm-Message-State: AOJu0YzFGkJFvBOzHIl2qBlDijuQFpyXpMwYEeLX/okXErmFQFbMuPim bjsAJ55nLCSXeRQ18WIHS5yjL/ls+nSYkQpAxNbktVgSN2tdRGusgoyc1wo3js8iD/35ejGqGCd QrdCnzLo= X-Gm-Gg: ASbGnctgwCkYFz3X17UXfQ7E6l2zdUa1Tm2XcZHKyae52G7jKJ/0AH1/BvuFED0oBV4 bXjZ5uLhbukMgC6czJqwcdLY/fzv9FY2atb2B5YwW6/lQqE94su75THzu2MzBGz/iKV5+EpTt3i KwRwQawLLgqTBYH9TWaGJklAXLvxvAPEaDdSKTMbL4y8Ww48nw/2hYGA0hc36aYD9LHjFz8o/9c LFXLMeI/rA8mdm9u86gK8LGuOPWwK+XTX8VU1UWgkfBfFMWRJorkPPJ8/ZCmzQTDY4qgZqc57Pn q/qqdSLyun9J05AVJ3e70kx/+/qP/6/bwT0kvnkPTQRRJx6T48hpiA4xxw9DTvNWkaQ96Su/Je6 8zFTkR7GyTMWRBKwkHus9QM/Mz4JgJccboBmWfL71FsKSZUjS/stAaM/Yh/2+MWrLvQEPymHotX 2dCpxyRi3Iyw== X-Google-Smtp-Source: AGHT+IF3BrAmthwPP0cKfOYrGdFnqXDCZjrsoW5R/7pgybN6uH6v2dWfQrTGHH7lapZcdSv4utMSVA== X-Received: by 2002:a17:903:32cd:b0:269:8fa3:c227 with SMTP id d9443c01a7336-2902721310amr330372025ad.8.1760472442677; Tue, 14 Oct 2025 13:07:22 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 05/37] target/arm: Split add_cpreg_to_hashtable_aa64 Date: Tue, 14 Oct 2025 13:06:46 -0700 Message-ID: <20251014200718.422022-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.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: 1760473174348158500 Content-Type: text/plain; charset="utf-8" Rename the existing add_cpreg_to_hashtable_aa64 as *_1. Introduce a new add_cpreg_to_hashtable_aa64 that handles 128-bit and 64-bit views of an AArch64 system register. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/helper.c | 61 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 57 insertions(+), 4 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 3b06704963..c240edf182 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -7668,11 +7668,9 @@ static void add_cpreg_to_hashtable_aa32(ARMCPU *cpu,= ARMCPRegInfo *r) } } =20 -static void add_cpreg_to_hashtable_aa64(ARMCPU *cpu, ARMCPRegInfo *r) +static void add_cpreg_to_hashtable_aa64_1(ARMCPU *cpu, ARMCPRegInfo *r, + uint32_t key) { - uint32_t key =3D ENCODE_AA64_CP_REG(r->opc0, r->opc1, - r->crn, r->crm, r->opc2); - if ((r->type & ARM_CP_ADD_TLBI_NXS) && cpu_isar_feature(aa64_xs, cpu)) { /* @@ -7740,6 +7738,10 @@ static void add_cpreg_to_hashtable_aa64(ARMCPU *cpu,= ARMCPRegInfo *r) r2->writefn =3D NULL; r2->raw_readfn =3D NULL; r2->raw_writefn =3D NULL; + r2->read128fn =3D NULL; + r2->write128fn =3D NULL; + r2->raw_read128fn =3D NULL; + r2->raw_write128fn =3D NULL; r2->accessfn =3D NULL; r2->fieldoffset =3D 0; =20 @@ -7761,6 +7763,57 @@ static void add_cpreg_to_hashtable_aa64(ARMCPU *cpu,= ARMCPRegInfo *r) ARM_CP_SECSTATE_NS, key); } =20 +static void add_cpreg_to_hashtable_aa64(ARMCPU *cpu, ARMCPRegInfo *r) +{ + uint32_t key64 =3D ENCODE_AA64_CP_REG(r->opc0, r->opc1, + r->crn, r->crm, r->opc2); + + /* + * All 128-bit system registers and instructions have 64-bit aliases. + * If the 128-bit feature is enabled, create a duplicate. + */ + if (r->type & ARM_CP_128BIT) { + if (cpu_isar_feature(aa64_sysreg128, cpu) || + cpu_isar_feature(aa64_sysinstr128, cpu)) { + ARMCPRegInfo *r128 =3D alloc_cpreg(r, NULL); + uint32_t key128 =3D key64 | CP_REG_AA64_128BIT_MASK; + + r128->accessfn =3D r128->access128fn; + r128->access128fn =3D NULL; + r128->readfn =3D NULL; + r128->writefn =3D NULL; + r128->raw_readfn =3D NULL; + r128->raw_writefn =3D NULL; + + if (r128->vhe_redir_to_el2) { + r128->vhe_redir_to_el2 |=3D CP_REG_AA64_128BIT_MASK; + } + if (r128->vhe_redir_to_el01) { + r128->vhe_redir_to_el01 |=3D CP_REG_AA64_128BIT_MASK; + } + + add_cpreg_to_hashtable_aa64_1(cpu, r128, key128); + + /* + * The 128-bit definition is the canonical view. + * The 64-bit definition is an alias, hidden from gdb. + */ + r->type |=3D ARM_CP_ALIAS | ARM_CP_NO_GDB; + } + + /* Squash the original to create the 64-bit view. */ + r->type &=3D ~ARM_CP_128BIT; + r->access128fn =3D NULL; + r->read128fn =3D NULL; + r->write128fn =3D NULL; + r->raw_read128fn =3D NULL; + r->raw_write128fn =3D NULL; + r->fieldoffsethi =3D 0; + } + + add_cpreg_to_hashtable_aa64_1(cpu, r, key64); +} + void define_one_arm_cp_reg(ARMCPU *cpu, const ARMCPRegInfo *r) { /* --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473070; cv=none; d=zohomail.com; s=zohoarc; b=DwtmL3Z2BPYKTtW8+NdzKoDApp7nL1PPZufwquq18Ayg/EQeRqjerlpWpO7yEKnY2AzGoR+PVGIOBYVM3nX98eG7A0ifu2a2tcYGKOZYtbsiCb3bdvGXY9JHfOHHUvuvMMx6w9iIiFRKeGRRiM9G2A+9qxR8fICYctn3xrLi0xc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473070; 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=YKys7Ek9JC/8M9FIzy07UPULWMuqDXa5WsPfC4Eqf4Y=; b=JZVKez+8uNXtm2PH+8um/WOFM0JC2PocnmFnOQlyluKV4BHdM/bbXkaw01plLBX6aHF7dlezIt1pROd3WeJPWUam34yF23IxcMbTqb1C1oR6rvsV0pnOoZ8hpmYPHLNErUt7o2BrvaKbXgYtUg950/i+kTneNdjRAwGNQU361Rc= 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 1760473070365575.4797907905294; Tue, 14 Oct 2025 13:17:50 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJG-00026R-JR; Tue, 14 Oct 2025 16:07:50 -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 1v8lJC-00024w-IW for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:46 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIs-0005KP-Ux for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:46 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-2907948c1d2so18057925ad.3 for ; Tue, 14 Oct 2025 13:07:25 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472443; x=1761077243; 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=YKys7Ek9JC/8M9FIzy07UPULWMuqDXa5WsPfC4Eqf4Y=; b=CZgac3MAJdo86IIUA/jtoTZ185xQzNb5YJ1O4MRF+j/u1cyeNPt2iRI/C239z2kf74 gVZeI7l9fPlGYKkoBk4rmRtS3Kco8YRB5GF2b4GXyFk60Io3LSpAln+FDimYchj4T8al XxniAvKMKjoMoD8ia+y7htmZlPP7ZvDU/hC4JoMDN+8xXnWhO2OTbDxwXM7oIqAwvCEQ +etWiVONnKeY0Fdl8TArTB48ZbJyDHrnzf9pNNsHdk996Dxts2oZMmgFUhMAQNdFQPgu YTZgeijBQXD+vjm17c+xw4X0EplqbbEWc7aYJWfUBs4zPdAyvt9Fkr1ZaA2MUSUqjBza 6hRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472443; x=1761077243; 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=YKys7Ek9JC/8M9FIzy07UPULWMuqDXa5WsPfC4Eqf4Y=; b=D2EK7vK8d2SRmhc+sKXeWBeZJES1ArQy7JltoJQ0dAyCajtpjqwa3BcUSS7GhGIn+1 iguNHciyuHB4CCWZHnADOeAWQrhAu2foOCKNEFNm61pGqAGPpFMSZ3VquQa73ZUCfkAI nhrwvVwTZRNr0bFfC+lEI3+/FqqnnoTmI1Ejux7wsRdGH7M65ovzKhLwjObXocEBTBbj l5pX+V58tKIVyBuRer/JRrqM/d2Yqsv9QI++UreyuMDnLysH1c3qN68ZdGA6o67hGA6Q Kl9Cw9GUZ/FA13m+ILHbWo9bjMZUX8fDY+z0F49gCha8uI+Mce5R9ZwJA2PsMN4+wqed Y2yA== X-Gm-Message-State: AOJu0YzCwIsM5nRMa0zPLQsbIJlzg/AYnDGd4nFqd49EGbI4+8Uw6xYS rv5PpZa10pyaHoDi5RN5N6A0WYdKk7T6KOz0KsqJH5BcNjQCBUnH/tLnFtmTbeiQ3FA/rMQf7PS /nc6VpwU= X-Gm-Gg: ASbGncuDnCCKH9KtdoNRuPIF9Byf3eBRKg1DYA0rWjpr/kG3oYAQM/d1DEH7UEwwqmC nyVWIHMS3bf5ZFPChqA1+4zg1bTcLWCIA6cDs5N2BOA9kJmawY8WuP8ohoawIOhgGwc2pVmO3+r o775LEf8FOcMENNWDh7wd9wHcswfLAdvB+V5pAzsSLYWpo/GTNC+h326Oy8kywKQ+z18fG9OIQZ ddVyZm4azrnHVxMWi+0Ta7L2khmlKAeq5UJdkP5NuSBuU0HEIliiE0RoCSEPl8CDPKF6rpskNyK 0yep77MBrB/rY62ueMqwKLdIL2wLNVnkT8ZfB2LQHUKxdbsrtmqSODaK7QFRtzco28pXCFQ7pRH ML3Nw3mSQhfSDs7lQHbH+QNeYhEseQbPNPg0JXegaeaJyCQ7mJsc= X-Google-Smtp-Source: AGHT+IEvJbRlqQ+lwISubUX73MzC/51Jb6MrNgzjsGE1iisUSZVkkJ5XD3QBiWcLwLDerjzDMksaig== X-Received: by 2002:a17:903:37c7:b0:275:b1cf:6dd9 with SMTP id d9443c01a7336-290272f80dfmr318866315ad.52.1760472443340; Tue, 14 Oct 2025 13:07:23 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 06/37] target/arm: Add raw_read128, raw_write128 Date: Tue, 14 Oct 2025 13:06:47 -0700 Message-ID: <20251014200718.422022-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.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: 1760473071230158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpregs.h | 6 ++++++ target/arm/helper.c | 21 +++++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/target/arm/cpregs.h b/target/arm/cpregs.h index e1d54baead..0b0004eff9 100644 --- a/target/arm/cpregs.h +++ b/target/arm/cpregs.h @@ -21,6 +21,7 @@ #ifndef TARGET_ARM_CPREGS_H #define TARGET_ARM_CPREGS_H =20 +#include "qemu/int128.h" #include "hw/registerfields.h" #include "exec/memop.h" #include "target/arm/kvm-consts.h" @@ -1124,6 +1125,11 @@ uint64_t raw_read(CPUARMState *env, const ARMCPRegIn= fo *ri); /* CPWriteFn that just writes the value to ri->fieldoffset */ void raw_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value); =20 +/* Likewise for 128-bit fields. */ +Int128 raw_read128(CPUARMState *env, const ARMCPRegInfo *opaque); +void raw_write128(CPUARMState *env, const ARMCPRegInfo *opaque, + uint64_t lo, uint64_t hi); + /* * CPResetFn that does nothing, for use if no reset is required even * if fieldoffset is non zero. diff --git a/target/arm/helper.c b/target/arm/helper.c index c240edf182..e321f404e6 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -59,6 +59,8 @@ int compare_u64(const void *a, const void *b) (*(uint32_t *)((char *)(env) + (ri)->fieldoffset)) #define CPREG_FIELD64(env, ri) \ (*(uint64_t *)((char *)(env) + (ri)->fieldoffset)) +#define CPREG_FIELD128_H64(env, ri) \ + (*(uint64_t *)((char *)(env) + (ri)->fieldoffsethi)) =20 uint64_t raw_read(CPUARMState *env, const ARMCPRegInfo *ri) { @@ -88,8 +90,27 @@ void raw_write(CPUARMState *env, const ARMCPRegInfo *ri,= uint64_t value) } } =20 +Int128 raw_read128(CPUARMState *env, const ARMCPRegInfo *ri) +{ + assert(ri->type & ARM_CP_128BIT); + assert(ri->fieldoffset); + assert(ri->fieldoffsethi); + return int128_make128(CPREG_FIELD64(env, ri), CPREG_FIELD128_H64(env, = ri)); +} + +void raw_write128(CPUARMState *env, const ARMCPRegInfo *ri, + uint64_t valuelo, uint64_t valuehi) +{ + assert(ri->type & ARM_CP_128BIT); + assert(ri->fieldoffset); + assert(ri->fieldoffsethi); + CPREG_FIELD64(env, ri) =3D valuelo; + CPREG_FIELD128_H64(env, ri) =3D valuehi; +} + #undef CPREG_FIELD32 #undef CPREG_FIELD64 +#undef CPREG_FIELD128_H64 =20 static void *raw_ptr(CPUARMState *env, const ARMCPRegInfo *ri) { --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472730; cv=none; d=zohomail.com; s=zohoarc; b=EdOI/2mE60BLTI/XX6TQpRrlEs8NSHIxSaAvay2sy6rwgjiKijYP3PIfEKHCnBCtcmlKLeN42MfTsBZgWdhIB7OS5Gcxyz1qU+HENjDUD1sT6XfIabemRQKX0lc3Z9VuCWSnCGWUs6jCFLSdZWBagy5St6I53ZdOI+kn+MGcMkw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472730; 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=q23tB1U9bNaZ2l7nF9RSiGdiVjLTeNqTC1oumAamC1U=; b=ZWsSwNcUk40VY11K+bFdi3Wh1q4YHuEv1BAZe78MLA0kVEvKuIg+qqtEM77FdZGnl8cjSxU6VYHxSZrjDMrQopH32phQhfFsNmQlaYwoWgjKv3Hn4eoI0h+7BMInMvlNJwXZwthH6HSxofioFqXzcDrsRvPMQdiHlq5GuzYQTmM= 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 1760472730750260.9316407005839; Tue, 14 Oct 2025 13:12:10 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJJ-000296-Hg; Tue, 14 Oct 2025 16:07:53 -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 1v8lJE-000267-SA for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:49 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIv-0005KZ-UO for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:48 -0400 Received: by mail-pg1-x52d.google.com with SMTP id 41be03b00d2f7-b6a0a7f3a47so39151a12.1 for ; Tue, 14 Oct 2025 13:07:27 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472444; x=1761077244; 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=q23tB1U9bNaZ2l7nF9RSiGdiVjLTeNqTC1oumAamC1U=; b=U6t1AZC7MozmxazCbDeogd2DlZSgW00UvxX+YVuP8QzCaLjuOFzy6/tpXUMfJHb8GJ xxy6+5ktx1gqDE6S2HweW2yopTxRPYWI3EJBKnk4mmts8+35H3FRM0r2Q4C+r3NxVJ3g eNDhj0DNc6JNCeNm76Ojyl3aoyQX9AKBirsK/K177RBA6MQOhbxISUoCkRuoUq4/6k8Z Bf5XPLN6SLB+xHShnZXhOy56KQqXvDlg1cDSW3WyouSYSVIgQBqJwGZjWSU6VyiPYeXg aFpsPbB72j6WBmx0vIUgzE1yFZoVOVdIpjXU5X8tY3TsORoL/rIq6v7q8u60rzqE+vqS X5hQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472444; x=1761077244; 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=q23tB1U9bNaZ2l7nF9RSiGdiVjLTeNqTC1oumAamC1U=; b=d692qHDAy5cjy+nGjKq4h3g73BHRGTeCk2mMWC92XqR5ZpIyY3+bb4MvUAT60+TCE0 JdH3R8t5OAgdyWkmC8WK7XgQJRilOdxgn4GaiCUmWcm+OYXXVslM5KP7xDryUgbkndY+ NvmquvEWU4/v3NmXKutKe6+hJX+s3UdOO8SXtsRusY5a8NgimNX4/cPHAclKUBGa71Lf zw0G9lnY9UO8+p2b4g5mGtZowTKd5YK6cH9SdNUDZC0/UzhmKubyPZExliE0djTqkmpT ikpkMVQBdU6ujonnT13INxWmp+2AsJGZcDu98DHZqAePspuZyBVYoNRgQPIOMb6eeIbU 5TGQ== X-Gm-Message-State: AOJu0Yz68tHdZHXm9m0t6/QZw9+2QtvYUiCclaKCIZbrE6/hyPsE/e2X IrHzFe3e4y1uyM4292bvvcRaXoczAOhTuHFmuxv6Hd4eYM4OCfQLVIdC24YSWJh5rGkxXM7MGLw 94BQI/gw= X-Gm-Gg: ASbGnctQxWsJAm14u66APe30ex2zci3EfgkIUduCzI37zWuK0yb9kvlDfQwQrkTd6si gIJ1RQ4e0Rg7EkP8uOe5UiVMhRJiR9M8zxyWxX6jxemmqOGnk9AJJDZKEfJPUJTwmluXwlx1uXR uxwgS1YctVbOv0VI6eZQFhUD41hnaMofrrBNEKG93MW2AZTReb9ukZoVQOoevT6oLfUCtUN0rGx DTLzguSDlvKKxqhqNynPueZywwhO5eZkuyEzI1KEuF570MIKyBv1L6jRYDsGfv2UjdyA3ImjKqH b7aMlHWam7zV3WLLIUuWlmuK2DY2HnAtOU3LJrAmE9TGHMq3SZG+3rPwGJr50K1Y7mgXx7Qecom S0VudJg/uSvCmfiw1tncvo9GbppNphp75ADjF3B1FFa/ymHrUmvU= X-Google-Smtp-Source: AGHT+IEO4s/P9HUhma3VWST/lnjLQgQmfXj101exd0n7+EOTmPFTKhqYsSfXKXkEK2h46wwY8/fjmw== X-Received: by 2002:a17:902:e94e:b0:279:daa1:6780 with SMTP id d9443c01a7336-2902741cf99mr333450205ad.52.1760472444078; Tue, 14 Oct 2025 13:07:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 07/37] target/arm: Add read_raw_cp_reg128, write_raw_cp_reg128 Date: Tue, 14 Oct 2025 13:06:48 -0700 Message-ID: <20251014200718.422022-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::52d; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52d.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: 1760472733163158500 Content-Type: text/plain; charset="utf-8" Add the functions and update raw_accessors_invalid to match. Add assertions for !ARM_CP_128BIT in read_raw_cp_reg and write_raw_cp_reg. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpregs.h | 1 + target/arm/helper.c | 49 +++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/target/arm/cpregs.h b/target/arm/cpregs.h index 0b0004eff9..f6658abc57 100644 --- a/target/arm/cpregs.h +++ b/target/arm/cpregs.h @@ -1157,6 +1157,7 @@ static inline bool cp_access_ok(int current_el, =20 /* Raw read of a coprocessor register (as needed for migration, etc) */ uint64_t read_raw_cp_reg(CPUARMState *env, const ARMCPRegInfo *ri); +Int128 read_raw_cp_reg128(CPUARMState *env, const ARMCPRegInfo *ri); =20 /* * Return true if the cp register encoding is in the "feature ID space" as diff --git a/target/arm/helper.c b/target/arm/helper.c index e321f404e6..d9d8ae56e8 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -119,6 +119,7 @@ static void *raw_ptr(CPUARMState *env, const ARMCPRegIn= fo *ri) =20 uint64_t read_raw_cp_reg(CPUARMState *env, const ARMCPRegInfo *ri) { + assert(!(ri->type & ARM_CP_128BIT)); /* Raw read of a coprocessor register (as needed for migration, etc). = */ if (ri->type & ARM_CP_CONST) { return ri->resetvalue; @@ -134,6 +135,7 @@ uint64_t read_raw_cp_reg(CPUARMState *env, const ARMCPR= egInfo *ri) static void write_raw_cp_reg(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t v) { + assert(!(ri->type & ARM_CP_128BIT)); /* * Raw write of a coprocessor register (as needed for migration, etc). * Note that constant registers are treated as write-ignored; the @@ -151,6 +153,35 @@ static void write_raw_cp_reg(CPUARMState *env, const A= RMCPRegInfo *ri, } } =20 +Int128 read_raw_cp_reg128(CPUARMState *env, const ARMCPRegInfo *ri) +{ + assert(ri->type & ARM_CP_128BIT); + if (ri->raw_read128fn) { + return ri->raw_read128fn(env, ri); + } else if (ri->read128fn) { + return ri->read128fn(env, ri); + } else { + return raw_read128(env, ri); + } +} + +__attribute__((unused)) +static void write_raw_cp_reg128(CPUARMState *env, const ARMCPRegInfo *ri, + Int128 v) +{ + uint64_t lo =3D int128_getlo(v); + uint64_t hi =3D int128_gethi(v); + + assert(ri->type & ARM_CP_128BIT); + if (ri->raw_write128fn) { + ri->raw_write128fn(env, ri, lo, hi); + } else if (ri->write128fn) { + ri->write128fn(env, ri, lo, hi); + } else { + raw_write128(env, ri, lo, hi); + } +} + static bool raw_accessors_invalid(const ARMCPRegInfo *ri) { /* @@ -165,12 +196,22 @@ static bool raw_accessors_invalid(const ARMCPRegInfo = *ri) * The tests here line up with the conditions in read/write_raw_cp_reg() * and assertions in raw_read()/raw_write(). */ - if ((ri->type & ARM_CP_CONST) || - ri->fieldoffset || - ((ri->raw_writefn || ri->writefn) && (ri->raw_readfn || ri->readfn= ))) { + if (ri->type & ARM_CP_CONST) { return false; } - return true; + if (ri->fieldoffset) { + return false; + } + if (ri->type & ARM_CP_128BIT) { + if (ri->fieldoffsethi) { + return false; + } + return !((ri->raw_write128fn || ri->write128fn) && + (ri->raw_read128fn || ri->read128fn)); + } else { + return !((ri->raw_writefn || ri->writefn) && + (ri->raw_readfn || ri->readfn)); + } } =20 bool write_cpustate_to_list(ARMCPU *cpu, bool kvm_sync) --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472794; cv=none; d=zohomail.com; s=zohoarc; b=WErv5vFhxx9SoURJ3KDvcMOZbAoO4oiUKODoAppPb4f1ajXZsYrKMRLUP50Ewz4EHzPD7k8X/CLK3wZVgOKxjJIltf6A6mAOa7/OUPzwmPi1NTkwQG08KeaR7n14Cl53esL6QTvC3NP46kH77kDAIF+bOLCOP1Q5a+Jjv47sFVM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472794; 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=K0fUP5O6nkxBJR5PVsToUmM6ZB4XOvQbuwCKjBR/iU8=; b=YHrDTpoDd6XCmCbA9wik52pBqKfplYWbTcCDmIfkU0YG2XwVXZWKQXzCGurkAOEeaueNBKfZHP8OXqw/8wdFcWDqTfysnSIFZfXemZeK0eAteggmrcLcQiHWdZhwop2EUBpwrPqCyMcXVHCF7kSXwkw4wWopeFDf2/wrACelh0I= 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 1760472794118310.05081528363496; Tue, 14 Oct 2025 13:13:14 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJJ-000295-I3; Tue, 14 Oct 2025 16:07:53 -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 1v8lJH-00028B-RH for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:51 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIv-0005Kf-8x for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:51 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-28e7cd34047so45273085ad.2 for ; Tue, 14 Oct 2025 13:07:26 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472445; x=1761077245; 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=K0fUP5O6nkxBJR5PVsToUmM6ZB4XOvQbuwCKjBR/iU8=; b=NUrTxAShOnLA0obeuLNPOsYfVWKQjwB5V3c7Qt2MDRoyesABvHZ7nk1703SlvjuUbK gLMfiI3hd99Gm7NMAPDCh8EqUJZagwHtmY0kTzvSmLGr7VyJkBA04WnM616nxlwo/jg8 hyCWr7/tH0gLD2uV2fd9ptWKFAvF4dTiEBZ468Km2ndkDgqNdsfts48nu19g74o+R1dn c1WQJKSFyus67UT3j3rQbp3TImkDBf5X7J/+BDPQXYe5PdWkhaAzEQVWbrHmtP05GQtt zFfxU0v8dWtGt4X8k3Tv+Mkv69yk3xK2fNDIoanm6Ix26VqHLxBD1SLJF+bDdEmFF81N b73w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472445; x=1761077245; 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=K0fUP5O6nkxBJR5PVsToUmM6ZB4XOvQbuwCKjBR/iU8=; b=DHLrWQuT2k6dCEL5TZMnIhE9ilW17GyEGZhj+sPfz9BgebGcVHu8+Fyoui4xrdc684 GtHOXhZANTpWfruhH9KZ4ZCTllxPe3Ckds9lzkWFh036IqLIIaNFbbsReZ/LG842TXoy sZs/BZxifQMcUg8D0mW4GXGQrq4eK2diAWnejOkPSCCK2H+YJEJIN9P3Z/XMvAj2O8c2 5qYbH1m20enI71YNw6RrXKh5zq+hzjRb6vSzsXYnMOiqnZn8hR0ivdE8ldBRGssqCMdw hEDfeg9QC5BGdAt8CicjjpWlzShER1HFRq6RBARpQmxKzEBuyTv4EiWm1HlF0j86m8D3 LuCQ== X-Gm-Message-State: AOJu0YyrZigYF2mdcSX6xkFNecoQV92M4xcLzlMZWpSiKGNy1hqfoxYx chuTUr51QzRlFy1C5VbBDZJ/7h6UozG0hZyf+BlgTVKEJYXFsVA7+vOnWJR/2iPygLux7ot6CJV L5g7mBCc= X-Gm-Gg: ASbGnct1f76n0g4/kqcb/B47SygAS9ak4omkn2uQhxV7xgEhXMGAXVwQl9sHd1GWTqq p6u6JEAVi7EVVW9rtSqamE7GU9Q9xHZWgVwfn58nEd/WtuFVB9A9bowrcCOz+q3oYZT5OKdCCIL P7xbTaQ0dbYjx4Ss4MZcxtjkBbLnZFafTKJWmjkcd7XKbnRqSIdzjSzTsDeRkuoLNgZPcwwtci/ mFI8JENmC7Yr4RioNTtsy1hQ9AqehwBO0u9H9xwtSZghw+IjNazUfTiX6jNhC4rzsbUKehq0GVx tY1V6rDfZQ9gFJw/GkxBsX1ha+Cyvn8rDOQgNY4KxouXTTrgS1OcdJ+MYoYQjXLb6vNXDbsiJiY XQ2rtJuDmYNDUw74wUhTH7UtAjQ6EHilPaJxJoYTg7siBI32jKTwc/QIs/lgiWw== X-Google-Smtp-Source: AGHT+IGT1IUZzEA0Rx3uAGwlskvY/zznUYoy1T6TPaEUv6Zhtb7VvhFERK5IeW7O244drVkSygWXrA== X-Received: by 2002:a17:902:ce81:b0:288:ea7a:56b5 with SMTP id d9443c01a7336-2902723b882mr375122985ad.15.1760472444677; Tue, 14 Oct 2025 13:07:24 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 08/37] target/arm: Use cpreg_field_type in arm_gen_one_feature_sysreg Date: Tue, 14 Oct 2025 13:06:49 -0700 Message-ID: <20251014200718.422022-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.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, T_SPF_TEMPERROR=0.01 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: 1760472799986158501 Content-Type: text/plain; charset="utf-8" Deduce bitsize from cpreg_field_type. With this, we can simplify arm_register_sysreg_for_feature. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/gdbstub.c | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index 8d2229f519..89324e4ae9 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -274,8 +274,9 @@ static int arm_gdb_set_sysreg(CPUState *cs, uint8_t *bu= f, int reg) static void arm_gen_one_feature_sysreg(GDBFeatureBuilder *builder, DynamicGDBFeatureInfo *dyn_feature, ARMCPRegInfo *ri, uint32_t ri_key, - int bitsize, int n) + int n) { + int bitsize =3D 8 << cpreg_field_type(ri); gdb_feature_builder_append_reg(builder, ri->name, bitsize, n, "int", "cp_regs"); =20 @@ -292,28 +293,25 @@ static void arm_register_sysreg_for_feature(gpointer = key, gpointer value, CPUARMState *env =3D &cpu->env; DynamicGDBFeatureInfo *dyn_feature =3D &cpu->dyn_sysreg_feature; =20 - if (!(ri->type & (ARM_CP_NO_RAW | ARM_CP_NO_GDB))) { - if (arm_feature(env, ARM_FEATURE_AARCH64)) { - if (ri->state =3D=3D ARM_CP_STATE_AA64) { - arm_gen_one_feature_sysreg(¶m->builder, dyn_feature, - ri, ri_key, 64, param->n++); - } - } else { - if (ri->state =3D=3D ARM_CP_STATE_AA32) { - if (!arm_feature(env, ARM_FEATURE_EL3) && - (ri->secure & ARM_CP_SECSTATE_S)) { - return; - } - if (ri->type & ARM_CP_64BIT) { - arm_gen_one_feature_sysreg(¶m->builder, dyn_featur= e, - ri, ri_key, 64, param->n++); - } else { - arm_gen_one_feature_sysreg(¶m->builder, dyn_featur= e, - ri, ri_key, 32, param->n++); - } - } + if (ri->type & (ARM_CP_NO_RAW | ARM_CP_NO_GDB)) { + return; + } + if (arm_feature(env, ARM_FEATURE_AARCH64)) { + if (ri->state !=3D ARM_CP_STATE_AA64) { + return; + } + } else { + if (ri->state !=3D ARM_CP_STATE_AA32) { + return; + } + if (!arm_feature(env, ARM_FEATURE_EL3) + && (ri->secure & ARM_CP_SECSTATE_S)) { + return; } } + + arm_gen_one_feature_sysreg(¶m->builder, dyn_feature, + ri, ri_key, param->n++); } =20 static GDBFeature *arm_gen_dynamic_sysreg_feature(CPUState *cs, int base_r= eg) --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472644; cv=none; d=zohomail.com; s=zohoarc; b=SuxmdTj+ro5XLEzf6Di26M4FCnIuJ+pf4KB2iFos+NL0wPKILneOZ2sLU09ZmooN473b3kfLtQ3u7btLfcczH4smfUaG19DhLqPUjhLIvpL+ECeDB8FLlE5rvipWiNHX0V1F16gxF0y+FP7bmgBWM4CraxlUC+XfV9wNyqRnMJM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472644; 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=4ARUYNEiSDCx6dUOsxKOfcVAkTmdI2Q03KQKAjoC4js=; b=dCjBOhNFoDUYvEsmX+dy3k36kOyPU/yOU8u68UwfLl6mK8gK3yLbGFcI03pn01dytfs7oBM6kTE8XyE0lUEg7bFi/b3EDMKcjG7NIgdWWIeeS8onP4LdIrkxAQ3kjm55hir/9ZJt4UoDEsFl1ZYZ1KHSHxbV1/ribUGHnCrCocg= 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 1760472644170494.3367616044718; Tue, 14 Oct 2025 13:10:44 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJN-0002BV-5x; Tue, 14 Oct 2025 16:07:57 -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 1v8lJI-00028v-S4 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:52 -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 1v8lIv-0005L0-UV for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:52 -0400 Received: by mail-pl1-x62d.google.com with SMTP id d9443c01a7336-273a0aeed57so3529385ad.1 for ; Tue, 14 Oct 2025 13:07:27 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472445; x=1761077245; 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=4ARUYNEiSDCx6dUOsxKOfcVAkTmdI2Q03KQKAjoC4js=; b=yIHlYprMq9iXaXUKv6YnzhVnPuRFtxlYI/NqKeEeHdm2IE79zBvH1Bu72UIK7M/RjH aZLS3oCf0A/VNBM5/Vw4YkUjpLY4CbE4Pi4eGqMStb2pEUH9lMT6Xej6vlVvx4f8PGwh clfOqjR1R+76RmpxswCAuAQ7xBvHnDS1yYjlyIxHzGbCeApVgCAPPSKGvAQAGDlfUzel ZQ1/7MCyWLnK+tpvU7XGQEyeoZMLhoV01zRauxm0O8g4q0cIEVx8Dww09L4db72JKn7u jLpivbu5gQdcLUieR8Asdz90Ulaelpq0mwUBd493hCJjAUEJ41OOpf+4o3toTRt9Zz/Z DlcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472445; x=1761077245; 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=4ARUYNEiSDCx6dUOsxKOfcVAkTmdI2Q03KQKAjoC4js=; b=k2QWWpgRcVVaPTwGGFI5y5KZ7csWpRIf9ny2rhvHMsVVWkVXk6QS5oJfWr4L3+1j8u fz6lzoLSu/m/tJwO+L2vLR+GvAtDBhAH1w3hyGGJAxBcLyeexZyhumKV3PskxOiOL9HM gRT+RzVQ/m6OT6Vvje/sN2dWEWp6yow+lAlfuXxlsS7qex/TZm13A1jkZH/COphFihy3 JpAsZhoKYrz+YWZ+wkMuSnG6XJvK8dp1bVqGi8jDBE1CYmEbYOGhaRdRRGhDC2zHmqIk PM9rnqdLQqhaBLcv//jY6wjaHyvW4qElBwk4UGf0Rf1xVGjGp+HQiK0+aWC5leB5IfGE 5JsA== X-Gm-Message-State: AOJu0YwTrrHBJEmiry/EclMYApQbRVwPZqMXeM4DtBB9u+YxdRsujytP Ck2RbX+fv52Wpokqd1pZ4+F+P5IrlbRvicSlR9hX3+CfyOfgTEyLfkrhrJXgsxGkK62P4LoJnz1 r+Y0AYXc= X-Gm-Gg: ASbGncvZ+zTqaGNhdTShGq8eH2KtM757l9hPrnYocFS5KhLATihkk8fZiB9xTpDz1hz ETXdWerMCDGTMR+JOGj1a2eFXcbC1uFB2Ni6Oa+KPQaVAH/jnuI1Qyk//TnO9fqsBb1R/aUznZE yblBOrpHeeXt/9UzbiTSywr19GYRMf66wfFoPQbgu6H9Lw6fO2RSb4d8b0wTx5p+vFtJ8b1rU0e P0k1XnT9KxkaW8K19fyF5GI4cz+fSk/t24ieW1OkOfImqmwGedG+xbsh8e7L8qDrhhZT1Bo2Txg 6kscd0CCSTQY0goUnebcWmFXWCtHA4+XRyo6KOVHNXVCjXp0LGQS5zlAya0YoyzmkHo4RkAbpRj Vx8v2OsZUkqPFa8do6g5+zLyoUw38y48wo0qqUItMiQHQ1L+13nM= X-Google-Smtp-Source: AGHT+IH21jFpL/bS81DHPbHi/pP111ZmhHJzcDXosPjr09I9i3JezC31Cq3blrVFawB/o9GEsn0CyQ== X-Received: by 2002:a17:903:faf:b0:28e:873d:8a with SMTP id d9443c01a7336-29027f0cd0cmr322417955ad.15.1760472445567; Tue, 14 Oct 2025 13:07:25 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 09/37] target/arm: Merge arm_gen_one_feature_sysreg into the single caller Date: Tue, 14 Oct 2025 13:06:50 -0700 Message-ID: <20251014200718.422022-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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: 1760472648242158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/gdbstub.c | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index 89324e4ae9..8583057b58 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -271,18 +271,6 @@ static int arm_gdb_set_sysreg(CPUState *cs, uint8_t *b= uf, int reg) return 0; } =20 -static void arm_gen_one_feature_sysreg(GDBFeatureBuilder *builder, - DynamicGDBFeatureInfo *dyn_feature, - ARMCPRegInfo *ri, uint32_t ri_key, - int n) -{ - int bitsize =3D 8 << cpreg_field_type(ri); - gdb_feature_builder_append_reg(builder, ri->name, bitsize, n, - "int", "cp_regs"); - - dyn_feature->data.cpregs.keys[n] =3D ri_key; -} - static void arm_register_sysreg_for_feature(gpointer key, gpointer value, gpointer p) { @@ -291,7 +279,6 @@ static void arm_register_sysreg_for_feature(gpointer ke= y, gpointer value, RegisterSysregFeatureParam *param =3D p; ARMCPU *cpu =3D ARM_CPU(param->cs); CPUARMState *env =3D &cpu->env; - DynamicGDBFeatureInfo *dyn_feature =3D &cpu->dyn_sysreg_feature; =20 if (ri->type & (ARM_CP_NO_RAW | ARM_CP_NO_GDB)) { return; @@ -310,8 +297,10 @@ static void arm_register_sysreg_for_feature(gpointer k= ey, gpointer value, } } =20 - arm_gen_one_feature_sysreg(¶m->builder, dyn_feature, - ri, ri_key, param->n++); + gdb_feature_builder_append_reg(¶m->builder, ri->name, + 8 << cpreg_field_type(ri), + param->n, "int", "cp_regs"); + cpu->dyn_sysreg_feature.data.cpregs.keys[param->n++] =3D ri_key; } =20 static GDBFeature *arm_gen_dynamic_sysreg_feature(CPUState *cs, int base_r= eg) --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473133; cv=none; d=zohomail.com; s=zohoarc; b=SPEsDGZZ27OW52JUF5EYadsRbIAPQGANxiYnthLRBTBBg0Ix7ORhLlg0a3DwDs81yre02LK04uQ/6RDw1qj5Nqfff+xVJLPBC4ro3hCeniEpF60r9RMyDS1RhdNED4EOXYTd5ukH3E0wlcWdSPZM9RKvX/bPDl2awucf0swrvJY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473133; 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=XMmgovzsInT0Iqp/dEgmNQN2NAoXX8SnCQShyk1ZzAw=; b=fHrcV4qviTzLsY5Gt7/Qz5CwHdaL4ObvaNJI/PsJLAJKx1b59ubc9cTOVceC9CQZoFi3VAvBOI/nCZzMvotHfsZlI1o/FantGRXNPW+JsTPMpB9JuoiU9MbiGHNl+aArZr0fACbr5qh/kpDDIPrw8c9hFESBG0ROn/rEVM/DYD8= 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 1760473133665774.2298574055158; Tue, 14 Oct 2025 13:18:53 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJG-00026w-33; Tue, 14 Oct 2025 16:07:50 -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 1v8lJC-00024y-JF for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:46 -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 1v8lIv-0005L6-2b for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:46 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-271067d66fbso55818855ad.3 for ; Tue, 14 Oct 2025 13:07:27 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472446; x=1761077246; 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=XMmgovzsInT0Iqp/dEgmNQN2NAoXX8SnCQShyk1ZzAw=; b=zbsEB96vC9U/+6iV7YL25PzXQQPsOx8cqY3eSKZhYoH7tx0zxWz924J54j6pjWXYBL ejTCj2+g0uHfIMymGtcYV/2sj/Puyd/tzUmF6ERAinQjRR8vAQZS8aR7PlKQ0o+SvkQK 634kjy1ExmZNP5i1JeoDpi6qUh03tGV//CBT3SwHjmUR7Iz0svz+yXKU18m1ldmX/XgQ KqpUA0a7qjYTBcluuUl6raNkzy6eZ/t3nHsA8Smn9J1bBTvmirq4ykD8flKDZQRGDizr XGkGXi/9Uqc9H5w2kCP2KC78tqg5P8jld9wNoFZzfQkK+X4qAnOWvMGvjlLowDgklw/0 6ERQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472446; x=1761077246; 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=XMmgovzsInT0Iqp/dEgmNQN2NAoXX8SnCQShyk1ZzAw=; b=pC9UvKl8y9wTYYVbeLam6i9v0i8R1MFRuy1Xbn78OtKwgTctdXa3UL8eBYzvEOEpp/ CUOQIjya8yrVs6KPW+VcrtgNxYN+u5RBuKw64xHo80fYdYWQQg2TcEWqlf47dzdSJcjt Gbol+ZPHRdpZku/aXwTxTNi56hE1kCKRDu4nMtNE5HNDT2xkMhL0XYXiQxy/kKxfO+Z3 9zM1veKp4JNagyZNyAYHVjXTYBFK03iv9uRshGVS6B3FsG8o2EQqXsDiX9DCg0BqksF+ odOj3AFoGuJJVdIVLFoEc6jXECqUUXK41EHtZtcC+wFzDFMqyntjKrwwzRBvAZmvRhbP 4DwA== X-Gm-Message-State: AOJu0YwNqJGBlBk4Tcwm/vj0BSLKl6/5+y26ogZU3G7aPkSNGqhOiPuT uxHphgGgoHU4+7Bz/IafpfLAa5HgEvaLFL46t6mjCjVcKabvQaOfD1HQR/6uMAVtql60luGcPrR y6UjQeIc= X-Gm-Gg: ASbGncutq7zk9jcycwWjQWwY2ZbDpXj6bkec0KePQCHHJqg1hVC4cAXKQiEWg+Avv+e EbTffqXIZyK8YD8n49ISweLTz2zPYmrp71yeDXORHbB6NMaBMKFk0sc/zIDD/InIPV8FCzjVeE6 +EGbkoFsolC1G5RJx9MUpNDgtkER+X8f5gIg7ZOQ4AND6eVghFJ++2l8rATJQQfZZ0KW5zYztHt v6dsIq59KPBXMBKV4Z7s8zPAINRCY82Njz15/bwRbuIspkW0/OIUeNp8VPyTvFuEXFQksDUH0pF bfgviLqxim7aL0Wwz1OXshEgEu0XPcReoW/VOFu9ZGOBbfyP4M26X9MDl7w7xBK+Mzn53XZUXr9 GRdGqe9m1YrBHto0JKCA/0jLZKk+mTgkMVDzI2FjKTq1dvwAXRxIQmajGmm7e7A== X-Google-Smtp-Source: AGHT+IE/lpWC3L326mcumtHN6vyXURbRXdUkndN5addPSnmRzF+u5bmOXW2cpf/pOsCYZmsfHy/KHw== X-Received: by 2002:a17:903:2c06:b0:24b:4a9a:703a with SMTP id d9443c01a7336-29027373d80mr360058645ad.17.1760472446215; Tue, 14 Oct 2025 13:07:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 10/37] target/arm: Handle MO_128 in arm_gdb_get_sysreg Date: Tue, 14 Oct 2025 13:06:51 -0700 Message-ID: <20251014200718.422022-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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: 1760473136557154100 Content-Type: text/plain; charset="utf-8" Handle gdb reads of 128-bit system registers. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/gdbstub.c | 44 +++++++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index 8583057b58..f25bd50b71 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -247,15 +247,20 @@ static int arm_gdb_get_sysreg(CPUState *cs, GByteArra= y *buf, int reg) key =3D cpu->dyn_sysreg_feature.data.cpregs.keys[reg]; ri =3D get_arm_cp_reginfo(cpu->cp_regs, key); if (ri) { + if (ri->vhe_redir_to_el2 && + (arm_hcr_el2_eff(env) & HCR_E2H) && + arm_current_el(env) =3D=3D 2) { + ri =3D get_arm_cp_reginfo(cpu->cp_regs, ri->vhe_redir_to_el2); + } else if (ri->vhe_redir_to_el01) { + ri =3D get_arm_cp_reginfo(cpu->cp_regs, ri->vhe_redir_to_el01); + } switch (cpreg_field_type(ri)) { - case MO_64: - if (ri->vhe_redir_to_el2 && - (arm_hcr_el2_eff(env) & HCR_E2H) && - arm_current_el(env) =3D=3D 2) { - ri =3D get_arm_cp_reginfo(cpu->cp_regs, ri->vhe_redir_to_e= l2); - } else if (ri->vhe_redir_to_el01) { - ri =3D get_arm_cp_reginfo(cpu->cp_regs, ri->vhe_redir_to_e= l01); + case MO_128: + { + Int128 v =3D read_raw_cp_reg128(env, ri); + return gdb_get_reg128(buf, int128_gethi(v), int128_getlo(v= )); } + case MO_64: return gdb_get_reg64(buf, (uint64_t)read_raw_cp_reg(env, ri)); case MO_32: return gdb_get_reg32(buf, (uint32_t)read_raw_cp_reg(env, ri)); @@ -279,6 +284,7 @@ static void arm_register_sysreg_for_feature(gpointer ke= y, gpointer value, RegisterSysregFeatureParam *param =3D p; ARMCPU *cpu =3D ARM_CPU(param->cs); CPUARMState *env =3D &cpu->env; + int bitsize, n; =20 if (ri->type & (ARM_CP_NO_RAW | ARM_CP_NO_GDB)) { return; @@ -297,10 +303,26 @@ static void arm_register_sysreg_for_feature(gpointer = key, gpointer value, } } =20 - gdb_feature_builder_append_reg(¶m->builder, ri->name, - 8 << cpreg_field_type(ri), - param->n, "int", "cp_regs"); - cpu->dyn_sysreg_feature.data.cpregs.keys[param->n++] =3D ri_key; + n =3D param->n++; + bitsize =3D 8 << cpreg_field_type(ri); + /* + * GDB generates an error for type=3D"int" and bitsize=3D128. + * We need to use type=3D"uint128" instead. + */ + switch (bitsize) { + case 128: + gdb_feature_builder_append_reg(¶m->builder, ri->name, + bitsize, n, "uint128", "cp_regs"); + break; + case 64: + case 32: + gdb_feature_builder_append_reg(¶m->builder, ri->name, + bitsize, n, "int", "cp_regs"); + break; + default: + g_assert_not_reached(); + } + cpu->dyn_sysreg_feature.data.cpregs.keys[n] =3D ri_key; } =20 static GDBFeature *arm_gen_dynamic_sysreg_feature(CPUState *cs, int base_r= eg) --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472563; cv=none; d=zohomail.com; s=zohoarc; b=PTATP/raVcTCDQEisg28Cf57+oDHhG6iQWAMcaS1slKw8n7tElSh8nCOLcjazsLAKKrDSp5Wcy/CdLfLi3TnIIh7uzvihw+BgthiqUmOfMuJU4sa3NAswBKuuWVr/jsp7fotmRjF2uai5bU0K9Z/ImPI0o009On8nzYKxbrXqmk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472563; 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=4zpu5IRwfe4YrqdXSS+oOpwx/X0g7xDWsnfW1zvfAS8=; b=VO92dm/T8yrlbWKvIgMruo1LiGBgbkw16R2hV4lcY03M9txAxHKCRhX32+qmEhJKSxQ6Jp//xG4SqF1x/1cykg+R09+YF43UO3QUm50O2pI+CsphZ+x2Xzhz+zJUmHtJ8G0YPHNzwyiE5Sr2EIphnWsdsazQR2bmyGKSYjyf0FY= 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 17604725638471000.2361514513423; Tue, 14 Oct 2025 13:09:23 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJK-00029l-En; Tue, 14 Oct 2025 16:07:54 -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 1v8lJI-000288-KD for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:52 -0400 Received: from mail-pg1-x52d.google.com ([2607:f8b0:4864:20::52d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIw-0005LE-1b for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:51 -0400 Received: by mail-pg1-x52d.google.com with SMTP id 41be03b00d2f7-b4755f37c3eso5041148a12.3 for ; Tue, 14 Oct 2025 13:07:28 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472447; x=1761077247; 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=4zpu5IRwfe4YrqdXSS+oOpwx/X0g7xDWsnfW1zvfAS8=; b=c+5fZxKUo6d/b1gM8bWbxe6XEFf1w6mezipRTbOhDI9zESVst0cn27/TlDWg85vcDm aTNyzsP+wPyCZfBEK1MfV5KIEmnobzPhon/AowUzV+psaO0L42WHyj5ZjHdDFL11TVAw vHi1puRhPyDUy8x9VcWAzmSxA7X/z1i0E7kbdWE5NbVEkPRluoWSYQGSqoan1EIWBJk8 qm1MkC9KVK5YptB53ty3FOTJfhnN0MBe64YuAse99k0kM9Kzj3htYLvfd+hbLhGrMo/o Gm9FBwkq2QxdmvtEDygsDyceDVXbDhdAurJsgEcaQdCr/7MZbqkRlI8dc6U8iyqK/PQp /dsA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472447; x=1761077247; 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=4zpu5IRwfe4YrqdXSS+oOpwx/X0g7xDWsnfW1zvfAS8=; b=GiJgf10HvrrmUhhcrhkWIpmWGqCN/gqqdkdRvJdURW7M220mNR0PcBJkBd0XJ8CVzK 7hiL54oyik43xjOlcdJKl+lKpE0BhdyeeTB2PiLwPGx4/IK0bcIMdlRfN+9/SmVBEgUC DsY7n5kZhTpzoYDNPiWzOLoqbX2GOL7PeHC2SU4GOFeCI9TbPkrdqRCV9d6Cxo5EU+BL OszeACrUYXRTkr6+Ggd+2oKhnbFF/wZfTp5UvxE2ffJ5cRMz5I4iE3VJE3fd793GKAHr BVuDdNOzHCjWt0HKM9jhZ4JJb8HDkNC5vfP/OMRNFOo4Ck/smgFuTiKYXIlURxdSXV5i 2iJQ== X-Gm-Message-State: AOJu0YzjYLmcHmzZIFcjUygCpZ/whDXay+VDdqfyBOIXvW7f+sNt14fT YV8YaEwXuy7cGBFP+XWGS2kBM6fMCbF3nJ0OXKkJ2S+Y9TWSWmhKXk7aNBzJdNaSLa/Tg701o/L 3TbGjLnE= X-Gm-Gg: ASbGncvZYQJBxWc50ADMBbaKa1Y9z0ogCAhM9Jogv1s6k/1XSGVe5JLS2naYGfxjIUP lM32WxQy46UrBV/VYSVoP/qo60/FmiZeGV3K3KJZn8baF++v16jWEyJiEpYdAFiywm3r3oUQ/1R CqMpoay4azZzuXQWKczuQrCnp+dntyfMrvYSQXWC2w8rnIp1fjIHh+J9UgTn0JvIpkJ8uMW0Jze vdnpLv2Vhj7TaMEXvQDtEyPOyKWJ2s/Lj5q/fmSAbq43HrYs+TqeL42GSXTYx8OHQkgCgRV4NrY AXbDPHxLjFxKzBkL5b9y+s2HAUWjN4AZgnck16mdzOucwOyjuQzeF7AD10fDzuEzOboQGw3beFj We/nF+4y8xG1bc6m0zI/bSPb9qppeS3J9Lj1jugVDqjuhF4iOofI= X-Google-Smtp-Source: AGHT+IFDW3Z0cfQuZV4eEHZpuhFz/ji5UYT/OmifL2qo8llQU/VuGyJaOIlnf45I/qG9+Oib1an9VQ== X-Received: by 2002:a17:902:e806:b0:28d:18d3:46ca with SMTP id d9443c01a7336-29027402f00mr364975375ad.49.1760472446835; Tue, 14 Oct 2025 13:07:26 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 11/37] target/arm: Handle ARM_CP_128BIT in cpu reset Date: Tue, 14 Oct 2025 13:06:52 -0700 Message-ID: <20251014200718.422022-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::52d; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x52d.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: 1760472566368154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu.c | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/target/arm/cpu.c b/target/arm/cpu.c index d2fc17eab6..000fa20bc6 100644 --- a/target/arm/cpu.c +++ b/target/arm/cpu.c @@ -180,7 +180,7 @@ static void cp_reg_reset(gpointer key, gpointer value, = gpointer opaque) ARMCPRegInfo *ri =3D value; ARMCPU *cpu =3D opaque; =20 - if (ri->type & (ARM_CP_SPECIAL_MASK | ARM_CP_ALIAS)) { + if (ri->type & (ARM_CP_SPECIAL_MASK | ARM_CP_ALIAS | ARM_CP_128BIT)) { return; } =20 @@ -208,16 +208,24 @@ static void cp_reg_check_reset(gpointer key, gpointer= value, gpointer opaque) */ ARMCPRegInfo *ri =3D value; ARMCPU *cpu =3D opaque; - uint64_t oldvalue, newvalue; =20 if (ri->type & (ARM_CP_SPECIAL_MASK | ARM_CP_ALIAS | ARM_CP_NO_RAW)) { return; } + if (ri->type & ARM_CP_128BIT) { + /* + * All 128-bit registers are UNKNOWN at reset. + * For qemu, they are all cleared by memset to end_reset_fields. + */ + assert(!int128_nz(read_raw_cp_reg128(&cpu->env, ri))); + } else { + uint64_t oldvalue, newvalue; =20 - oldvalue =3D read_raw_cp_reg(&cpu->env, ri); - cp_reg_reset(key, value, opaque); - newvalue =3D read_raw_cp_reg(&cpu->env, ri); - assert(oldvalue =3D=3D newvalue); + oldvalue =3D read_raw_cp_reg(&cpu->env, ri); + cp_reg_reset(key, value, opaque); + newvalue =3D read_raw_cp_reg(&cpu->env, ri); + assert(oldvalue =3D=3D newvalue); + } } =20 static void arm_cpu_reset_hold(Object *obj, ResetType type) --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473256; cv=none; d=zohomail.com; s=zohoarc; b=gZQsqkrzvVKh0s4hYbv5jaLUzHHkecXFy2a4HWG2s1TtT/pe6yzSGJtAizLhL+nebQcy285JoQ32PwWmtyDG0Ov4FZxF5TXBYGGHC7IevtHrWLHOIhuq3v0mZDeXO/BTDxxzo0Rh3yUOd95LQ/9cBQ243XFNKomVqtoZGrvPLW0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473256; 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=/5btMPkNJDkRLOMsyDK95md6xOaMjB+VfIt/mT/S7SM=; b=aQMzaw1YTOhwRBOL4PCjW7+N7G8HuRdHIlFnT7y3mDBCa51E+e1iYOuLH1TQWEAPqlCdynYAwfdObYHJqWyu+4edDt+YiD52VS8gmxlCUw9PPMvIh1jVvlzw62FmCs5B3zRBrQ2BG8NkZDFTLcU5IpBr9pFCb3BOvKBRtv/bHa8= 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 1760473256450943.648163214082; Tue, 14 Oct 2025 13:20:56 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJt-0002Vi-Oh; Tue, 14 Oct 2025 16:08:29 -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 1v8lJX-0002IS-GI for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:13 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIy-0005LW-4O for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:06 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-28832ad6f64so64880365ad.1 for ; Tue, 14 Oct 2025 13:07:30 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472448; x=1761077248; 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=/5btMPkNJDkRLOMsyDK95md6xOaMjB+VfIt/mT/S7SM=; b=VOgNbad4f/ALi6Y5YFy96wYYKo7MgBRd7hbhU7BVZ6voVcu/MF8ZojTUzzWN3Jwe/9 D9su6d5oNEejJubClI7AzAmBsQDzLP+QcWvg/XUPDZ6BAEm5HTgyFs5upnxMp1n31yw3 5khGftQIvuSDycWYLmz4s20pzhNS4/mTPQQ8gOkY2FpQN59xsR6MK5pL8izWj34WDQbq OA94mfnt0GXhKPDglxMhuEG1Gxi1qYazzQKqIckanh5CC828eGZNj9n8lCerfXfLhG3n B6IKPdnjwOWvVOQXXwZI3M0GEGaObwuIcmxSokdsoH2D19aH5yxR/Y4QaZna4Od8Idod IMOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472448; x=1761077248; 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=/5btMPkNJDkRLOMsyDK95md6xOaMjB+VfIt/mT/S7SM=; b=wHwEEKn56hy7uFMNiCWeLkEzJYYbBu0RO4UV/ISAL+rHrSg8S76qZNIMYZbl8ljfYC yxWXrJtqC7hF9I0pShCCmnj0a7M3NJek9nTtzBA97BP0nUZ/auz4opcbf6j3KR+6nXlW VWCinBk300MHsl142doXM3h4A7BqnM8K720XFWCIwa0rWTuAgAkIQbJ8tyM6gpqPhfAi Q7L88iC/tdLcYt1M8PDH4I5W0uyeS4bCY3rLlZaHDycs8n81TjHkQRITHCqhp2gJwjf1 Cn/chw/y8Eap53ezhiLRVNktLBr6UiEr8ozjL4X3AlKBM+KGHsire0TUmQamThhWGiL6 tMQA== X-Gm-Message-State: AOJu0Yw7JuXrW/5spdSV7K+ufPJUwwvy0GPS6502pj3/iCE8CcjGIBkP WxI9rqZDT2XJ/IqP3bSu4JqGJKhBTaFIN+VaYKij5lYw3f24K9CBKdEzdA/sIxiMH+s4cIQZiVk seZXebQ4= X-Gm-Gg: ASbGncvrKAlRlOtYdjR/HpH4T3YXG2cL8IjfaTaItb42NCZqQvx5YdFWNlIRqiDhFAA /zfOGLcL3seATeZprwk7b0WCv6tDTEOjTUgDR8fEeLMrOyBdWPSj37XDFOUHKdmlzPhXzZ/fVUi 3yS/IhnU/pAw87rK2XU3E73Xim/4pfuJpPOYdOw1uIMYNvC5Oq2vvmJqWDGNUFNYX9EIHPnWH0S CgxZyWj7SfhemFeefsx3u9bks0txOFJ/xDVVn7C0Ki/JGKbjNl4KbsC0D26iNAQ3iT+N8s8FqKe WNLuJqYjaX3Njb0nZnpxUW3uHYI8mjtKGqDu7NtEx1xebQ0M4kMRU1tki3UnYdNaAPUgkWI2ibD 39Y1rna0LFs2geoZRhjh+J8n9+/lQqLKp4gHYOoOWcGuVxrSjd3s= X-Google-Smtp-Source: AGHT+IEY/yq2MXLBnNiJVS+zsoolOlLuGEATos/veulfUZhThjphSNKNH627vQjUU+Kbztgd7sZSsA== X-Received: by 2002:a17:903:19e8:b0:28e:ccd7:dd61 with SMTP id d9443c01a7336-29027305380mr313511235ad.57.1760472447532; Tue, 14 Oct 2025 13:07:27 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 12/37] target/arm: Put 128-bit sysregs into a separate list Date: Tue, 14 Oct 2025 13:06:53 -0700 Message-ID: <20251014200718.422022-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::62f; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62f.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, T_SPF_TEMPERROR=0.01 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: 1760473257448158500 Content-Type: text/plain; charset="utf-8" Duplicate the cpreg_{indexes,values,array_len} array as cpreg128_{indexes,values,array_len}. Similarly for cpreg_vmstate_{indexes,values,array_len}. Split the values between the two arrays during write_cpustate_to_list, write_list_to_cpustate, count_cpreg, and add_cpreg_to_list. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu.h | 19 +++++-- target/arm/helper.c | 125 +++++++++++++++++++++++++++++++++++--------- 2 files changed, 116 insertions(+), 28 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index e21612b898..a030539488 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -918,25 +918,36 @@ struct ArchCPU { =20 /* Coprocessor information */ GHashTable *cp_regs; - /* For marshalling (mostly coprocessor) register state between the + /* + * For marshalling (mostly coprocessor) register state between the * kernel and QEMU (for KVM) and between two QEMUs (for migration), * we use these arrays. */ - /* List of register indexes managed via these arrays; (full KVM style - * 64 bit indexes, not CPRegInfo 32 bit indexes) + /* + * List of register indexes managed via these arrays (full KVM style + * 64 bit indexes, not CPRegInfo 32 bit indexes). The registers are + * segregated by size, with 64-bit registers in cpreg_indexes and + * 128-bit registers in cpreg128_indexes. */ uint64_t *cpreg_indexes; + uint64_t *cpreg128_indexes; /* Values of the registers (cpreg_indexes[i]'s value is cpreg_values[i= ]) */ uint64_t *cpreg_values; + Int128 *cpreg128_values; /* Length of the indexes, values, reset_values arrays */ int32_t cpreg_array_len; - /* These are used only for migration: incoming data arrives in + int32_t cpreg128_array_len; + /* + * These are used only for migration: incoming data arrives in * these fields and is sanity checked in post_load before copying * to the working data structures above. */ uint64_t *cpreg_vmstate_indexes; + uint64_t *cpreg128_vmstate_indexes; uint64_t *cpreg_vmstate_values; + Int128 *cpreg128_vmstate_values; int32_t cpreg_vmstate_array_len; + int32_t cpreg128_vmstate_array_len; =20 DynamicGDBFeatureInfo dyn_sysreg_feature; DynamicGDBFeatureInfo dyn_svereg_feature; diff --git a/target/arm/helper.c b/target/arm/helper.c index d9d8ae56e8..d3a425e259 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -217,10 +217,11 @@ static bool raw_accessors_invalid(const ARMCPRegInfo = *ri) bool write_cpustate_to_list(ARMCPU *cpu, bool kvm_sync) { /* Write the coprocessor state from cpu->env to the (index,value) list= . */ - int i; + int i, n; bool ok =3D true; =20 - for (i =3D 0; i < cpu->cpreg_array_len; i++) { + n =3D cpu->cpreg_array_len; + for (i =3D 0; i < n; i++) { uint32_t regidx =3D kvm_to_cpreg_id(cpu->cpreg_indexes[i]); const ARMCPRegInfo *ri; uint64_t newval; @@ -230,6 +231,10 @@ bool write_cpustate_to_list(ARMCPU *cpu, bool kvm_sync) ok =3D false; continue; } + if (ri->type & ARM_CP_128BIT) { + ok =3D false; + continue; + } if (ri->type & ARM_CP_NO_RAW) { continue; } @@ -257,35 +262,77 @@ bool write_cpustate_to_list(ARMCPU *cpu, bool kvm_syn= c) } cpu->cpreg_values[i] =3D newval; } - return ok; -} =20 -bool write_list_to_cpustate(ARMCPU *cpu) -{ - int i; - bool ok =3D true; + n =3D cpu->cpreg128_array_len; + if (n =3D=3D 0) { + return ok; + } + assert(!kvm_sync); =20 - for (i =3D 0; i < cpu->cpreg_array_len; i++) { - uint32_t regidx =3D kvm_to_cpreg_id(cpu->cpreg_indexes[i]); - uint64_t v =3D cpu->cpreg_values[i]; - const ARMCPRegInfo *ri; + for (i =3D 0; i < n; i++) { + uint32_t regidx =3D kvm_to_cpreg_id(cpu->cpreg128_indexes[i]); + const ARMCPRegInfo *ri =3D get_arm_cp_reginfo(cpu->cp_regs, regidx= ); =20 - ri =3D get_arm_cp_reginfo(cpu->cp_regs, regidx); if (!ri) { ok =3D false; continue; } + if (!(ri->type & ARM_CP_128BIT)) { + ok =3D false; + continue; + } if (ri->type & ARM_CP_NO_RAW) { continue; } - /* - * Write value and confirm it reads back as written - * (to catch read-only registers and partially read-only - * registers where the incoming migration value doesn't match) - */ - write_raw_cp_reg(&cpu->env, ri, v); - if (read_raw_cp_reg(&cpu->env, ri) !=3D v) { + + cpu->cpreg128_values[i] =3D read_raw_cp_reg128(&cpu->env, ri); + } + return ok; +} + +bool write_list_to_cpustate(ARMCPU *cpu) +{ + int i, n; + bool ok =3D true; + + n =3D cpu->cpreg_array_len; + for (i =3D 0; i < n; i++) { + uint32_t regidx =3D kvm_to_cpreg_id(cpu->cpreg_indexes[i]); + const ARMCPRegInfo *ri =3D get_arm_cp_reginfo(cpu->cp_regs, regidx= ); + + if (!ri) { ok =3D false; + } else if (ri->type & ARM_CP_128BIT) { + ok =3D false; + } else if (!(ri->type & ARM_CP_NO_RAW)) { + /* + * Write value and confirm it reads back as written + * (to catch read-only registers and partially read-only + * registers where the incoming migration value doesn't match) + */ + uint64_t v =3D cpu->cpreg_values[i]; + write_raw_cp_reg(&cpu->env, ri, v); + if (read_raw_cp_reg(&cpu->env, ri) !=3D v) { + ok =3D false; + } + } + } + + n =3D cpu->cpreg128_array_len; + for (i =3D 0; i < n; i++) { + uint32_t regidx =3D kvm_to_cpreg_id(cpu->cpreg128_indexes[i]); + const ARMCPRegInfo *ri =3D get_arm_cp_reginfo(cpu->cp_regs, regidx= ); + + if (!ri) { + ok =3D false; + } else if (!(ri->type & ARM_CP_128BIT)) { + ok =3D false; + } else if (!(ri->type & ARM_CP_NO_RAW)) { + Int128 v =3D cpu->cpreg128_values[i]; + write_raw_cp_reg128(&cpu->env, ri, v); + if (int128_ne(read_raw_cp_reg128(&cpu->env, ri), v)) { + ok =3D false; + } } } return ok; @@ -298,9 +345,14 @@ static void add_cpreg_to_list(gpointer key, gpointer v= alue, gpointer opaque) const ARMCPRegInfo *ri =3D value; =20 if (!(ri->type & (ARM_CP_NO_RAW | ARM_CP_ALIAS))) { - cpu->cpreg_indexes[cpu->cpreg_array_len] =3D cpreg_to_kvm_id(regid= x); + uint64_t idx =3D cpreg_to_kvm_id(regidx); + /* The value array need not be initialized at this point */ - cpu->cpreg_array_len++; + if (ri->type & ARM_CP_128BIT) { + cpu->cpreg128_indexes[cpu->cpreg128_array_len++] =3D idx; + } else { + cpu->cpreg_indexes[cpu->cpreg_array_len++] =3D idx; + } } } =20 @@ -310,7 +362,11 @@ static void count_cpreg(gpointer key, gpointer value, = gpointer opaque) const ARMCPRegInfo *ri =3D value; =20 if (!(ri->type & (ARM_CP_NO_RAW | ARM_CP_ALIAS))) { - cpu->cpreg_array_len++; + if (ri->type & ARM_CP_128BIT) { + cpu->cpreg128_array_len++; + } else { + cpu->cpreg_array_len++; + } } } =20 @@ -320,9 +376,10 @@ void init_cpreg_list(ARMCPU *cpu) * Initialise the cpreg_tuples[] array based on the cp_regs hash. * Note that we require cpreg_tuples[] to be sorted by key ID. */ - int arraylen; + int arraylen, array128len; =20 cpu->cpreg_array_len =3D 0; + cpu->cpreg128_array_len =3D 0; g_hash_table_foreach(cpu->cp_regs, count_cpreg, cpu); =20 arraylen =3D cpu->cpreg_array_len; @@ -340,13 +397,33 @@ void init_cpreg_list(ARMCPU *cpu) cpu->cpreg_vmstate_array_len =3D arraylen; cpu->cpreg_array_len =3D 0; =20 + array128len =3D cpu->cpreg128_array_len; + if (array128len) { + cpu->cpreg128_indexes =3D g_new(uint64_t, array128len); + cpu->cpreg128_values =3D g_new(Int128, array128len); + cpu->cpreg128_vmstate_indexes =3D g_new(uint64_t, array128len); + cpu->cpreg128_vmstate_values =3D g_new(Int128, array128len); + } else { + cpu->cpreg128_indexes =3D NULL; + cpu->cpreg128_values =3D NULL; + cpu->cpreg128_vmstate_indexes =3D NULL; + cpu->cpreg128_vmstate_values =3D NULL; + } + cpu->cpreg128_vmstate_array_len =3D array128len; + cpu->cpreg128_array_len =3D 0; + g_hash_table_foreach(cpu->cp_regs, add_cpreg_to_list, cpu); =20 assert(cpu->cpreg_array_len =3D=3D arraylen); + assert(cpu->cpreg128_array_len =3D=3D array128len); =20 if (arraylen) { qsort(cpu->cpreg_indexes, arraylen, sizeof(uint64_t), compare_u64); } + if (array128len) { + qsort(cpu->cpreg128_indexes, array128len, + sizeof(uint64_t), compare_u64); + } } =20 bool arm_pan_enabled(CPUARMState *env) --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473128; cv=none; d=zohomail.com; s=zohoarc; b=FRrxfpdJAYzm27H+OplEvLbJvGho3cFsMFQPJ/awOgLwbJAhhRzWRDJSLUBBhogPw1uhOLX7wBCJipESHnmM9yQdPUwSFNxoGcnynA3lOT4oslj0xEicSYuNjzrLj++u4NCSH3gTtFebmcqqXLorsFPo/IqDjxI/OAYk82sHbvI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473128; 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=WxdES7ALgDg44Eo9u3HIFuaCLq3lHqPVHj7YyhO0Mr0=; b=cO1PGrv0yYaEE44tzb3DQpEh+Bt5jAfuFm9w4T/mX5u7/WIoXcJdtcfKQQWmy+nT6hnoK4NJjEMImuUs0e2a/p942HRvpem4Tqn5jFKJ3JTqMv9Hiw9Y0sjQllDAeh5UtoShKVucI1Hb88iaYlbntN8kO2Nhs+ehNsux038LnE8= 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 1760473128630232.76649831535622; Tue, 14 Oct 2025 13:18:48 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJn-0002R2-0N; Tue, 14 Oct 2025 16:08:23 -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 1v8lJQ-0002DF-5B for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:00 -0400 Received: from mail-pg1-x533.google.com ([2607:f8b0:4864:20::533]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIx-0005La-Mo for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:07:59 -0400 Received: by mail-pg1-x533.google.com with SMTP id 41be03b00d2f7-b679450ecb6so3095612a12.2 for ; Tue, 14 Oct 2025 13:07:30 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472448; x=1761077248; 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=WxdES7ALgDg44Eo9u3HIFuaCLq3lHqPVHj7YyhO0Mr0=; b=pZZH9tyJ2lT15K2FLX9M0mmKzMFdGs43QaGC8hjfA4btFiD+cr87oPaUr6Xut5pchV Isz2WxwyJkMNJG9LVJphog2zXX3mptkpmX8i2kYtIeu0rNLqIBjo108S1u4pUVz0qFRk 5LnN9zVjEWneeZ3dd0LdNjkr8Vx3dsay8fnTHrz+h12ue5Z+vweSkW3u5D1SBw3TP2HW gHbt/3aazdowDLOnGB0k3Ytg26XZEu34V0n8ukcY6LKka1C8N21be5P4Cy12gjBzDvKz c4xeJwu6Clkrl0tXbo05+L6T468VBBmej3dIfAjR9IRKkdvKJW/YyznaU2SR/gjI6N3R clLg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472448; x=1761077248; 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=WxdES7ALgDg44Eo9u3HIFuaCLq3lHqPVHj7YyhO0Mr0=; b=ARkI+3BgcAEmQ6ghbFc1JPocnhuRCan4yNnIsg/J9v/2RXKzgYLJwxWeLNIkvTF1qy Boc7tzpFpCw18U40PORxnJcst/mbw24C51zaehGQELw9nLm1K0rGqatwnIbv13JAYO0b KUck7hlYGVTLgDin6bTTyKozIDErckuMWSKhMJOW0UNdi3ZFHAFfO8ybSH7Qfu+z0ubr SU2zVCQnBkGaN3kF9aCa+Rtm5EO2nQ4TRBKMobwQf2qrd8ccWtMxb3Ybl2Q199aBMB3h zvB7nsoev6S0U59FkMKHJphP7Ov05a7U/Pq0G/R+RjLnE92hC0T4YagOCYtP5pGLQ1pg TtVQ== X-Gm-Message-State: AOJu0YwnG63oPvAr729zJiccHpyxg+JMROx5Ummdnabccj9FNIUVoeC9 MPU5v+Z1Plfk9yKqI4RBC7AvpugIa1yg6eo0Etsbsz5B3mJBeRpvscFPLsUeFTzyQL9l0IARJlJ 8y1Mjh/o= X-Gm-Gg: ASbGncsIArH3luy7bk7vI8EqA502pIrkt5eL0zCxxVwQgYjXTIDq+fzQyNhVYQUfsna Jz77t3lDnN7oi+NhVA8MdMb4k0IeE77j548huM11h+eJUtn9aiEC7gPWmRUrOItNlANeD1c4tzm K4qDRolxhb6PnbjtgUFpmZSCsC7/R5REP8VmCUvts0npx5cUTFMV8mHHQFeNzatOrYB2X3l4JSZ INoHIUCO4EYthkDitlZJ9maq/bZGwUPZf0QLTPzxP0AjEUVZvDCDdnrnozCe7hGflX/iOuk9noI cxaRyQxhvK1PZZh49QLKVS/du5oyT1AupmDI8/0WcsSvkZJow+HL/ooO/gA/LWaG9mPOX6lS/EC W3LfdPu8djEi1EzEKarlfItJPtHcHCzlxBY7SOHF9FUzWe+tDLgf2kjXTX8xd9Q== X-Google-Smtp-Source: AGHT+IExpePb4rAAcohJzChw58kULvuSdv+qtWIWBQOWumWhZlDu9PuVhqvja9ZFXog9eKRYzePNZg== X-Received: by 2002:a17:902:f708:b0:272:dee1:c137 with SMTP id d9443c01a7336-29027238ee0mr327616435ad.13.1760472448410; Tue, 14 Oct 2025 13:07:28 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 13/37] target/arm/kvm: Assert no 128-bit sysregs in kvm_arm_init_cpreg_list Date: Tue, 14 Oct 2025 13:06:54 -0700 Message-ID: <20251014200718.422022-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::533; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x533.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: 1760473130428154100 Content-Type: text/plain; charset="utf-8" KVM has not yet enabled 128-bit system registers. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/kvm.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/arm/kvm.c b/target/arm/kvm.c index 4f769d69b3..3e7738592f 100644 --- a/target/arm/kvm.c +++ b/target/arm/kvm.c @@ -804,6 +804,8 @@ static int kvm_arm_init_cpreg_list(ARMCPU *cpu) arraylen++; } =20 + assert(cpu->cpreg128_array_len =3D=3D 0); + cpu->cpreg_indexes =3D g_renew(uint64_t, cpu->cpreg_indexes, arraylen); cpu->cpreg_values =3D g_renew(uint64_t, cpu->cpreg_values, arraylen); cpu->cpreg_vmstate_indexes =3D g_renew(uint64_t, cpu->cpreg_vmstate_in= dexes, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473291; cv=none; d=zohomail.com; s=zohoarc; b=Y6pMuVaLZMk2SS3doueY9A8l0fNgZ+D9oL6RT/73IvW8EKtuzBfOEMigjCOppaRWE0oVmX1S0HCx2F08eSIObQsPB9awbB2qsi7qbk/Sy0lWLJjfw1Kh1JI7WYyyfSqyHIO6Re6gwLuP8aqPHFqyP77d0rJ59Vfoq7IuJSw3obA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473291; 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=RYs+R8nBuhH5wnLhGR7+Tv1X+mkctfJ2nU8EoakcyGU=; b=P2VayEKu1BMfu0WwlTbcYffImyTA6WS1syVUtAnnXrN+uoJ3hJs9A9XNeCaV6VPBs57uKYg3yWCFuBs3mB4xtXif2JeXXJkKqd+MUPZKanUF8eY3eMovpigh1+EW6o1eVIbOpwycEAMcV/fAC+36xl58MCJ3a5R0GsoCQ6ASF64= 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 1760473291361121.99808329446; Tue, 14 Oct 2025 13:21:31 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJn-0002R9-2c; Tue, 14 Oct 2025 16:08:23 -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 1v8lJX-0002IQ-EZ for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:10 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIz-0005Lv-CU for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:05 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-2698384978dso40791455ad.0 for ; Tue, 14 Oct 2025 13:07:30 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472449; x=1761077249; 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=RYs+R8nBuhH5wnLhGR7+Tv1X+mkctfJ2nU8EoakcyGU=; b=YTiQdQqsJlHekxaruxFhBOR2Tbqk/yNl8wISELCn4vBMRebGC24QeJSg0ZPEiV7Uz9 0X/6V0Glb+nfgfCKQU3tEeMu394ZuTkF55XGu8DbVnL7LA8n3tvjyWMLk17Wv2ZQJpMA ZkxrJsNiHPX7zH9X8DxJv61F/XBrKh4UQOxqLbyBt2i1YuQykJM3lHS0lTbZp2RwcrLv N4hUu6eRlLHB6+bnyVtydt0rFS0tuhuAfUC0lSdJA8b+7nz6GPLNRpxFgUH6Zp5hYB7P ufb4DOBlqO4oWQgEljkmYpjjzKnxW35dPP1XceRwOkivW53BIFUQ+Es0idfdjzY3/KBk kVsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472449; x=1761077249; 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=RYs+R8nBuhH5wnLhGR7+Tv1X+mkctfJ2nU8EoakcyGU=; b=KKAaq7qlQPNEgY9VFnwuX67bLTRuRF9NU22MSt6CBECar6rfYl6s6qHX7NKYK671dw 3tBhqWS/VKrtYiBNlxGpXaMlCM+3ypNDxdYGtOr/x0MW3Gh3W6dz6XoNGOvY9VD0eH2L AszdDy3THEyU4aSQkBI2D9zeHEi6N/cbvUPb6zECF64kLmQd8Izu2SmptgG84lQwLFR+ 2KgwqtcCEE1ZNrreCcfiea/lKzjRRh9ASKkMPgoTTHFuE3LYim3l7M1VOdIZkJ0hb5Uk ZBF8giN7W8IDuHyotU7ItNw/zafL62yTa5J09rkA230azfjOFaBXku+/2JISaca1p7O8 2iMg== X-Gm-Message-State: AOJu0YytgiQOr99W+T2l7Qa+laU2DW5PDtOEoY6tcNkePV5mthTH9kKX L85QIMWde/AI4Ym0CQz1DtxJ47/wwCb9NfK1k/6JdpTQ5yGNzmNmf/MqHRNy4xqCHlCn80VeHR7 1ieqzF7Q= X-Gm-Gg: ASbGnctVsOPrVxFDu4oUddahDExyNuJemrLAn3YUhTEQ5eMneAfPeyluyL6BlPAtW0I FuUADMIzqwVQyol3F5/VVPn3hvPnQwMQX+f9EK1FJRhNCBzXinOSKkrrPYh++R8Db0l4r/13m9T zNcp54wnJWCY+JNY42cmFB3T0GVBNbZAxOVZCXDEPlLqqoxlxUWkGyeywvLsQmbQLmAizba4RV4 adHqLCNVjw4K+ZZ+tlJa6GRitnG3eUp5sa8dzPRB87GQGQBDQ/9RuPn2QkEb9pKo5kg7Y2HlFNC 3gfvnNeoAwBod4lQ8xnZwxdndUGdo65F5un/PNqxl2/5vduObc8F9birROxOQgqsDQ+Wpsq9mdd J7vtgRJGGCPEOWxSV+WkELcl0KpBZj7VN8EBZ4zya/XcdaGzO7T8= X-Google-Smtp-Source: AGHT+IHPEMx4e4eTE1GhbtCL72Gkra25XCwoVcJSGS5u1w7u0d5tMSGxSSED9iUGP0IXib1cEP4xXw== X-Received: by 2002:a17:902:ef09:b0:27f:1c1a:ee43 with SMTP id d9443c01a7336-290272c2564mr335665385ad.29.1760472449429; Tue, 14 Oct 2025 13:07:29 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 14/37] target/arm/hvf: Assert no 128-bit sysregs in hvf_arch_init_vcpu Date: Tue, 14 Oct 2025 13:06:55 -0700 Message-ID: <20251014200718.422022-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.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: 1760473293686158500 Content-Type: text/plain; charset="utf-8" HVF has not yet enabled 128-bit system registers. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/hvf/hvf.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target/arm/hvf/hvf.c b/target/arm/hvf/hvf.c index 0658a99a2d..aa42fa09c3 100644 --- a/target/arm/hvf/hvf.c +++ b/target/arm/hvf/hvf.c @@ -897,6 +897,9 @@ int hvf_arch_init_vcpu(CPUState *cpu) env->aarch64 =3D true; asm volatile("mrs %0, cntfrq_el0" : "=3Dr"(arm_cpu->gt_cntfrq_hz)); =20 + /* No support yet for FEAT_D128 */ + assert(arm_cpu->cpreg128_array_len =3D=3D 0); + /* Allocate enough space for our sysreg sync */ arm_cpu->cpreg_indexes =3D g_renew(uint64_t, arm_cpu->cpreg_indexes, sregs_match_len); @@ -920,6 +923,7 @@ int hvf_arch_init_vcpu(CPUState *cpu) =20 if (ri) { assert(!(ri->type & ARM_CP_NO_RAW)); + assert(!(ri->type & ARM_CP_128BIT)); arm_cpu->cpreg_indexes[sregs_cnt++] =3D kvm_id; } } --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473149; cv=none; d=zohomail.com; s=zohoarc; b=f9FTTOhVvpO8+4dPKFOB0P+tO6PNrXm8mLi5jnvL9JYEUi9JvXNtFynPNH5S3XZ5ktflTigJQWXMqjq5pK8ZrxvHCKxDt6FLLgJpgQA6j9G73QAeHD5w9BNvECPa7OKQIUjtdT6Kg9f6maMvJEff5cJqU4hFNbM3h79ryk2g3to= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473149; 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=SoIw7P/FRkCAcc/MGyohjxSN9UBkA6HviqH2a6+qnc4=; b=GHWg0F938YiFCFE81MaJz8fUi9zMN2DSmv3dHx9mT7eddIspwjNFF5xb9+8kqolFrRf4mFzxnX7bodQfBTd/stRo4Gpd9aLJEDKMwwejPSDro9ZBAx7ek4J1PArV4mKaUM+O1uOp0FalM42kA4pwnMX7H6/l/C9u9Ro3IiFT/7g= 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 1760473149749926.4013872669384; Tue, 14 Oct 2025 13:19:09 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJp-0002U8-EL; Tue, 14 Oct 2025 16:08:25 -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 1v8lJU-0002Hb-0b for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:05 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIy-0005M8-JH for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:01 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b55517e74e3so6420654a12.2 for ; Tue, 14 Oct 2025 13:07:31 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472450; x=1761077250; 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=SoIw7P/FRkCAcc/MGyohjxSN9UBkA6HviqH2a6+qnc4=; b=SQ/1I3aAkaTGSIeHMgbUOAmZxHK3MxI9fZO+2Lo/Nh5NESXMQVDT07FMjptKGtpSuY VNceYJsKez+0nOzxpIh/oCAdKbvuBINsXqBqSe8oUxv0yuc5+mK9DN0SLjbM7TNPxMpZ XIK9yzrVOj+Srj/A5dZUHu3oSrGJaPtYBi5XOb0JrEr6c4i1706F2RHCcZKoSsB7K5Xe iFxRNY3EaOXq6U+myy1VAAiJDXjrALhi6aS5W3Kn5fj+paEmMKIDSQEWwcvIYjMSs9V3 qMLv6TBQa8Zm/Y+p166aVH6Az6Ce6jaL7uNdEIrr9zcDxgm0pqO+WYssKRrFH8MskEmc yncA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472450; x=1761077250; 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=SoIw7P/FRkCAcc/MGyohjxSN9UBkA6HviqH2a6+qnc4=; b=j+7pX8cKjOKyu4tXrrV5/14/nyTVpxaTurGRRNhhx/S9zuxsaEfnCwUkHuE4D3KHAD v0Vq5fJ6lt3qFd2gJbsLZswWqMSBLSGm+XZAcx4wZ4UHo6UdAm30nssMDAKrNEV2D5+T ktsaQ8IcHni6mfvm/9wc5IGTcX91V5O0SZqwHchDUtwXi1WU7FkmDYI33KFL0aIfwHN1 iKmO1UMMSTRvVX/jV+INz7mz1GE32e0w7oAcMSbPQnns9MZKSF7C2LM1Qc6OJ/5Eks5q 3+IhnOaYFlr1wFRSTPccdrD3medJ8pzyewEpge76ZoEpNBc6s/4HyXkXVdvjjSfRRX+F +3sA== X-Gm-Message-State: AOJu0Yz8Ipc6HOh+C01D3wnOOXj4aRCDMiEK4Jm9XmqqQvWkrbQEEHfy OrtnrQNORCbgAw6apwHcft5Zm35qF4QHM5tduLZM61QvDtrdzAlRcjV0vxu7mkD1pLiUcyrfHoK FYDSDIck= X-Gm-Gg: ASbGncu5BNOzeTnTlyetp+iSHjPprtDZesECBHcbsTaCqSV0araeRw8iUW69XP2clHj +GFHbuU3P4eV4mDzxx/qERjkU2rK0h9o+eF7WgX6U65EuDYrbY86DgyFsiy1aOkDvyTJ0WQxk6j ChdCHszFQkBsm9wv5PDwtebVfzf1cGxEqRivsWXljsfL85pws2OTg/jjB/LT48UO2130V+jMXXT wiqMBUUWotzCWnvoUgXX5TyYrPJPt1Cm8+t5gNOKFrLNo1wds3fxT5SXm8kWheVYuaRAVquVrV+ y5wJ514UiS1ex4xtaW8/1wR82d2Oi7PkXlv67F20Rj6QqbrcAD0RPuY0wS6JPbCQu2q2esy8K4C TYJ85Syw67f9fNxGpzH7TRsZKSX8bb27LcRTL1OIA4838PulIQEKc7M5x1jFhxA== X-Google-Smtp-Source: AGHT+IErSK/ywl6oH+m8fAH95IQdH9iiHt6m5DtjFgl3Oan14+G9OSO8Cqw2GeBo6cOJizRcICE+Pw== X-Received: by 2002:a17:903:1b0b:b0:269:91b2:e9d6 with SMTP id d9443c01a7336-29027402c3cmr363496265ad.46.1760472450072; Tue, 14 Oct 2025 13:07:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 15/37] migration: Add vmstate_info_int128 Date: Tue, 14 Oct 2025 13:06:56 -0700 Message-ID: <20251014200718.422022-16-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::534; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x534.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: 1760473150806154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- include/migration/vmstate.h | 1 + migration/vmstate-types.c | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/include/migration/vmstate.h b/include/migration/vmstate.h index 63ccaee07a..d8b9e157da 100644 --- a/include/migration/vmstate.h +++ b/include/migration/vmstate.h @@ -237,6 +237,7 @@ extern const VMStateInfo vmstate_info_int8; extern const VMStateInfo vmstate_info_int16; extern const VMStateInfo vmstate_info_int32; extern const VMStateInfo vmstate_info_int64; +extern const VMStateInfo vmstate_info_int128; =20 extern const VMStateInfo vmstate_info_uint8_equal; extern const VMStateInfo vmstate_info_uint16_equal; diff --git a/migration/vmstate-types.c b/migration/vmstate-types.c index 4b01dc19c2..d335340e34 100644 --- a/migration/vmstate-types.c +++ b/migration/vmstate-types.c @@ -18,6 +18,7 @@ #include "migration/client-options.h" #include "qemu/error-report.h" #include "qemu/queue.h" +#include "qemu/int128.h" #include "trace.h" #include "qapi/error.h" =20 @@ -194,6 +195,35 @@ const VMStateInfo vmstate_info_int64 =3D { .put =3D put_int64, }; =20 +/* 128 bit int */ + +static int get_int128(QEMUFile *f, void *pv, size_t size, + const VMStateField *field) +{ + Int128 *v =3D pv; + uint64_t hi, lo; + + qemu_get_be64s(f, &hi); + qemu_get_be64s(f, &lo); + *v =3D int128_make128(lo, hi); + return 0; +} + +static int put_int128(QEMUFile *f, void *pv, size_t size, + const VMStateField *field, JSONWriter *vmdesc) +{ + Int128 *v =3D pv; + qemu_put_be64(f, int128_gethi(*v)); + qemu_put_be64(f, int128_getlo(*v)); + return 0; +} + +const VMStateInfo vmstate_info_int128 =3D { + .name =3D "int128", + .get =3D get_int128, + .put =3D put_int128, +}; + /* 8 bit unsigned int */ =20 static int get_uint8(QEMUFile *f, void *pv, size_t size, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472897; cv=none; d=zohomail.com; s=zohoarc; b=EHH18saP+bEpb6CiU2Q+/8yLYJF4I35NC7/Zh74YOKVusyIzizFpWcQDnk3fs1tp4LwwgsaX27hS64Ev8KQgooPN/ni4zuW8hBdX32ZIijk7DGfVNlR6OXEpIxqd3ZgizuihMkusBm6cLr3UZ/EEj6jOgW2Exd/a3KDpfCqhMHw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472897; 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=N1IVZ3uKrUQIbWrbAymlLjmz7cA3vDbPNt0Sr7mJiz8=; b=aIVJlp80j+IaW18ttNj7MpvdwWMYLbdu+usTMXVGB2Bzm9sjGQki+xLy361lqh6XHoOxLFRrNbbuQis3UQkXR23RMOWgfGO6qmLkWgqDo83IAeUri8JY19Av1t7LMsy7VeV8HKsGomCrsRlxHT/p1H8HvhLGSFjKf2lZ4wwknQU= 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 1760472897166285.63163493086756; Tue, 14 Oct 2025 13:14:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJp-0002US-LY; Tue, 14 Oct 2025 16:08:25 -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 1v8lJX-0002IR-FN for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:11 -0400 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lIz-0005MO-Qf for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:05 -0400 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-b62ed9c3e79so3704276a12.0 for ; Tue, 14 Oct 2025 13:07:33 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472451; x=1761077251; 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=N1IVZ3uKrUQIbWrbAymlLjmz7cA3vDbPNt0Sr7mJiz8=; b=HX5G3EH65WbipBL2h6yotLPa2ZTg1YCdgapj8OFc0vi0oQKEP4Mi9UWViG9NoizA0Z /nKi4hPb46oxQOVjH67F4WcfyiYu1GiZbnFlcGXIkzi1REizgobLx0aGW8G2zw/LRwJf NCB2/tuqH5Fb2WooxmpsWimKaw/9CvX41dV0aCWo/n1r8G1QkUtV3kOidxOt/UBrUP+H SFEFTz2rYriZGob9AkLOtnuQLakdr24DGgTe4Q0iHym7GFKBpGA0jeFrK98LE6JxWYEy Tp8Ont5AXDykwQuiu46SIpr1KjAwtiNs47zPDy/HNpt+CYqZsWPj2iVQ/TeQbQxxF3Vm LyAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472451; x=1761077251; 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=N1IVZ3uKrUQIbWrbAymlLjmz7cA3vDbPNt0Sr7mJiz8=; b=wBuqdvd8JTam6Ebwcsnqulpt3beB3alA/2a4dyRYIC4OLZNOV56eSgd/MIYL3/GDUN NHSD/UtOdPIzKsvL+8YNrnV0KailJDMFWjj56MbQnF6DCmyTmhKERt1JjFMgtwtH/Cyq 1f2dNu4zEYEFdni+kUhpr0HqAJxi0GkI4qSKHi3mXzkEzaPStA/BgwojJCoypE/WVakS HQiDV6LIBEpO+MymD3yvsLj+rTFnoJxWu/g8igZQOkP+Frtc+tZLUP8Vb27Suc4hacfM QCAb203u430OXHvNp+UVMkdOINp6cToYTp1b0kovHv8xafTmCgOlWz9mdtktne6+upMM oGgQ== X-Gm-Message-State: AOJu0Yxbore0AbMBka3WxAO3HX0Q0EZC6l6ituMERuzGS9vI7taLRgTD P1KfoKt3Bupq8SLtAl53qDrVloDGi1o4ch2u3H41g1b6e8ybmBSXHVdRus+q2MjTcoUw4h8g1N7 3e67cWeQ= X-Gm-Gg: ASbGncswjLYb+mHrojsFNk4uMusfBexjuilFpESk6zKnJ0ER0SispDw2hdW4X9tnYdb KKFrAeXRmAmi+Wx+LW5QAtvYeAekVLn8MLdleAJH4sc7nQCZUh1qIFklV4pmt8pxp/3KsBExBwQ KMSfHMxKY8RiPkHmYYArGjFiYreMaFcZa97/ZCL5v1049Nd4YHklKo9oUiyPFDCs7TIsnS6SGY8 HdcFC20n1c1A2FZd/jQGkSnyDdPev/t7FOYai6E0uiwQ+/aj+fYCf19vOOuQYJkzjpvXyHb1L9m WYFO5zQYFRvsLXf+nUI1c+18kw/+OcyipslHHetjdT1FtgIX6u2lvQDhLQMVgN21dd3J6lYkEwQ 9YxnGbP3wFgoi+F64kyUKD+b1I8NHuC7ulFK+nr0o39RXRFtNJJiibG0BLW/QMg== X-Google-Smtp-Source: AGHT+IFDvHlok2zQd1PsQyuJO3an2yvn5qXNTLDLWg61gzibz7gIzHKbVNSKvIBF9a2+K9A5sMIhYw== X-Received: by 2002:a17:903:1ae3:b0:266:9c1a:6def with SMTP id d9443c01a7336-2902724dc87mr288760855ad.0.1760472450832; Tue, 14 Oct 2025 13:07:30 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 16/37] target/arm: Migrate cpreg128 registers Date: Tue, 14 Oct 2025 13:06:57 -0700 Message-ID: <20251014200718.422022-17-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.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, T_SPF_TEMPERROR=0.01 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: 1760472899071158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/machine.c | 50 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/target/arm/machine.c b/target/arm/machine.c index 44a0cf844b..2cc6234832 100644 --- a/target/arm/machine.c +++ b/target/arm/machine.c @@ -939,6 +939,34 @@ static const VMStateDescription vmstate_syndrome64 =3D= { }, }; =20 +static bool sysreg128_needed(void *opaque) +{ + ARMCPU *cpu =3D opaque; + return cpu->cpreg128_array_len !=3D 0; +} + +static const VMStateDescription vmstate_sysreg128 =3D { + .name =3D "cpu/sysreg128", + .version_id =3D 1, + .minimum_version_id =3D 1, + .needed =3D sysreg128_needed, + .fields =3D (const VMStateField[]) { + /* + * The length-check must come before the arrays to avoid + * incoming data possibly overflowing the array. + */ + VMSTATE_INT32_POSITIVE_LE(cpreg128_vmstate_array_len, ARMCPU), + VMSTATE_VARRAY_INT32(cpreg128_vmstate_indexes, ARMCPU, + cpreg128_vmstate_array_len, + 0, vmstate_info_uint64, uint64_t), + VMSTATE_VARRAY_INT32(cpreg128_vmstate_values, ARMCPU, + cpreg128_vmstate_array_len, + 0, vmstate_info_int128, Int128), + + VMSTATE_END_OF_LIST() + }, +}; + static int cpu_pre_save(void *opaque) { ARMCPU *cpu =3D opaque; @@ -971,6 +999,12 @@ static int cpu_pre_save(void *opaque) memcpy(cpu->cpreg_vmstate_values, cpu->cpreg_values, cpu->cpreg_array_len * sizeof(uint64_t)); =20 + cpu->cpreg128_vmstate_array_len =3D cpu->cpreg128_array_len; + memcpy(cpu->cpreg128_vmstate_indexes, cpu->cpreg128_indexes, + cpu->cpreg128_array_len * sizeof(uint64_t)); + memcpy(cpu->cpreg128_vmstate_values, cpu->cpreg128_values, + cpu->cpreg128_array_len * sizeof(Int128)); + return 0; } =20 @@ -1065,6 +1099,21 @@ static int cpu_post_load(void *opaque, int version_i= d) v++; } =20 + for (i =3D 0, v =3D 0; i < cpu->cpreg128_array_len + && v < cpu->cpreg128_vmstate_array_len; i++) { + if (cpu->cpreg128_vmstate_indexes[v] > cpu->cpreg128_indexes[i]) { + /* register in our list but not incoming : skip it */ + continue; + } + if (cpu->cpreg128_vmstate_indexes[v] < cpu->cpreg128_indexes[i]) { + /* register in their list but not ours: fail migration */ + return -1; + } + /* matching register, copy the value over */ + cpu->cpreg128_values[i] =3D cpu->cpreg128_vmstate_values[v]; + v++; + } + if (kvm_enabled()) { if (!kvm_arm_cpu_post_load(cpu)) { return -1; @@ -1209,6 +1258,7 @@ const VMStateDescription vmstate_arm_cpu =3D { &vmstate_wfxt_timer, &vmstate_syndrome64, &vmstate_pstate64, + &vmstate_sysreg128, NULL } }; --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472955; cv=none; d=zohomail.com; s=zohoarc; b=EL+0it9YuD2X/hQMoUG+CD684L55ScppMMfrK4AaBFWjHXzfhxIe86c8CA03mIYwruayvUVpu+/evaohecnqZWkm65Vdf0Cl/jP86NxI2SlBbSsUv8mlDhAbzsWCqxjyG26ExA/Vahaz6uGAO+ri+FPx/zsn9vvWBBdQkD1RUNc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472955; 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=7ml8IrqFS6Bp/u7C5UDkNEfubshsEhfFYuVLQAR5MCA=; b=fFkADthZovFx9T1iz80zrKpPZVyMxJ8D1CWQKExAydyU9+7wIa3jdDrIFx5/KuYmPnXKkb+G/1pNWl/LUAwsLyU29ZskFWRTdnzerNWIH8ugaObIK8lKN8wj4ObxiR18eNHWv+OFB1+hGIX2OpPer3Bc7n3blfV1yoioYjSy1mk= 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 1760472955605208.1631574840402; Tue, 14 Oct 2025 13:15:55 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJo-0002SG-KI; Tue, 14 Oct 2025 16:08:24 -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 1v8lJZ-0002Ii-B0 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:14 -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 1v8lJ1-0005MV-C6 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:08 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-28a5b8b12a1so52103705ad.0 for ; Tue, 14 Oct 2025 13:07:33 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472451; x=1761077251; 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=7ml8IrqFS6Bp/u7C5UDkNEfubshsEhfFYuVLQAR5MCA=; b=ZJpfN1GmimFihjUFMNTEmOzopYz0+6uogVTbLiI63l797ifdX8Fq3y5g0W7T+YdOwO 8ULPNHzn+6jkQF9PWTIbwiFJa3jPO0RrU54RJIQmaEe2KtVFxGxoFsDIHbEL6P3NVJxH xAe2mphyanTXJ+sd4FAcqnFvoPL6ermznM7qPOD/xqtA+rNWmGfxRuUig7T6SSzrRhdP fIjVDoHoK/GtmaeFlBjHRA0UHr1co/IsbXdsExUrFtXgXSbjjqhSxKtz+/J5bJi5NrNH tM/bF7aGvN4aG+k1yNLFDX1yULdp3RZ06eWAhiB4feFFVic7JlHi1621e0Y9YUusTTE/ OPQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472451; x=1761077251; 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=7ml8IrqFS6Bp/u7C5UDkNEfubshsEhfFYuVLQAR5MCA=; b=IxxvqsDIDzY0W/JNEw0uzN5PhBB6VnHor3TBGmOdyiRwhc4M9IofQeXDWjkIbYjRS7 WeK2tWRhSAkTp6U7StR63hnUwmcBmUARB0F4sbkbaQIcU7oJMKOF2r2ch4EX82MTumbc x7a9Y6PpYE6OYLFvs3Fc2XxfzimMn6LqUxePXCPgvvpT1TIgKivXKXeySjJcMimy8twX Fcras/SQjA5Ui4BKLCUOmDXUJNTXCzu6P7vl3C1GxlVKfBRk7gchQCtveog+4DID+x39 pZsI1G7DtKr5txD7tsP69W/Tu0ajrQxRRCxIOGYUoBl9doXLp4b3qnl6uTxyhtCLtzZp z/VQ== X-Gm-Message-State: AOJu0YzqgDge5+4NLeSqvKSebbiP355+j0MkCNh64SMwJVPAxYosiqoe VQnEFnrRUb9h9HcfJZH7Qc7KtZU6BV9zDbgJCXC2R6Fms+qdJzD0nnCrGDvyMV9vHylnzWW62TX QPpLvxZE= X-Gm-Gg: ASbGncsQUL7hgRCPNe3TMD3BEHzNzhV9udaR4UEQatvJhmmnetxOAZm/kjgg90RWlPD mRVf/rAkatJmKQOWTY7FZXKZHlF8lqaRxOCjxysPfXBLhPDkQCRUNYwbkbL37SLxoR2Ict/2UtD bxp0wraZsqgh0iMfxpOuj54lJCF7RBvs8oWVOZCQXqxNH7BrNaG/WOh8+Jj4JRlrZFb7w4qRMuO OSzWgoFHKUOssKJ0CmNnEJQDh4x28BkAEIl24Mt8Df2bNEa40ebgzY6PC92evn0EE6C2/hcR0jE povvKYDxg3AvmmKEZm5vOQLkeB1KRmJ2vtGkfFtbW3cmjj+x6HB4wISLVHNjNl+PtE1tMY9aDm7 JzPvM6bzW2RVVCvCzw9XKdLGcMI9zI8Qwc/JbrizxicJRcTWUL2mXuglhTPcaNQ== X-Google-Smtp-Source: AGHT+IGddwtrEJT9yctbOJQ5fnpwgPSu7nfi3Kncqa2YkkR8NuSG8e7a/PuiFQHaBD/FSYpAeAsUEA== X-Received: by 2002:a17:903:2349:b0:290:56e7:8ca9 with SMTP id d9443c01a7336-29056e79048mr149323765ad.52.1760472451587; Tue, 14 Oct 2025 13:07:31 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 17/37] target/arm: Add syn_aa64_sysreg128trap Date: Tue, 14 Oct 2025 13:06:58 -0700 Message-ID: <20251014200718.422022-18-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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: 1760472958494154100 Content-Type: text/plain; charset="utf-8" System register access with MRRS/MSRR use a different exception class. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/syndrome.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target/arm/syndrome.h b/target/arm/syndrome.h index bff61f052c..2c7dc53507 100644 --- a/target/arm/syndrome.h +++ b/target/arm/syndrome.h @@ -45,6 +45,7 @@ enum arm_exception_class { EC_AA32_SVC =3D 0x11, EC_AA32_HVC =3D 0x12, EC_AA32_SMC =3D 0x13, + EC_SYSTEMREGISTER128TRAP =3D 0x14, EC_AA64_SVC =3D 0x15, EC_AA64_HVC =3D 0x16, EC_AA64_SMC =3D 0x17, @@ -187,6 +188,15 @@ static inline uint32_t syn_aa64_sysregtrap(int op0, in= t op1, int op2, | (crm << 1) | isread; } =20 +static inline uint32_t syn_aa64_sysreg128trap(int op0, int op1, int op2, + int crn, int crm, int rt, + int isread) +{ + return (EC_SYSTEMREGISTER128TRAP << ARM_EL_EC_SHIFT) | ARM_EL_IL + | (op0 << 20) | (op2 << 17) | (op1 << 14) | (crn << 10) | (rt << 5) + | (crm << 1) | isread; +} + static inline uint32_t syn_cp14_rt_trap(int cv, int cond, int opc1, int op= c2, int crn, int crm, int rt, int isre= ad, bool is_16bit) --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472965; cv=none; d=zohomail.com; s=zohoarc; b=SjRH4Cko4gimjsgvjahRT+otvzorPHywvxv/vVJsRu0p7vHzJ4Lz84Agof2cExLRmPRIwGwC/VJ7hYGYYWW3v+auawOwBi7sjXfYkzkljAlEoTf435t06BqwS9+rx9qUdym7zyTvXpU6oevLx7oFMHvrvfitYK32a5wnzSVfE/U= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472965; 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=yRaxPSO4dMwTU7bjid4OQ5BAEwqmP9lcBzf0KnY7hNw=; b=NMsNVxyUmEuht8Ov4wmOYPBhalPjGtWPGBDjhVooFbaBt6iUWbMHs0LbZBfPbHfAiWjdkcXC1lNCYEuKR55BGfMzJ9l51HnIdrYmSSrY88+PjgEeb/GjYanOA4A8Ayq+0QgABS15T9cvE3aAnMrvuRdLQuRWnw09LadctUKFTw0= 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 1760472965184743.883327455331; Tue, 14 Oct 2025 13:16:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJu-0002b4-Vq; Tue, 14 Oct 2025 16:08:31 -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 1v8lJZ-0002Ig-B1 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:14 -0400 Received: from mail-pl1-x636.google.com ([2607:f8b0:4864:20::636]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJ2-0005Me-Ji for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:07 -0400 Received: by mail-pl1-x636.google.com with SMTP id d9443c01a7336-27c369f898fso82858915ad.3 for ; Tue, 14 Oct 2025 13:07:36 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472452; x=1761077252; 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=yRaxPSO4dMwTU7bjid4OQ5BAEwqmP9lcBzf0KnY7hNw=; b=TXT0UBMzoQikr/wZqxmK5Jc2b21TgbIpy1MPOLD8mXmA726t/rIclYjxpUyVjKkHnl iOxIBh+sSc4wi0pNys11M9pvoRhDnhPQqIjpnUMJ1vpCoES2d+BXpCgHN7aE6NRC7EHY WAosxUN9rY8noV4Wq9f1ikVEUUNX7W2kKalCZlBg6vnPAJDar7RGZDovWhjMNriiyB71 4ZUpo8mjoi3kpw8e0do3PNpBJb4CXx9uFSAyBgHwVccutwGZS9a8/0LDRuS8fX/+lNyo CczkbnO/V43cDN+gOI04Rk59Hfwt4TSEtJH4iSagRwqZWhHtpL+DRlOgxF4fqe4B5iG7 docQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472452; x=1761077252; 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=yRaxPSO4dMwTU7bjid4OQ5BAEwqmP9lcBzf0KnY7hNw=; b=BTpkIGshJvG4R8XukaZegOO3rWdF4uUbrbr5UfXhz9y/iGOxoLxATBwQMnlu9vT7Lc Dvhe1IgB/6O+mpEWd1sKsxk7qP0fJhTl8wq6OKB8KRAkB/8ttxUjsk1nslncl07ezs2t cXv2WdtlZtNPT3hEqgG0D4/u5iCHhOrDNYUpftDV5djEm+tlmBzY3sNztEhy4ZHET8LK 3Nf7+oIc3gyiz32UehObVeR4fyIjjS5weKdd0gmjbVc3kU5mRTaMeghn4nWjIM17w1+X /Nh64VrCEB/xZuQoPWoe0Ucf+vEBB4mEBDcdGw1LBauv8iXvDnGjCQ81OuH5W2/D2qFm GoeQ== X-Gm-Message-State: AOJu0Ywox8t+odYMrHb4V77JmdXnc2lVpCRj+Pt1O03jaawcQtrLTLbR v8rjpC7btQ5vG+y4Nr+v0M5X/cv4dpOeFBpL04Q+9/xXwJ9M7ekJ+DAMtpcGnhwiXyU+jwP6xE2 yq89l18M= X-Gm-Gg: ASbGncsY+7Vey1Aeavl3uD0bj+ns92r2zm6r4GqqSmsmLr0yTJLX49IXTmTxfwXNhqJ HLKPqB9jPNUHibEy97JRskPDHeOiCkN4XTvV41DOd3+AIM2PsGgSDptsI1GrWyLf81HmxUFBesl XKDSAzRGiuKwXh4k7c5cTvS/U5wGeIvpReK8jq+rOhx3nO3nmq5MsTJG5adotYd55uj5DXkkE/y PEfsqV1FG/pbR8cGa8aVY+EmfkfPIeVPdoPoPvgwe8HuWgZ/duQl8a+xukT1FQpsvvemNQoBUv1 URY1hduLDxh6rGX19zkPlAKNkfSGGG63gCh14AlmEbuJlvlRxXBSR6q1CoZl4oAz111yQSnENgy ywScUnjVd+MbfNV7AMBU6YLdwqdxVPXZz0i3p+V0tvrXZKra6/Qw= X-Google-Smtp-Source: AGHT+IEK9RR5sH8HJh2tDFhiar/aojYHHVRrKRHfotWTPFS1+LRx8AZwiu/DbcX5pJgV7hbxk/+eeQ== X-Received: by 2002:a17:902:e784:b0:24b:270e:56c7 with SMTP id d9443c01a7336-290272155cdmr351352835ad.7.1760472452206; Tue, 14 Oct 2025 13:07:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 18/37] target/arm: Introduce helper_{get,set}_cp_reg128 Date: Tue, 14 Oct 2025 13:06:59 -0700 Message-ID: <20251014200718.422022-19-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::636; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x636.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: 1760472965868158500 Content-Type: text/plain; charset="utf-8" Helper functions to invoke the write128fn and read128fn methods of ARMCPRegInfo. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/helper.h | 2 ++ target/arm/tcg/op_helper.c | 29 +++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/target/arm/tcg/helper.h b/target/arm/tcg/helper.h index 4636d1bc03..45bb87fbaf 100644 --- a/target/arm/tcg/helper.h +++ b/target/arm/tcg/helper.h @@ -90,6 +90,8 @@ DEF_HELPER_3(set_cp_reg, void, env, cptr, i32) DEF_HELPER_2(get_cp_reg, i32, env, cptr) DEF_HELPER_3(set_cp_reg64, void, env, cptr, i64) DEF_HELPER_2(get_cp_reg64, i64, env, cptr) +DEF_HELPER_4(set_cp_reg128, void, env, cptr, i64, i64) +DEF_HELPER_2(get_cp_reg128, i128, env, cptr) =20 DEF_HELPER_2(get_r13_banked, i32, env, i32) DEF_HELPER_3(set_r13_banked, void, env, i32, i32) diff --git a/target/arm/tcg/op_helper.c b/target/arm/tcg/op_helper.c index 4fbd219555..9c7b18fe65 100644 --- a/target/arm/tcg/op_helper.c +++ b/target/arm/tcg/op_helper.c @@ -1026,6 +1026,35 @@ uint64_t HELPER(get_cp_reg64)(CPUARMState *env, cons= t void *rip) return res; } =20 +void HELPER(set_cp_reg128)(CPUARMState *env, const void *rip, + uint64_t valuelo, uint64_t valuehi) +{ + const ARMCPRegInfo *ri =3D rip; + + if (ri->type & ARM_CP_IO) { + bql_lock(); + ri->write128fn(env, ri, valuelo, valuehi); + bql_unlock(); + } else { + ri->write128fn(env, ri, valuelo, valuehi); + } +} + +Int128 HELPER(get_cp_reg128)(CPUARMState *env, const void *rip) +{ + const ARMCPRegInfo *ri =3D rip; + Int128 res; + + if (ri->type & ARM_CP_IO) { + bql_lock(); + res =3D ri->read128fn(env, ri); + bql_unlock(); + } else { + res =3D ri->read128fn(env, ri); + } + return res; +} + void HELPER(pre_hvc)(CPUARMState *env) { ARMCPU *cpu =3D env_archcpu(env); --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473160; cv=none; d=zohomail.com; s=zohoarc; b=Vczi26f7WrjNZ9wEYrB6GxMdQvYsCy+x6NNWPwFU6yRb6MOmRcenq6ItnBpi0DT+j4ouPWRMEFSwjCzR+qIYIlULyb1qFb75uv6rvI7JIgOkFI+OcioN4kwIzcG8WzEgFE9345tGrfQejm4R46H5SvU5dC4YBVBqVLzQLc+wGqE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473160; 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=m4ZA5d5/lIwohpPGdIEr8HPomZYv1KX6aQnbN5YCFBA=; b=GYTrmeV91GF6f/ql2v5/JtlOJrDdh6eyFQVkid3v3Ao57yJuezWk0aFz7rAL7u4LIcIhLoOGhTFusQHBLgSGlvCJ6OcwklL65EbberXfLsrqQ+Y35JvYydKq2caO5eLeT/OvQHugH2YDRZQAdNB2JGWJvK6HlENP79WnwebQUyc= 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 1760473160161621.7107572598422; Tue, 14 Oct 2025 13:19:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJq-0002VL-Cc; Tue, 14 Oct 2025 16:08:26 -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 1v8lJb-0002JJ-9C for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:15 -0400 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJ2-0005Mx-TY for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:10 -0400 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-b550eff972eso3874275a12.3 for ; Tue, 14 Oct 2025 13:07:35 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472453; x=1761077253; 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=m4ZA5d5/lIwohpPGdIEr8HPomZYv1KX6aQnbN5YCFBA=; b=f5+ZErS6n6/6q7PEWoo+7ApjNjsXYHp4uqqPU+EbT1E+c8id2RJqVUnnjvnEM3WWW8 OwWP6QN6Ej4tHVHoFniZVLe+FkTCHO8Kv1Pnicp1mCxLx8jPMyqmog1yhoOmNdHR4DmN TVyitPP3DQ81paokJvik3b1N+YqOlNCOLeZ3a25Lkr/XCPcvi1w6Jwsfmu4dSJwHJxKH RdbWnHXXdaGa/exxscHzVIbx5WZodAh76WQ1Dq8CrgjFsjvTxDajErsaQLOb6qk3BfWx hi63CI8YTp4SVVyE4t/gLMH58yBNrzXEF7rESbABlnxW9ojdAd4DxhHlEr+IsDLAau1S t5Ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472453; x=1761077253; 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=m4ZA5d5/lIwohpPGdIEr8HPomZYv1KX6aQnbN5YCFBA=; b=KtsKy9hAQqQqEBhxNHHGazhrfidzTgJRMdLbtrATSb2A1yLQWqf5rcVNU1GYZHwmCR we5UZ8Ugs916yRctTch7uR3nqd74squ5EkGmVGWID6E78qJiw81Vx6YwfDm7o4sxLd5N znqqaxEFiK0fGafpzPk+iO1AMoNOKmHkkkG2EaB2o1xSyDJG+Dd62pUHeQ0GZPOmuDFp 7gxVvM4LwYrJtD4wf3CVo6sPnyhgJFesuzVasBzI9jxRaZePhQ8b1CzHYXRyBFUw7msH X443xZwUNk95VO5u6mr+j9Qp9S4Kw6agp7OvWomtXmVxq1McE4OqVvnzBhy/M0FPqZFA gX/A== X-Gm-Message-State: AOJu0YxMf05WZUY6nBMf9WnValLU6paaiqVWFIeh9Hxf4hN4ZNFzw5Qc dxx9Em+VHGBjtelaf5fU+4RQJmxGj5TETbTROxMBP4J2PjFqb7DJJ3wA15xbJhZuOaFXe+FEAGa SJ5HhwHY= X-Gm-Gg: ASbGnctV8XLVIBzODknRSVvNhKj7fnPLw+ybTCo8MrfYwJ6f69tvrANdWF4DDR70oaV YXA/z4gxavwFg1qlT5zS5Gk6JomPatISIV+hjUoMELLylIQ2YIE3vtxautfWOvlu+Ml0pRj/VOQ WHIyi+2o5+4hcQxYObJiF7x4MzqX2MwL1ZkLBX/1iqYVkiI31HU9dtAvvRG4SDVv2MXZp7MvdMZ vyd58R+Es8WVt1bdcsU2jdtaXCChFzf80ZPgJ/uZHss+JKHN76PMa02kYfdK5TSUunPv1rfJv7S ZzqArZ7ZXbL3uVzp86FKwxpGpphtEB1juF3rZUhPgCY2GTi+cNg0jOSFWIGuDGQcxQFMGKCEqk1 Jrz3tk/zCjZa8n0CAfNc3ZgyLFlQ3U6NLQ9FqEn8SJflzdB8lKAc= X-Google-Smtp-Source: AGHT+IE7iCQzqsBb9Divqn/CkCnH6B0Jm+Elirzzaim4LQLCfrcqSv4pNMoQBi5enL9tqbv/B/q20w== X-Received: by 2002:a17:902:f609:b0:282:2c52:5094 with SMTP id d9443c01a7336-290272c31d0mr332861725ad.37.1760472452826; Tue, 14 Oct 2025 13:07:32 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 19/37] target/arm: Implement MRRS, MSRR, SYSP Date: Tue, 14 Oct 2025 13:07:00 -0700 Message-ID: <20251014200718.422022-20-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.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: 1760473162981154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/translate-a64.c | 169 +++++++++++++++++++++++++-------- target/arm/tcg/a64.decode | 12 ++- 2 files changed, 139 insertions(+), 42 deletions(-) diff --git a/target/arm/tcg/translate-a64.c b/target/arm/tcg/translate-a64.c index 918d5ed112..c3b717b408 100644 --- a/target/arm/tcg/translate-a64.c +++ b/target/arm/tcg/translate-a64.c @@ -2752,17 +2752,23 @@ redirect_cpreg(DisasContext *s, uint32_t key, bool = isread) =20 /* MRS - move from system register * MSR (register) - move to system register + * MRRS + * MSRR * SYS * SYSL + * SYSP * These are all essentially the same insn in 'read' and 'write' * versions, with varying op0 fields. + * + * RT2 is non-zero if and only if this is a 128-bit access. */ static void handle_sys(DisasContext *s, bool isread, unsigned int op0, unsigned int op1, unsigned int op= 2, - unsigned int crn, unsigned int crm, unsigned int rt) + unsigned int crn, unsigned int crm, unsigned int rt, + unsigned int rt2) { uint32_t key =3D ENCODE_AA64_CP_REG(op0, op1, crn, crm, op2); - const ARMCPRegInfo *ri =3D get_arm_cp_reginfo(s->cp_regs, key); + const ARMCPRegInfo *ri; bool need_exit_tb =3D false; bool nv_trap_to_el2 =3D false; bool nv_redirect_reg =3D false; @@ -2770,7 +2776,16 @@ static void handle_sys(DisasContext *s, bool isread, bool nv2_mem_redirect =3D false; TCGv_ptr tcg_ri =3D NULL; TCGv_i64 tcg_rt; - uint32_t syndrome =3D syn_aa64_sysregtrap(op0, op1, op2, crn, crm, rt,= isread); + uint32_t syndrome; + bool is128 =3D rt2 !=3D 0; + + if (is128) { + key |=3D CP_REG_AA64_128BIT_MASK; + syndrome =3D syn_aa64_sysreg128trap(op0, op1, op2, crn, crm, rt, i= sread); + } else { + syndrome =3D syn_aa64_sysregtrap(op0, op1, op2, crn, crm, rt, isre= ad); + } + ri =3D get_arm_cp_reginfo(s->cp_regs, key); =20 if (crn =3D=3D 11 || crn =3D=3D 15) { /* @@ -2790,12 +2805,14 @@ static void handle_sys(DisasContext *s, bool isread, } =20 if (!ri) { - /* Unknown register; this might be a guest error or a QEMU - * unimplemented feature. + /* + * Unknown register, or 128-bit access to a 64-bit register. + * This might be a guest error or a QEMU unimplemented feature. */ - qemu_log_mask(LOG_UNIMP, "%s access to unsupported AArch64 " + qemu_log_mask(LOG_UNIMP, "%s%s access to unsupported AArch64 " "system register op0:%d op1:%d crn:%d crm:%d op2:%d\= n", - isread ? "read" : "write", op0, op1, crn, crm, op2); + isread ? "read" : "write", is128 ? "128" : "", + op0, op1, crn, crm, op2); gen_sysreg_undef(s, isread, op0, op1, op2, crn, crm, rt); return; } @@ -2918,7 +2935,7 @@ static void handle_sys(DisasContext *s, bool isread, * We don't use the EL1 register's access function, and * fine-grained-traps on EL1 also do not apply here. */ - key =3D ENCODE_AA64_CP_REG(op0, 0, crn, crm, op2); + key &=3D ~CP_REG_ARM64_SYSREG_OP1_MASK; ri =3D redirect_cpreg(s, key, isread); /* * We might not have done an update_pc earlier, so check we don't @@ -2933,32 +2950,44 @@ static void handle_sys(DisasContext *s, bool isread, * This means it is not an IO operation, doesn't change hflags, * and need not end the TB, because it has no side effects. * - * The access is 64-bit single copy atomic, guaranteed aligned bec= ause - * of the definition of VCNR_EL2. Its endianness depends on - * SCTLR_EL2.EE, not on the data endianness of EL1. - * It is done under either the EL2 translation regime or the EL2&0 - * translation regime, depending on HCR_EL2.E2H. It behaves as if - * PSTATE.PAN is 0. + * The access is 64-bit (R_VFMQB) or 128-bit (R_BSBZP) single copy + * atomic, guaranteed aligned because of the definition of VCNR_EL= 2. + * Its endianness depends on SCTLR_EL2.EE, not on the data endiann= ess + * of EL1. It is done under either the EL2 translation regime or + * the EL2&0 translation regime, depending on HCR_EL2.E2H. + * It behaves as if PSTATE.PAN is 0. */ TCGv_i64 ptr =3D tcg_temp_new_i64(); - MemOp mop =3D MO_64 | MO_ALIGN | MO_ATOM_IFALIGN; + MemOp mop =3D MO_ALIGN | MO_ATOM_IFALIGN; ARMMMUIdx armmemidx =3D s->nv2_mem_e20 ? ARMMMUIdx_E20_2 : ARMMMUI= dx_E2; int memidx =3D arm_to_core_mmu_idx(armmemidx); - uint32_t syn; =20 mop |=3D (s->nv2_mem_be ? MO_BE : MO_LE); + disas_set_insn_syndrome(s, syn_data_abort_vncr(0, !isread, 0)); =20 tcg_gen_ld_i64(ptr, tcg_env, offsetof(CPUARMState, cp15.vncr_el2)); tcg_gen_addi_i64(ptr, ptr, (ri->nv2_redirect_offset & ~NV2_REDIR_FLAG_MASK)); - tcg_rt =3D cpu_reg(s, rt); =20 - syn =3D syn_data_abort_vncr(0, !isread, 0); - disas_set_insn_syndrome(s, syn); - if (isread) { - tcg_gen_qemu_ld_i64(tcg_rt, ptr, memidx, mop); + if (is128) { + TCGv_i128 t128 =3D tcg_temp_new_i128(); + + mop |=3D MO_128; + if (isread) { + tcg_gen_qemu_ld_i128(t128, ptr, memidx, mop); + tcg_gen_extr_i128_i64(cpu_reg(s, rt), cpu_reg(s, rt2), t12= 8); + } else { + tcg_gen_concat_i64_i128(t128, cpu_reg(s, rt), cpu_reg(s, r= t2)); + tcg_gen_qemu_st_i128(t128, ptr, memidx, mop); + } } else { - tcg_gen_qemu_st_i64(tcg_rt, ptr, memidx, mop); + mop |=3D MO_64; + tcg_rt =3D cpu_reg(s, rt); + if (isread) { + tcg_gen_qemu_ld_i64(tcg_rt, ptr, memidx, mop); + } else { + tcg_gen_qemu_st_i64(tcg_rt, ptr, memidx, mop); + } } return; } @@ -3099,28 +3128,63 @@ static void handle_sys(DisasContext *s, bool isread, =20 tcg_rt =3D cpu_reg(s, rt); =20 - if (isread) { - if (ri->type & ARM_CP_CONST) { - tcg_gen_movi_i64(tcg_rt, ri->resetvalue); - } else if (ri->readfn) { - if (!tcg_ri) { - tcg_ri =3D gen_lookup_cp_reg(key); + if (is128) { + TCGv_i64 tcg_rt2 =3D cpu_reg(s, rt2); + + if (isread) { + if (ri->type & ARM_CP_CONST) { + /* E.g. TTBR0_EL2 is RES0 from EL3 when !FEAT_EL2. */ + tcg_gen_movi_i64(tcg_rt, ri->resetvalue); + tcg_gen_movi_i64(tcg_rt2, 0); + } else if (ri->read128fn) { + TCGv_i128 t128 =3D tcg_temp_new_i128(); + if (!tcg_ri) { + tcg_ri =3D gen_lookup_cp_reg(key); + } + gen_helper_get_cp_reg128(t128, tcg_env, tcg_ri); + tcg_gen_extr_i128_i64(tcg_rt, tcg_rt2, t128); + } else { + tcg_gen_ld_i64(tcg_rt, tcg_env, ri->fieldoffset); + tcg_gen_ld_i64(tcg_rt2, tcg_env, ri->fieldoffsethi); } - gen_helper_get_cp_reg64(tcg_rt, tcg_env, tcg_ri); } else { - tcg_gen_ld_i64(tcg_rt, tcg_env, ri->fieldoffset); + if (ri->type & ARM_CP_CONST) { + /* If not forbidden by access permissions, treat as WI */ + return; + } else if (ri->write128fn) { + if (!tcg_ri) { + tcg_ri =3D gen_lookup_cp_reg(key); + } + gen_helper_set_cp_reg128(tcg_env, tcg_ri, tcg_rt, tcg_rt2); + } else { + tcg_gen_st_i64(tcg_rt, tcg_env, ri->fieldoffset); + tcg_gen_st_i64(tcg_rt2, tcg_env, ri->fieldoffsethi); + } } } else { - if (ri->type & ARM_CP_CONST) { - /* If not forbidden by access permissions, treat as WI */ - return; - } else if (ri->writefn) { - if (!tcg_ri) { - tcg_ri =3D gen_lookup_cp_reg(key); + if (isread) { + if (ri->type & ARM_CP_CONST) { + tcg_gen_movi_i64(tcg_rt, ri->resetvalue); + } else if (ri->readfn) { + if (!tcg_ri) { + tcg_ri =3D gen_lookup_cp_reg(key); + } + gen_helper_get_cp_reg64(tcg_rt, tcg_env, tcg_ri); + } else { + tcg_gen_ld_i64(tcg_rt, tcg_env, ri->fieldoffset); } - gen_helper_set_cp_reg64(tcg_env, tcg_ri, tcg_rt); } else { - tcg_gen_st_i64(tcg_rt, tcg_env, ri->fieldoffset); + if (ri->type & ARM_CP_CONST) { + /* If not forbidden by access permissions, treat as WI */ + return; + } else if (ri->writefn) { + if (!tcg_ri) { + tcg_ri =3D gen_lookup_cp_reg(key); + } + gen_helper_set_cp_reg64(tcg_env, tcg_ri, tcg_rt); + } else { + tcg_gen_st_i64(tcg_rt, tcg_env, ri->fieldoffset); + } } } =20 @@ -3144,7 +3208,34 @@ static void handle_sys(DisasContext *s, bool isread, =20 static bool trans_SYS(DisasContext *s, arg_SYS *a) { - handle_sys(s, a->l, a->op0, a->op1, a->op2, a->crn, a->crm, a->rt); + handle_sys(s, a->l, a->op0, a->op1, a->op2, a->crn, a->crm, a->rt, 0); + return true; +} + +static bool trans_SYS128(DisasContext *s, arg_sys *a) +{ + if (!dc_isar_feature(aa64_sysreg128, s) || (a->rt & 1)) { + return false; + } + handle_sys(s, a->l, a->op0, a->op1, a->op2, a->crn, a->crm, + a->rt, a->rt + 1); + return true; +} + +static bool trans_SYSP(DisasContext *s, arg_sys *a) +{ + int rt2; + if (!dc_isar_feature(aa64_sysinstr128, s)) { + return false; + } + if (a->rt =3D=3D 31) { + rt2 =3D 31; + } else if (a->rt & 1) { + return false; + } else { + rt2 =3D a->rt + 1; + } + handle_sys(s, a->l, a->op0, a->op1, a->op2, a->crn, a->crm, a->rt, rt2= ); return true; } =20 diff --git a/target/arm/tcg/a64.decode b/target/arm/tcg/a64.decode index 01b1b3e38b..c76757ed01 100644 --- a/target/arm/tcg/a64.decode +++ b/target/arm/tcg/a64.decode @@ -302,9 +302,15 @@ MSR_i_SVCR 1101 0101 0000 0 011 0100 0 mask:2 imm= :1 011 11111 # same instruction as far as QEMU is concerned. # NB: op0 is bits [20:19], but op0=3D0b00 is other insns, so we have # to hand-decode it. -SYS 1101 0101 00 l:1 01 op1:3 crn:4 crm:4 op2:3 rt:5 op0=3D1 -SYS 1101 0101 00 l:1 10 op1:3 crn:4 crm:4 op2:3 rt:5 op0=3D2 -SYS 1101 0101 00 l:1 11 op1:3 crn:4 crm:4 op2:3 rt:5 op0=3D3 +&sys l op0 op1 op2 crn crm rt +SYS 1101 0101 00 l:1 01 op1:3 crn:4 crm:4 op2:3 rt:5 &sys op0= =3D1 +SYS 1101 0101 00 l:1 10 op1:3 crn:4 crm:4 op2:3 rt:5 &sys op0= =3D2 +SYS 1101 0101 00 l:1 11 op1:3 crn:4 crm:4 op2:3 rt:5 &sys op0= =3D3 + +# MRRS, MSRR +SYS128 1101 0101 01 l:1 10 op1:3 crn:4 crm:4 op2:3 rt:5 &sys op0= =3D2 +SYS128 1101 0101 01 l:1 11 op1:3 crn:4 crm:4 op2:3 rt:5 &sys op0= =3D3 +SYSP 1101 0101 01 0 01 op1:3 crn:4 crm:4 op2:3 rt:5 &sys op0= =3D1 l=3D0 =20 # Exception generation =20 --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472702; cv=none; d=zohomail.com; s=zohoarc; b=f3FcGGXcK4B1eIytAP2ok07Yu5kOLsQ1EClihjhUrpWPdjCXB4kRosDZ4d1nMWzv9+g5yk3QSu9s2TDu75It0dl9OYk7E74Qm927OgzKeyrPOvdd+HpnjC6sFes7EXzIjeDTgVxdozAoXxqmBQJ9IPjyTSVRc+M5vOTog4CbEQg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472702; 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=i+qU0whZ6ZjQiZGb9Lq+40FrMiv4gq0wjHFcVSvTXNk=; b=Lhk4x2ziUAwbV9PwSv+EUUmCRAHpTRQK88X1zEtieVvgk/8v+zU/ngrnQ/SiUVhTs+07pykIICRziYyg3ykykyjiVqDgv6KSGwrse/OsCx35GS0c40w+CdofJvwlgwJ48Qwrk/4ioScuHBCAOm86LBDJGaLVhgsa/scgssZIkeY= 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 1760472702194523.1211488211289; Tue, 14 Oct 2025 13:11:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJw-0002cJ-17; Tue, 14 Oct 2025 16:08:32 -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 1v8lJf-0002KH-6h for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:18 -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 1v8lJ3-0005Mu-Kv for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:13 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-27ee41e0798so91919595ad.1 for ; Tue, 14 Oct 2025 13:07:34 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472453; x=1761077253; 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=i+qU0whZ6ZjQiZGb9Lq+40FrMiv4gq0wjHFcVSvTXNk=; b=L8vz4LrlVyppL3jDPU3TjFDj7DuiABpCUs6c4Hm+DbtMQf8/mDkYz+kU7z9Ik3a/3J ZwOh6uRvWqqYOZbNvPHA7H1kghYYC/v6tTEjoDINR/kuRAjO7XlT61xlmNMLgjOoAy1U fBZ3cmoXJ6gaJX5rpeiyJEpcTBSjqySOIorovq9n2ADj2N64ixwWLIaTAYL5pir7yVnY QFVbnAUv7wlDm14oAaVSvuh4e+Z4RtJsLDRb9ytMtqv/LpNlwdWh6k/XYYAYwMpe7IcO bnxpJbNa+RNTuUZSr50BiXjTSNe7R72+QUcBSGGUIo1PlyN72Ou5jCkD2BvC2zo392CL Lubw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472453; x=1761077253; 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=i+qU0whZ6ZjQiZGb9Lq+40FrMiv4gq0wjHFcVSvTXNk=; b=V5ZGfi4R6ahScGMc8ZFHzYEs8CiJrCGjS1oGJb2yAmd9SCQ2PWheMjMeXZLPEZfsM/ 2pPsLd3xx8VWYAAfaB+OLcTo0X5xM8qNVncvSOKp36B4URI2QDZb4VCeDWX6MXoOI71u K5Nda3b6W3hZawYaRlYLYOZQscQiozqYobioovbe10z3t7fNFYd3XLCqWYUaonoDFATo eNVhZ6qz7EhkDxaIpk/wRy6ceHv/njoWWDpqNhgvHu1x3E48LDWcovqQqWTtdbZ8sx/0 SqhLSIpRK7TClYh1HaVD+5ebOCGqDdQ79HqnY3Z7ftG1XKoUXGNX3uAa+01xZFEBcHY5 pBzw== X-Gm-Message-State: AOJu0YzRg0QU7tnaBKszl6W9HO2C9Tbq8DBYGP5NnLyjO5w7hXAH3Y3p tOwkGM9M8rAuMLNM5rTWVhjtpCnUz0coldhnSSLTzlTk/tmDmNx1Xr73MHtgK6gRlIDrxw8u+PF 03ae5Lyo= X-Gm-Gg: ASbGncu2/XB5LISOEcuDQMDE1lQ91cb90VkdHasgxx6n7vxDLfYEyHyXmxxDe/e4Ogp mFpFCuKFgmx/gKONo2Q17rI1Hn/wQFHS8l++Ii7DDfneMDoBLFCLX6IZ8BEQbhd0IhLbFnPDeh8 cFj9HxqE9kLHX05wKa4jEnCkwsw9oqxoH+I/Qu2Cyn6Q4laGlhNn/Uznz9IjJ/P2b/TGB9uyXHf M4hV3c8V28Ki+oLYJiKzbfvviQP+XspcMuKU0VUX65wbyVcOv7BsYTRFxkZuX65gyl2Mai/PQy+ EJy/V3aP7vhN0N7dzs52lMYLbrVYyiL4NYB/jOtro2oFxL6+msp1XfG6rowa1TsQuXoFc/8e4rE 9ybO9QqhmUZqI6E8D6a646RnNDGOWSq5dFg5tIagg9R8HEbAfVEI= X-Google-Smtp-Source: AGHT+IE0Kxr6QefjgB5eoH1V9yc4zW1jU/WWtmP2lBc440xGKnNB1sae9ho0SY2KNR3XbYx7WCjhXA== X-Received: by 2002:a17:903:f85:b0:275:b1cf:6ddc with SMTP id d9443c01a7336-290273565c8mr349853185ad.5.1760472453483; Tue, 14 Oct 2025 13:07:33 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 20/37] target/arm: Consolidate definitions of PAR Date: Tue, 14 Oct 2025 13:07:01 -0700 Message-ID: <20251014200718.422022-21-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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: 1760472704986158500 Content-Type: text/plain; charset="utf-8" Create a function define_par_register which handles the 3 distinct cases for PAR. It is easier to understand with the definitions all in one place. Make the aarch64 to be the primary definition, when present, rather than being an alias of the 64-bit non-secure aa32 reg. Remove the unnecessary .writefn from the aarch64 defintion, and drop it from the 32-bit definition with LPAE. Remove the LPAE test from par_write, since it will no longer be used in that situation. Signed-off-by: Richard Henderson --- target/arm/helper.c | 103 +++++++++++++++++++++++++++++++------------- 1 file changed, 73 insertions(+), 30 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index d3a425e259..7800d83f48 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -2475,9 +2475,7 @@ static const ARMCPRegInfo gen_timer_ecv_cp_reginfo[] = =3D { =20 static void par_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t v= alue) { - if (arm_feature(env, ARM_FEATURE_LPAE)) { - raw_write(env, ri, value); - } else if (arm_feature(env, ARM_FEATURE_V7)) { + if (arm_feature(env, ARM_FEATURE_V7)) { raw_write(env, ri, value & 0xfffff6ff); } else { raw_write(env, ri, value & 0xfffff1ff); @@ -3244,10 +3242,11 @@ static const ARMCPRegInfo lpae_cp_reginfo[] =3D { { .name =3D "AMAIR1", .cp =3D 15, .crn =3D 10, .crm =3D 3, .opc1 =3D 0= , .opc2 =3D 1, .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, - { .name =3D "PAR", .cp =3D 15, .crm =3D 7, .opc1 =3D 0, - .access =3D PL1_RW, .type =3D ARM_CP_64BIT, .resetvalue =3D 0, - .bank_fieldoffsets =3D { offsetof(CPUARMState, cp15.par_s), - offsetof(CPUARMState, cp15.par_ns)} }, + + /* + * The primary definitions of TTBR[01]_EL1 are in vmsa_cp_reginfo[]. + * Here we need only provide the 64-bit views for AArch32. + */ { .name =3D "TTBR0", .cp =3D 15, .crm =3D 2, .opc1 =3D 0, .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, .type =3D ARM_CP_64BIT | ARM_CP_ALIAS, @@ -3262,6 +3261,71 @@ static const ARMCPRegInfo lpae_cp_reginfo[] =3D { .writefn =3D vmsa_ttbr_write, .raw_writefn =3D raw_write }, }; =20 +static void define_par_register(ARMCPU *cpu) +{ + /* + * For v8: + * The aarch64 reg is primary, since it might be 128-bit. + * The aarch32 64-bit non-secure reg is secondary to aa64. + * The aarch32 64-bit secure reg is primary. + * + * For v7: + * The aarch32 64-bit s+ns regs are primary. + * + * The aarch32 32-bit regs are secondary to one of the above, + * and we also don't expose them to gdb. + */ + static const ARMCPRegInfo parv8_reginfo =3D { + .name =3D "PAR_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 7, .crm =3D 4, .opc2 =3D 0, + .access =3D PL1_RW, .fgt =3D FGT_PAR_EL1, + .fieldoffset =3D offsetof(CPUARMState, cp15.par_el[1]) + }; + + static ARMCPRegInfo par64_reginfo[2] =3D { + [0 ... 1] =3D { + .state =3D ARM_CP_STATE_AA32, + .cp =3D 15, .crm =3D 7, .opc1 =3D 0, + .type =3D ARM_CP_64BIT, .access =3D PL1_RW, + }, + [0].name =3D "PAR", + [0].secure =3D ARM_CP_SECSTATE_NS, + [0].fieldoffset =3D offsetof(CPUARMState, cp15.par_ns), + [1].name =3D "PAR_S", + [1].secure =3D ARM_CP_SECSTATE_S, + [1].fieldoffset =3D offsetof(CPUARMState, cp15.par_s), + }; + + static ARMCPRegInfo par32_reginfo =3D { + .name =3D "PAR", .state =3D ARM_CP_STATE_AA32, + .cp =3D 15, .crn =3D 7, .crm =3D 4, .opc1 =3D 0, .opc2 =3D 0, + .access =3D PL1_RW, .resetvalue =3D 0, + .bank_fieldoffsets =3D { offsetoflow32(CPUARMState, cp15.par_s), + offsetoflow32(CPUARMState, cp15.par_ns) }, + .writefn =3D par_write, + }; + + CPUARMState *env =3D &cpu->env; + + /* With only VAPA, define a 32-bit reg that filters bits from write. */ + if (!arm_feature(env, ARM_FEATURE_LPAE)) { + define_one_arm_cp_reg(cpu, &par32_reginfo); + return; + } + + /* With LPAE, the 32-bit regs are aliases of 64-bit regs. */ + par32_reginfo.type =3D ARM_CP_ALIAS | ARM_CP_NO_GDB; + par32_reginfo.writefn =3D NULL; + define_one_arm_cp_reg(cpu, &par32_reginfo); + + if (arm_feature(env, ARM_FEATURE_V8)) { + define_one_arm_cp_reg(cpu, &parv8_reginfo); + par64_reginfo[0].type |=3D ARM_CP_ALIAS; + } + + define_arm_cp_regs(cpu, par64_reginfo); +} + static uint64_t aa64_fpcr_read(CPUARMState *env, const ARMCPRegInfo *ri) { return vfp_get_fpcr(env); @@ -3765,13 +3829,6 @@ static const ARMCPRegInfo v8_cp_reginfo[] =3D { .opc0 =3D 1, .opc1 =3D 0, .crn =3D 7, .crm =3D 14, .opc2 =3D 2, .fgt =3D FGT_DCCISW, .access =3D PL1_W, .accessfn =3D access_tsw, .type =3D ARM_CP_NOP }, - { .name =3D "PAR_EL1", .state =3D ARM_CP_STATE_AA64, - .type =3D ARM_CP_ALIAS, - .opc0 =3D 3, .opc1 =3D 0, .crn =3D 7, .crm =3D 4, .opc2 =3D 0, - .access =3D PL1_RW, .resetvalue =3D 0, - .fgt =3D FGT_PAR_EL1, - .fieldoffset =3D offsetof(CPUARMState, cp15.par_el[1]), - .writefn =3D par_write }, /* 32 bit cache operations */ { .name =3D "ICIALLUIS", .cp =3D 15, .opc1 =3D 0, .crn =3D 7, .crm =3D= 1, .opc2 =3D 0, .type =3D ARM_CP_NOP, .access =3D PL1_W, .accessfn =3D access_ticab = }, @@ -7120,23 +7177,9 @@ void register_cp_regs_for_features(ARMCPU *cpu) define_one_arm_cp_reg(cpu, &gen_timer_cntpoff_reginfo); } #endif - if (arm_feature(env, ARM_FEATURE_VAPA)) { - ARMCPRegInfo vapa_cp_reginfo[] =3D { - { .name =3D "PAR", .cp =3D 15, .crn =3D 7, .crm =3D 4, .opc1 = =3D 0, .opc2 =3D 0, - .access =3D PL1_RW, .resetvalue =3D 0, - .bank_fieldoffsets =3D { offsetoflow32(CPUARMState, cp15.par= _s), - offsetoflow32(CPUARMState, cp15.par_n= s) }, - .writefn =3D par_write}, - }; =20 - /* - * When LPAE exists this 32-bit PAR register is an alias of the - * 64-bit AArch32 PAR register defined in lpae_cp_reginfo[] - */ - if (arm_feature(env, ARM_FEATURE_LPAE)) { - vapa_cp_reginfo[0].type =3D ARM_CP_ALIAS | ARM_CP_NO_GDB; - } - define_arm_cp_regs(cpu, vapa_cp_reginfo); + if (arm_feature(env, ARM_FEATURE_VAPA)) { + define_par_register(cpu); } if (arm_feature(env, ARM_FEATURE_CACHE_TEST_CLEAN)) { define_arm_cp_regs(cpu, cache_test_clean_cp_reginfo); --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473186; cv=none; d=zohomail.com; s=zohoarc; b=hA4aVz7j0XnBsI0E6DzeBeSghWck/wRl+moZMie2AwFzIp1hRNGPdytKJKomuqw0gVbqwJfzKvIUiMrtzOQWcKozj6IJiYJPIVXU+kpEwmr8oUUoxox7bKvWEWYHGc67BBQ6RybSCPQc14jHbwhwpLFt5aoxckssaxm94O/0zws= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473186; 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=xuDdploVwOohaJF+BjsThS/WupxUVcdL5+YNe+s9Q/s=; b=bHYSmW1MGgmVIi+LLKAUWqJ3Qh7mpuVQAmsrsEpuKN2QgTNFqMUAhBMAIbfohDX88fPjqvJveQToewDM11yrwT7YS/CMeEUrZIzj7cIM2iggzOHvqUPCMJUPZG/xgsFovN2O1atdmvJ5LszCv9DTOxnoPTH1QEhbEqjfpt7H1Ms= 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 1760473185965251.4510853520277; Tue, 14 Oct 2025 13:19:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJt-0002Z8-F9; Tue, 14 Oct 2025 16:08:29 -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 1v8lJf-0002KU-Jr for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:18 -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 1v8lJ3-0005N4-OV for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:13 -0400 Received: by mail-pl1-x62e.google.com with SMTP id d9443c01a7336-26e68904f0eso59687495ad.0 for ; Tue, 14 Oct 2025 13:07:35 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472454; x=1761077254; 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=xuDdploVwOohaJF+BjsThS/WupxUVcdL5+YNe+s9Q/s=; b=Cy/lLLnuOvT7THZkV1fXBxr8hTwvuOs6KwSV/tYxSdq+ZKgQ3+FfilNHIJcXW5kdie zB8wQO+Fd+spt1Vjhd5BzcBx+bRT3CsILHlwjZmxV8IBFF5XbnUvnv3URuESwokCCkM4 /AGGWYD41/4IXV3Nb2gPuO9rpNbssvbfcIbTxjQGNgexws4wfbNafqeWDBbdrljM2Vtu 3B/5CCDGlZwTB/H5oAH662n0t4zBW7tipk1s2QnnJ4onCpUTQomaYzYR5P1J3A4wH0fQ b6FKn/a11wZZ4GFlMMy1hILRyk17uCPHxoIb7c5l1oCj4uxiwbxc8pCdGQt/yn/sllIu TXvA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472454; x=1761077254; 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=xuDdploVwOohaJF+BjsThS/WupxUVcdL5+YNe+s9Q/s=; b=uxjpXLI4qNlTVYcyZspQGxewAmaJ1/klvyrDHQmCSkJxBu5GzEKz7SryieGKBjAaN4 k09vn3xye0qv8QmiBU9oeH+yWkCjK/zn42J305I+gJjZfxxvrYcvE2nZn0FhNHfcEaUk v30WMdrkD2dFn2VLzbx/W8Geplkfr99epgUrO97oJI4sM/lmlirrgfITJ3DvwLZU+ZWN bAoAtH5tlICArFYR3PyzMg0vTB3++WKeyvR0mBSu96AMncJ+rOJ4jIic4RkX1O1VQMQB 8Q1ESwMP8pKplpFw82A7LdW27xzgnJHsUxbHPGB5MYnusaNZ5qFm7Ed7oiGJbzYOoLbo YKPw== X-Gm-Message-State: AOJu0Ywmyd9JzOZaGbLDog8N5NWEHSFWSgYm/JD+iUumxbfnH1Tz5RAH eqYbF6zWw9fpXkCoX0xueYwCUQEiv+liQ3EqLgdsb6gNYqATeh/gwaKEcf5qUVdyt/XSxNCtgpq z8mRuU68= X-Gm-Gg: ASbGncv3vPr7IjNWDoN6ZIPah/6JsbrZ2pyrpqvtW+/2EVjRYDU2VbBKsrOO1mRj+uz JhfxUx5+Ed9i3YTdaGNEfwbvPhharrG4jJ5gQT5SyYOkTl0wrrrZw/n3E/JMm+IPcVgTX2FQxMr 9+ywfThff+8BXPj0gVMhtCfq8GjNlSIgxCQcFUi+oCXLS3QZPsQHSJidOytlv1PHFn58L8jykQU DmoQD4Iw8zVFNlk3KtKYnI5592lO4mdd+kuZ5BN34UGJ8VTy0m+TkZ4IzsQRl779v+Dh6L0ZWxo 2IxsZ3cDV8JsoqIK8V53af/hJLswKqdA8xfrwenhNvipjsuTE+gCNIhpJs6ZmfXi/yItHyNDpd6 GIl/bv4/I7E+sf70zoPAeLfBU37//Ng+dXm68u9uaN80WL9GaWPy5scTtn8Zhon0NGnVPKH5t X-Google-Smtp-Source: AGHT+IFNa97sdEi9aFqQfT5nF304TU8bIAG+GMGJJmNSRKsIlL1onZHwtcZXcirNEQcnNnU1yERxJA== X-Received: by 2002:a17:902:fc4c:b0:28e:7841:d437 with SMTP id d9443c01a7336-290272c0474mr360122005ad.38.1760472454256; Tue, 14 Oct 2025 13:07:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 21/37] target/arm: Extend PAR_EL1 to 128-bit Date: Tue, 14 Oct 2025 13:07:02 -0700 Message-ID: <20251014200718.422022-22-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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, T_SPF_TEMPERROR=0.01 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: 1760473190543158500 Content-Type: text/plain; charset="utf-8" Do not yet produce the 128-bit AT format result, but zero the high bits whenever the low bits are written. This corresponds to PAR_EL1.D128 =3D 0, and bits [127:65] as RES0. Signed-off-by: Richard Henderson --- target/arm/cpu.h | 5 ++++- target/arm/internals.h | 1 + target/arm/helper.c | 18 +++++++++++++++++- target/arm/tcg/cpregs-at.c | 4 ++++ 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index a030539488..e03d832717 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -429,7 +429,8 @@ typedef struct CPUArchState { }; uint64_t hpfar_el2; uint64_t hstr_el2; - union { /* Translation result. */ + /* Translation result. */ + union { struct { uint64_t _unused_par_0; uint64_t par_ns; @@ -438,6 +439,7 @@ typedef struct CPUArchState { }; uint64_t par_el[4]; }; + uint64_t par_el1_hi; /* high 64 bits of 128-bit PAR_EL1 */ =20 uint32_t c9_insn; /* Cache lockdown registers. */ uint32_t c9_data; @@ -1750,6 +1752,7 @@ static inline void xpsr_write(CPUARMState *env, uint3= 2_t val, uint32_t mask) #define SCR_SCTLR2EN (1ULL << 44) #define SCR_PIEN (1ULL << 45) #define SCR_AIEN (1ULL << 46) +#define SCR_D128EN (1ULL << 47) #define SCR_GPF (1ULL << 48) #define SCR_MECEN (1ULL << 49) #define SCR_NSE (1ULL << 62) diff --git a/target/arm/internals.h b/target/arm/internals.h index a65386aaed..bda2400b65 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -251,6 +251,7 @@ FIELD(VSTCR, SA, 30, 1) #define HCRX_MSCEN (1ULL << 11) #define HCRX_TCR2EN (1ULL << 14) #define HCRX_SCTLR2EN (1ULL << 15) +#define HCRX_D128EN (1ULL << 17) #define HCRX_GCSEN (1ULL << 22) =20 #define HPFAR_NS (1ULL << 63) diff --git a/target/arm/helper.c b/target/arm/helper.c index 7800d83f48..f9a2a7d62d 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -508,6 +508,20 @@ static CPAccessResult access_tacr(CPUARMState *env, co= nst ARMCPRegInfo *ri, return CP_ACCESS_OK; } =20 +static CPAccessResult access_d128(CPUARMState *env, const ARMCPRegInfo *ri, + bool isread) +{ + int el =3D arm_current_el(env); + + if (el <=3D 1 && !(arm_hcrx_el2_eff(env) & HCRX_D128EN)) { + return CP_ACCESS_TRAP_EL2; + } + if (el <=3D 2 && !(env->cp15.scr_el3 & SCR_D128EN)) { + return CP_ACCESS_TRAP_EL3; + } + return CP_ACCESS_OK; +} + static void dacr_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t = value) { ARMCPU *cpu =3D env_archcpu(env); @@ -3279,7 +3293,9 @@ static void define_par_register(ARMCPU *cpu) .name =3D "PAR_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 7, .crm =3D 4, .opc2 =3D 0, .access =3D PL1_RW, .fgt =3D FGT_PAR_EL1, - .fieldoffset =3D offsetof(CPUARMState, cp15.par_el[1]) + .type =3D ARM_CP_128BIT, .access128fn =3D access_d128, + .fieldoffset =3D offsetof(CPUARMState, cp15.par_el[1]), + .fieldoffsethi =3D offsetof(CPUARMState, cp15.par_el1_hi), }; =20 static ARMCPRegInfo par64_reginfo[2] =3D { diff --git a/target/arm/tcg/cpregs-at.c b/target/arm/tcg/cpregs-at.c index 0e8f229aa7..9e6af3d974 100644 --- a/target/arm/tcg/cpregs-at.c +++ b/target/arm/tcg/cpregs-at.c @@ -353,6 +353,7 @@ static void ats_write64(CPUARMState *env, const ARMCPRe= gInfo *ri, =20 ss =3D for_el3 ? arm_security_space(env) : arm_security_space_below_el= 3(env); env->cp15.par_el[1] =3D do_ats_write(env, value, access_perm, mmu_idx,= ss); + env->cp15.par_el1_hi =3D 0; } =20 static CPAccessResult ats_access(CPUARMState *env, const ARMCPRegInfo *ri, @@ -496,6 +497,7 @@ static void ats_s1e1a(CPUARMState *env, const ARMCPRegI= nfo *ri, uint64_t value) ARMSecuritySpace ss =3D arm_security_space_below_el3(env); =20 env->cp15.par_el[1] =3D do_ats_write(env, value, 0, mmu_idx, ss); + env->cp15.par_el1_hi =3D 0; } =20 static void ats_s1e2a(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t v= alue) @@ -505,12 +507,14 @@ static void ats_s1e2a(CPUARMState *env, const ARMCPRe= gInfo *ri, uint64_t value) ARMSecuritySpace ss =3D arm_security_space_below_el3(env); =20 env->cp15.par_el[1] =3D do_ats_write(env, value, 0, mmu_idx, ss); + env->cp15.par_el1_hi =3D 0; } =20 static void ats_s1e3a(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t v= alue) { env->cp15.par_el[1] =3D do_ats_write(env, value, 0, ARMMMUIdx_E3, arm_security_space(env)); + env->cp15.par_el1_hi =3D 0; } =20 static const ARMCPRegInfo ats1a_reginfo[] =3D { --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472602; cv=none; d=zohomail.com; s=zohoarc; b=a6q/V8iS0z642DC8AoY4jTez/GIXdSOh2CvIuL7K4pivkBSK+JqY0IA7yighTv4KMBIWcO5QfhDxK5dCE2Lo25LKfbTQ+94J6N/ykB8WBgDNb3Dbs1IMAMHyx+HOor4WNieYRzf0/uK+R85fNYpdqgIET1jj1Oq11XFtG5Z1yFc= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472602; 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=mh7tKPNYiN4cooHxCigQNoTwS4lt9qEJ7oaEecPqatQ=; b=AyiSs5Gtg6RYUy2qJDPLDWH131c/3nsV7FNo00JSSmntjakUdGqwcamT+Fo6NyiLWyn7vKSF0ol7sWiLPxFiSoVk/SFFNUzVjXC4akB3ZlBt8QcfyS9ingajleQhrcH2S+miJ5wyEWiu53ox5hRqmnQZ5MLlJcOY8wTC5FgYogI= 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 1760472602386960.4534612691223; Tue, 14 Oct 2025 13:10:02 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJr-0002Wr-NV; Tue, 14 Oct 2025 16:08:27 -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 1v8lJh-0002Lw-V4 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:18 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJ6-0005NC-56 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:17 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b679450ecb6so3095668a12.2 for ; Tue, 14 Oct 2025 13:07:36 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472455; x=1761077255; 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=mh7tKPNYiN4cooHxCigQNoTwS4lt9qEJ7oaEecPqatQ=; b=t5O7DFep4QQnMh2lePh+PiyDaJGYmmWmC7hN3bE8bzjJypa4Rte3D10qAhHA0ih8Xx PSkVV+3IVKZj2z+Muhn+I9DBAbtSg4hC2QHBu4aW99DVMQioV8MrptaPoAh27spENdyK g/X5o5l7s+oN18yclW0pHsym5TdKVpDd2o2xNPGhB0Ibe340Yg/aWg4pUjliVtEGP8Me 13MHgJtOAjOBUjwsHTazgA+CpfMeWo0rqew1iPLd6zlLCcMMWJDBlY+zAhth6ZsyF2Eb 1xD+RPFyOOpc3TxrlKq0B+W2SmmHvo3kuNPuNpHSW2CEgkK6yqF5iUppmn7Ih9fAU5cH QSjQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472455; x=1761077255; 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=mh7tKPNYiN4cooHxCigQNoTwS4lt9qEJ7oaEecPqatQ=; b=AEc7/38ln+xlc468KMi9SuToHDg89PQbJISIwonU17wHOL7GaEsaKiDyWbdDLKVCBQ z56AYjR0YtoMmYOxZQt/ywMUgz0tKm03tux4kQlb5zD24sYbKqox7RBELOWvvTIuvVdo X8M6FnHZE65HmITRuLTvXYdRgd76uJkKITLuYJZFr3jxkUPidofOsrN8yJnPuPkK9xsQ 6NX15n37jBA2Si9qoz4s8IcigPmP1K+YtwM2Rc2QdS5AcnsqkzX3ouSBPpRcRTZ8JKfg xLQ2/0lGBMkofuX+0emMHiXDXG4urwLp7gOyH4W9+ajjqBI4SYzIsbYmDC7o0WJD6Xya u/iA== X-Gm-Message-State: AOJu0YxC1xMQIHIrugSt4wkZk4ZlEOHIvbljKK9XUXstr7Q/dBawWiJs iaYJP8AsuVjuoIGxALlfo1ptQuR/p+7m7f1/83dGYRvoEIV+bRNbbj+hiDMmPdmOg4wBT0ulWw9 dN/K0lzw= X-Gm-Gg: ASbGncuTjt83NfjgWgA/tFqqRoJyi4xUGfUSA2cjmJOwXo+5incuHN61d4NsNMwnPDz 0gc+dFx+ASHi/0x+1q85y/rDEUS/q3q+wwDBegwG/L/IPHMKPGYAFk8SwMEoFMzk0XDHGPN6jkx rmoe0uSwjP8MFJS+LSmMIUe1Hu73Dey13HMGK1WK6LeFFnbkeZ4J7NF2aIP1qng2QJ1JXiZ5Mub lQmFPL8uh55eID7b/mxg2Hsy7jRWFYVDuN9XQi9OaFbb5RDkpjYmw0+EFvzOtkeN5zwuhXksQQ4 dG9LolVUnegfRvRHzhFUyMC+PxTCkd0HCGOSP0Gurh8ZZ6GKp7tij9CGC1y7/PtzjJOoADwMaZL C2L6E0IqglQXKW1fDdLN4JaAye6Mf5vmW9zvx/iZzz03SazuxKd4= X-Google-Smtp-Source: AGHT+IGDOrngbotiiIJW1I5eSvolOSsSx1IQiZmWn5hC1IOu90ppsRavA46sX6fBulYV3FtKqtv+fQ== X-Received: by 2002:a17:903:4b2f:b0:267:a5df:9b07 with SMTP id d9443c01a7336-2902721332amr329100625ad.12.1760472454911; Tue, 14 Oct 2025 13:07:34 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 22/37] target/arm: Consolidate definitions of TTBR[01] Date: Tue, 14 Oct 2025 13:07:03 -0700 Message-ID: <20251014200718.422022-23-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::534; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x534.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: 1760472604647154100 Content-Type: text/plain; charset="utf-8" Create a function define_ttbr_register which handles the 3 distinct cases for TTBR[01] registers. Signed-off-by: Richard Henderson --- target/arm/helper.c | 165 +++++++++++++++++++++++++++++++------------- 1 file changed, 116 insertions(+), 49 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index f9a2a7d62d..550ba77c5c 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -3011,26 +3011,6 @@ static const ARMCPRegInfo vmsa_cp_reginfo[] =3D { .vhe_redir_to_el2 =3D ENCODE_AA64_CP_REG(3, 4, 5, 2, 0), .vhe_redir_to_el01 =3D ENCODE_AA64_CP_REG(3, 5, 5, 2, 0), .fieldoffset =3D offsetof(CPUARMState, cp15.esr_el[1]), .resetvalue = =3D 0, }, - { .name =3D "TTBR0_EL1", .state =3D ARM_CP_STATE_BOTH, - .opc0 =3D 3, .opc1 =3D 0, .crn =3D 2, .crm =3D 0, .opc2 =3D 0, - .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, - .fgt =3D FGT_TTBR0_EL1, - .nv2_redirect_offset =3D 0x200 | NV2_REDIR_NV1, - .vhe_redir_to_el2 =3D ENCODE_AA64_CP_REG(3, 4, 2, 0, 0), - .vhe_redir_to_el01 =3D ENCODE_AA64_CP_REG(3, 5, 2, 0, 0), - .writefn =3D vmsa_ttbr_write, .resetvalue =3D 0, .raw_writefn =3D ra= w_write, - .bank_fieldoffsets =3D { offsetof(CPUARMState, cp15.ttbr0_s), - offsetof(CPUARMState, cp15.ttbr0_ns) } }, - { .name =3D "TTBR1_EL1", .state =3D ARM_CP_STATE_BOTH, - .opc0 =3D 3, .opc1 =3D 0, .crn =3D 2, .crm =3D 0, .opc2 =3D 1, - .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, - .fgt =3D FGT_TTBR1_EL1, - .nv2_redirect_offset =3D 0x210 | NV2_REDIR_NV1, - .vhe_redir_to_el2 =3D ENCODE_AA64_CP_REG(3, 4, 2, 0, 1), - .vhe_redir_to_el01 =3D ENCODE_AA64_CP_REG(3, 5, 2, 0, 1), - .writefn =3D vmsa_ttbr_write, .resetvalue =3D 0, .raw_writefn =3D ra= w_write, - .bank_fieldoffsets =3D { offsetof(CPUARMState, cp15.ttbr1_s), - offsetof(CPUARMState, cp15.ttbr1_ns) } }, { .name =3D "TCR_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .crn =3D 2, .crm =3D 0, .opc1 =3D 0, .opc2 =3D 2, .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, @@ -3256,23 +3236,6 @@ static const ARMCPRegInfo lpae_cp_reginfo[] =3D { { .name =3D "AMAIR1", .cp =3D 15, .crn =3D 10, .crm =3D 3, .opc1 =3D 0= , .opc2 =3D 1, .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, .type =3D ARM_CP_CONST, .resetvalue =3D 0 }, - - /* - * The primary definitions of TTBR[01]_EL1 are in vmsa_cp_reginfo[]. - * Here we need only provide the 64-bit views for AArch32. - */ - { .name =3D "TTBR0", .cp =3D 15, .crm =3D 2, .opc1 =3D 0, - .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, - .type =3D ARM_CP_64BIT | ARM_CP_ALIAS, - .bank_fieldoffsets =3D { offsetof(CPUARMState, cp15.ttbr0_s), - offsetof(CPUARMState, cp15.ttbr0_ns) }, - .writefn =3D vmsa_ttbr_write, .raw_writefn =3D raw_write }, - { .name =3D "TTBR1", .cp =3D 15, .crm =3D 2, .opc1 =3D 1, - .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, - .type =3D ARM_CP_64BIT | ARM_CP_ALIAS, - .bank_fieldoffsets =3D { offsetof(CPUARMState, cp15.ttbr1_s), - offsetof(CPUARMState, cp15.ttbr1_ns) }, - .writefn =3D vmsa_ttbr_write, .raw_writefn =3D raw_write }, }; =20 static void define_par_register(ARMCPU *cpu) @@ -3342,6 +3305,121 @@ static void define_par_register(ARMCPU *cpu) define_arm_cp_regs(cpu, par64_reginfo); } =20 +static void define_ttbr_registers(ARMCPU *cpu) +{ + /* + * For v8: + * The aarch64 regs are primary, since they might be 128-bit. + * The aarch32 64-bit non-secure regs are secondary to aa64 el1. + * The aarch32 64-bit httbr is secondary to aa64 el2. + * The aarch32 64-bit secure ttbr0 is secondary to aa64 el3. + * The aarch32 64-bit secure ttbr1 is primary. + * + * For v7: + * The aarch32 64-bit s+ns regs are primary. + * + * The aarch32 32-bit regs are secondary to one of the above, + * and we also don't expose them to gdb. + */ + static const ARMCPRegInfo ttbrv8_reginfo[] =3D { + { .name =3D "TTBR0_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 2, .crm =3D 0, .opc2 =3D 0, + .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, + .fgt =3D FGT_TTBR0_EL1, + .nv2_redirect_offset =3D 0x200 | NV2_REDIR_NV1, + .vhe_redir_to_el2 =3D ENCODE_AA64_CP_REG(3, 4, 2, 0, 0), + .vhe_redir_to_el01 =3D ENCODE_AA64_CP_REG(3, 5, 2, 0, 0), + .writefn =3D vmsa_ttbr_write, .raw_writefn =3D raw_write, + .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[1]) }, + { .name =3D "TTBR1_EL1", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 0, .crn =3D 2, .crm =3D 0, .opc2 =3D 1, + .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, + .fgt =3D FGT_TTBR1_EL1, + .nv2_redirect_offset =3D 0x210 | NV2_REDIR_NV1, + .vhe_redir_to_el2 =3D ENCODE_AA64_CP_REG(3, 4, 2, 0, 1), + .vhe_redir_to_el01 =3D ENCODE_AA64_CP_REG(3, 5, 2, 0, 1), + .writefn =3D vmsa_ttbr_write, .raw_writefn =3D raw_write, + .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr1_el[1]) }, + { .name =3D "TTBR0_EL2", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 4, .crn =3D 2, .crm =3D 0, .opc2 =3D 0, + .access =3D PL2_RW, .resetvalue =3D 0, + .writefn =3D vmsa_tcr_ttbr_el2_write, .raw_writefn =3D raw_write, + .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[2]) }, + { .name =3D "TTBR0_EL3", .state =3D ARM_CP_STATE_AA64, + .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 0, .opc2 =3D 0, + .access =3D PL3_RW, .resetvalue =3D 0, + .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[3]) }, + }; + + static ARMCPRegInfo ttbr64_reginfo[] =3D { + [0 ... 3] =3D { + .cp =3D 15, .crm =3D 2, .type =3D ARM_CP_64BIT, + .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, + .writefn =3D vmsa_ttbr_write, .raw_writefn =3D raw_write + }, + [0 ... 1].opc1 =3D 0, + [0].name =3D "TTBR0", + [0].secure =3D ARM_CP_SECSTATE_NS, + [0].fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_ns), + [1].name =3D "TTBR0_S", + [1].secure =3D ARM_CP_SECSTATE_S, + [1].fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_s), + + [2 ... 3].opc1 =3D 1, + [2].name =3D "TTBR1", + [2].secure =3D ARM_CP_SECSTATE_NS, + [2].fieldoffset =3D offsetof(CPUARMState, cp15.ttbr1_ns), + [3].name =3D "TTBR1_S", + [3].secure =3D ARM_CP_SECSTATE_S, + [3].fieldoffset =3D offsetof(CPUARMState, cp15.ttbr1_s), + + [4] =3D { + .name =3D "HTTBR", .cp =3D 15, .crm =3D 2, .opc1 =3D 4, + .access =3D PL2_RW, .type =3D ARM_CP_64BIT, + .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[2]) + }, + }; + + static ARMCPRegInfo ttbr32_reginfo[] =3D { + { .name =3D "TTBR0", .cp =3D 15, .opc1 =3D 0, .crn =3D 2, .crm =3D= 0, .opc2 =3D 0, + .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, + .writefn =3D vmsa_ttbr_write, .raw_writefn =3D raw_write, + .bank_fieldoffsets =3D { offsetof(CPUARMState, cp15.ttbr0_s), + offsetof(CPUARMState, cp15.ttbr0_ns) } }, + { .name =3D "TTBR1", .cp =3D 15, .opc1 =3D 0, .crn =3D 2, .crm =3D= 0, .opc2 =3D 1, + .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, + .writefn =3D vmsa_ttbr_write, .raw_writefn =3D raw_write, + .bank_fieldoffsets =3D { offsetof(CPUARMState, cp15.ttbr1_s), + offsetof(CPUARMState, cp15.ttbr1_ns) } }, + }; + + CPUARMState *env =3D &cpu->env; + + /* With only VMSA, define a 32-bit reg that filters bits from write. */ + if (!arm_feature(env, ARM_FEATURE_LPAE)) { + define_arm_cp_regs(cpu, ttbr32_reginfo); + return; + } + + /* With LPAE, the 32-bit regs are aliases of 64-bit regs. */ + for (int i =3D 0; i < ARRAY_SIZE(ttbr32_reginfo); ++i) { + ttbr32_reginfo[i].type =3D ARM_CP_ALIAS | ARM_CP_NO_GDB; + } + define_arm_cp_regs(cpu, ttbr32_reginfo); + + if (arm_feature(env, ARM_FEATURE_V8)) { + define_arm_cp_regs(cpu, ttbrv8_reginfo); + + ttbr64_reginfo[0].type |=3D ARM_CP_ALIAS; + ttbr64_reginfo[1].type |=3D ARM_CP_ALIAS; + ttbr64_reginfo[2].type |=3D ARM_CP_ALIAS; + /* Index 3, TTBR1_S, is not an alias. */ + ttbr64_reginfo[4].type |=3D ARM_CP_ALIAS; + } + + define_arm_cp_regs(cpu, ttbr64_reginfo); +} + static uint64_t aa64_fpcr_read(CPUARMState *env, const ARMCPRegInfo *ri) { return vfp_get_fpcr(env); @@ -4468,14 +4546,6 @@ static const ARMCPRegInfo el2_cp_reginfo[] =3D { .access =3D PL2_RW, .resetvalue =3D 0, .nv2_redirect_offset =3D 0x90, .fieldoffset =3D offsetof(CPUARMState, cp15.tpidr_el[2]) }, - { .name =3D "TTBR0_EL2", .state =3D ARM_CP_STATE_AA64, - .opc0 =3D 3, .opc1 =3D 4, .crn =3D 2, .crm =3D 0, .opc2 =3D 0, - .access =3D PL2_RW, .resetvalue =3D 0, - .writefn =3D vmsa_tcr_ttbr_el2_write, .raw_writefn =3D raw_write, - .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[2]) }, - { .name =3D "HTTBR", .cp =3D 15, .opc1 =3D 4, .crm =3D 2, - .access =3D PL2_RW, .type =3D ARM_CP_64BIT | ARM_CP_ALIAS, - .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[2]) }, #ifndef CONFIG_USER_ONLY { .name =3D "CNTHCTL_EL2", .state =3D ARM_CP_STATE_BOTH, .opc0 =3D 3, .opc1 =3D 4, .crn =3D 14, .crm =3D 1, .opc2 =3D 0, @@ -4660,10 +4730,6 @@ static const ARMCPRegInfo el3_cp_reginfo[] =3D { .access =3D PL1_RW, .accessfn =3D access_trap_aa32s_el1, .writefn =3D vbar_write, .resetvalue =3D 0, .fieldoffset =3D offsetof(CPUARMState, cp15.mvbar) }, - { .name =3D "TTBR0_EL3", .state =3D ARM_CP_STATE_AA64, - .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 0, .opc2 =3D 0, - .access =3D PL3_RW, .resetvalue =3D 0, - .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[3]) }, { .name =3D "TCR_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 0, .opc2 =3D 2, .access =3D PL3_RW, @@ -7174,6 +7240,7 @@ void register_cp_regs_for_features(ARMCPU *cpu) } else { define_arm_cp_regs(cpu, vmsa_pmsa_cp_reginfo); define_arm_cp_regs(cpu, vmsa_cp_reginfo); + define_ttbr_registers(cpu); /* TTCBR2 is introduced with ARMv8.2-AA32HPD. */ if (cpu_isar_feature(aa32_hpd, cpu)) { define_one_arm_cp_reg(cpu, &ttbcr2_reginfo); --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472698; cv=none; d=zohomail.com; s=zohoarc; b=Jw3sqYNYStlXY6O6HDs1WWTrWU0/1fYUqTgMEdutedfM5Bdop29ek++jQQDIR2SuxImx08PBtNgVqWc9CsTdIRY3FuWJc+8NZYMwdXT7tOqIwA9Tq6B61Q9Yk3Nd9Qx/I9+kNDC6vmR/b7Z8j9IwujH0AqdTNMXF8VVpeQWtTrE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472698; 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=m7hkthyYRuHXN3913QLlPJYPsMb7uOcoCSH2wW9sxo8=; b=iOjBJaGrRs08fB2x/XMRhBh/+g7CMgFPx7igLeRPU2sD3axD5/hb+8MysI9MPVc4T44Ko4neW3wJEtF5oiSLfM5EX93pT9/lfW41A4bE+EsuBtAn/xF3MI0IZmDcklh58U+JHut+sD54JG586Kfn6RgqKs/j0FGXsk93uwmEr7Q= 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 1760472698455815.8854959457536; Tue, 14 Oct 2025 13:11:38 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJw-0002ch-HL; Tue, 14 Oct 2025 16:08:32 -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 1v8lJl-0002PT-P5 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:22 -0400 Received: from mail-pf1-x42d.google.com ([2607:f8b0: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 1v8lJ6-0005NT-55 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:20 -0400 Received: by mail-pf1-x42d.google.com with SMTP id d2e1a72fcca58-78f3bfe3f69so5186353b3a.2 for ; Tue, 14 Oct 2025 13:07:39 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472456; x=1761077256; 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=m7hkthyYRuHXN3913QLlPJYPsMb7uOcoCSH2wW9sxo8=; b=kHhL/TFd0q3K1gvW3mJBHsZsqHkXDVlPz4jcIKzCVKYEAjK45iX8QqKRKV8Plmd+gV LY5Uhu+XRAEBkLrmL8Vp5mkx0O+75Ou879X1qXRox7SpFibuIDsTepktGOHkZRwRKNog /I5Rodh6IY0FLffQFTGjMYzLbCM7cNtCqp2av5D7Xcz4xr5KRH/yorplmUUG8FuAPdSM 8DzmBJyOWkLqw7tf7J9VATgmtAcDpsaffkIFc/f/o18OhY1fjZ+DF1THftBgvVs/NCnl 9Ic+k9OoLzdsN7n0W0sylG5wvh0UZ/T7wHxi84Qg37rMeW0SwweS90/TNAIAAMtBi+XK t/vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472456; x=1761077256; 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=m7hkthyYRuHXN3913QLlPJYPsMb7uOcoCSH2wW9sxo8=; b=Gwd41foJV+y2G4JiaI2z+36C9odXXb1ZKpnL50WCNfpPMdlW2wTvAzT2qI6HVIwNSE fd1hmHsbUH/jNkKYeogLomB5qQOxffyQaSFJhVWzmwmUqYpOF/VsOWc9QaHkgflXBaUa H6TXNcFGgxJyWnQpRRWa1lURezbPa8P+FeW0kdlduD+PAGM8NesUkulhclLVK0djvMg6 X0eJscCnTp4Fd8GloAzWbLKztXyqd5/8sQfh4VGfMAcSXFpVFO6FgqDmIks5UO24P80c pmGlSQ7dZ+r6ZvmpqWGwU3vbgBGjVcWKpdat13Bjlz4pLH+4aI5BDLqRc1evmmz0BHnS odVQ== X-Gm-Message-State: AOJu0YwMp5kiSV2etdawryBdDo68Oq79xXG6h4n3FpFreSsUtathCDbx CXRpPqnQF5Zruz1k/rqTzxD9RO1wxUJ1I8zc4iQ2AnTEBCAq+1u5+QCG2Fa8mqZtRo0fVCU3DHm 2usDUasM= X-Gm-Gg: ASbGncv6/Y0Ihf6hEqbPHGFzot6mMBIYcmCvHO3VkNnJpoDGs4qIbWIkgpVzi+s9hBz 2PYC39pXejkNEgwWfFPxacOPOxs/x+CVnQGsTPxUHIqzIcvi2gPfr/16Ej5lXOpkjnTMHYPvUzz v+gURyH1A+jRY/1XZtSmltcil1Hug3QLnVsH6EyoWiOZKjfy5rSr+q+Uc+HpBzi5vVuhYrXHGCu HymCVR0uB9Uo//UUOiCFaWdBr+nE+zHrvSPEOEsYZHEr7XcJdcUI9zDBV2X4b2jtMtNlP8LIhqQ bTvL9g6IJH1s/X8ixo4VJlW/kQP+a9NPk1RYPvlHmS2dI2srHNjX2eYAt5Voy3MEufpnxXxiofN Rcr7Y8Ht5ev59gMfrhciBvyU0FeGN9SjSJbeeHX4cM4/oo+e5dZTGIwJRSWRMtQ== X-Google-Smtp-Source: AGHT+IGyA0qQWo+PwVYNO70vAG9eQhBXIq9i3+Jzuke4pIfGDXo1cSW2Iqt3Cqn36f79IYA/BEXDgw== X-Received: by 2002:a17:902:f78c:b0:25c:76f1:b024 with SMTP id d9443c01a7336-290272679dbmr313113515ad.25.1760472455626; Tue, 14 Oct 2025 13:07:35 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 23/37] target/arm: Split out flush_if_asid_change Date: Tue, 14 Oct 2025 13:07:04 -0700 Message-ID: <20251014200718.422022-24-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::42d; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-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=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: 1760472700885158501 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/helper.c | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index 550ba77c5c..c6d290ce7c 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -2929,6 +2929,17 @@ static void vmsa_tcr_el12_write(CPUARMState *env, co= nst ARMCPRegInfo *ri, raw_write(env, ri, value); } =20 +static void flush_if_asid_change(CPUARMState *env, const ARMCPRegInfo *ri, + uint64_t new, unsigned mask) +{ + uint64_t old =3D raw_read(env, ri); + + /* The ASID or VMID is in bits [63:48]. */ + if ((old ^ new) >> 48) { + tlb_flush_by_mmuidx(env_cpu(env), mask); + } +} + static void vmsa_ttbr_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) { @@ -2950,14 +2961,13 @@ static void vmsa_tcr_ttbr_el2_write(CPUARMState *en= v, const ARMCPRegInfo *ri, * TCR_EL2.A1 to know if this is really the TTBRx_EL2 that * holds the active ASID, only checking the field that might. */ - if (extract64(raw_read(env, ri) ^ value, 48, 16) && - (arm_hcr_el2_eff(env) & HCR_E2H)) { - uint16_t mask =3D ARMMMUIdxBit_E20_2 | - ARMMMUIdxBit_E20_2_PAN | - ARMMMUIdxBit_E20_2_GCS | - ARMMMUIdxBit_E20_0 | - ARMMMUIdxBit_E20_0_GCS; - tlb_flush_by_mmuidx(env_cpu(env), mask); + if (arm_hcr_el2_eff(env) & HCR_E2H) { + flush_if_asid_change(env, ri, value, + ARMMMUIdxBit_E20_2 | + ARMMMUIdxBit_E20_2_PAN | + ARMMMUIdxBit_E20_2_GCS | + ARMMMUIdxBit_E20_0 | + ARMMMUIdxBit_E20_0_GCS); } raw_write(env, ri, value); } @@ -2965,16 +2975,11 @@ static void vmsa_tcr_ttbr_el2_write(CPUARMState *en= v, const ARMCPRegInfo *ri, static void vttbr_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) { - ARMCPU *cpu =3D env_archcpu(env); - CPUState *cs =3D CPU(cpu); - /* * A change in VMID to the stage2 page table (Stage2) invalidates * the stage2 and combined stage 1&2 tlbs (EL10_1 and EL10_0). */ - if (extract64(raw_read(env, ri) ^ value, 48, 16) !=3D 0) { - tlb_flush_by_mmuidx(cs, alle1_tlbmask(env)); - } + flush_if_asid_change(env, ri, value, alle1_tlbmask(env)); raw_write(env, ri, value); } =20 --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473072; cv=none; d=zohomail.com; s=zohoarc; b=gehGa5QMS+/WRm3NYBi9SenIsE8W7kfHsvUL79KKNQy5c6ILgyJJKX9MuSLPajE6QfH8ER65dobePbFqohzmcnpIOf3umbjAphpYxX3If6ZG7QEX2JvfS8Ebyd6y8hrlHxcXkVMp7Z6DZIyQQ1dJOaF4Tt+v7k4jzpSfLOEk7qk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473072; 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=eSnDOhind8ZKnhqaEP5AqE4yrhsCwnVK+1ojrTTr64k=; b=eH0wc9sCjqU+yr5csQJrK17GM8V3ZRu8bJQWcrI7iuTr/IjZ+HJmMbHOGSWBC+i/EVtTuz9zQ0SMSKWVOzSP+TelBd3LZO72k86YxrUdZcXwuzQuS8C9eOhN6zS/d7EqTuY7oEDUhxNq9O5ETji2RH7jnzKeIF+SeDrftUr90ZU= 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 1760473072414738.6832077039035; Tue, 14 Oct 2025 13:17:52 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJs-0002YZ-1U; Tue, 14 Oct 2025 16:08:28 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v8lJp-0002UZ-PV for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:25 -0400 Received: from mail-pg1-x529.google.com ([2607:f8b0:4864:20::529]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJ6-0005Nj-4j for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:25 -0400 Received: by mail-pg1-x529.google.com with SMTP id 41be03b00d2f7-b551350adfaso4742998a12.3 for ; Tue, 14 Oct 2025 13:07:37 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472456; x=1761077256; 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=eSnDOhind8ZKnhqaEP5AqE4yrhsCwnVK+1ojrTTr64k=; b=Fu7remyGmW6yfJGRhZrI7emjMnYqkZVsQsh22fC+OhkLGUT7gnT/h/aUDXzZA3eh51 Q85rxYhnmjsEt2d7e2iLPfjpW7wabvc8jjnA3/7Eh2NrY4nGg/H5wk8+IL65Z9h9v56C VFFA1yOsy04+OW0ODt1uTBcN4exItlYFWAKmhpzTjHHeHGbSdbtgM7v7XlJ0tfNFnap1 4ytO4fJA2YdL6dIsws7dQeZcuudRZ2OVd9caS69MuZL3ehDzBaK29I1Vq8UMhaV4gihy 3GPCODxXiUkPeyinIhxtir62estOWXThqgSAFIpnccYpgLvqOiFpUD5Q9ssOwerhvcuB Lb2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472456; x=1761077256; 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=eSnDOhind8ZKnhqaEP5AqE4yrhsCwnVK+1ojrTTr64k=; b=X892BP1BwQBV6xTptA1XUedg2znNKdHAPNQ8VBNTo4CfJM74FgtJD5AuiUuOJf5X7K 9QEoUqo9xH2qETj0ckFWhB/I64keKaNyyLZDH7mAcL8UzwOrWBBRyac8afE0+8fi+1vs sPWEq0AW8/5Ur5KyN1RJO7m+oABNjvY1WBCos8r5qg+bUynqB5onTwvNAcW/bEOVSvhw IEfFbO54WJEjLTc26lgJvwsRwd5XB63fs5PTt/0yGiCt1hlIZxPrxb6xCBUco4gp75gO Ai1we2wUX94djWWV4Iiu77Z3iJX7oS0ufTZx/KuelyJlXiFMVfmltYXiw4/17wCI3Q28 ApeQ== X-Gm-Message-State: AOJu0YyV5tULCyQf+kdt7sIRXfkCriO9aFs/A88C3FTrk8jXGkL3MOTz qsJUF3jb5BYg94t6HZS8DXpiJG+iFEtVDy/46INkiM/BNwdM7qsWyPQ57ag2j+ZhHoM9+kP/eep ATzAEpBY= X-Gm-Gg: ASbGnctNxXfnjtTRpKWvnu66to9oq9CvGPd/t+5a6EeLRPnh7eSEEL1fEuIN3FyiW07 bUqUHzUkrZgwpLQ0k6js9MVw7ZgEPr4K4OVFUT+Jsnl4cOsScPlfuetXnqgJE2Quhsoa+8i3lPj /eyu233LvxKxvYP9tCKxs6FAIsAUst+UiEd2SFeuTXuIlOgGkDdP+v9LHYCAQoImo5kexhVDVp8 B16Uc8MTCkATn4YE7LTTOLkasPA1q7N5bF+ZLH8tkUXnn8G7u+Q3qFc+UllWVH0viD1XO3e72bv MmmUKIC4PF3WOZUANIOWzjSOlWl9FPa+Ch5dMba5gWSboPfMBEWnNaJ/u6Wx2LGOtz75ixNhBmT Oz0xkNafAmVjdEm6D7xO9B0GTo0JNxiDXIxhnzCdxCtq0ve5JUwKyyw1TKf2i6g== X-Google-Smtp-Source: AGHT+IGbld38GjPclS18zrmaf+l/YXNWYpnfLVXJrqTlgQZMMctkxuCHUpwNFQKFWniGQZEQnY6osg== X-Received: by 2002:a17:903:1547:b0:26d:f589:9cd7 with SMTP id d9443c01a7336-29027373c2bmr356992095ad.15.1760472456344; Tue, 14 Oct 2025 13:07:36 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 24/37] target/arm: Use flush_if_asid_change in vmsa_ttbr_write Date: Tue, 14 Oct 2025 13:07:05 -0700 Message-ID: <20251014200718.422022-25-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::529; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x529.google.com X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, DKIM_INVALID=0.1, DKIM_SIGNED=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, T_SPF_TEMPERROR=0.01 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: 1760473073201158500 Content-Type: text/plain; charset="utf-8" Only flush the subset of tlbs that are affected by the ttbr register to which we are writing. Signed-off-by: Richard Henderson --- target/arm/helper.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/target/arm/helper.c b/target/arm/helper.c index c6d290ce7c..2b55e219c2 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -2943,11 +2943,20 @@ static void flush_if_asid_change(CPUARMState *env, = const ARMCPRegInfo *ri, static void vmsa_ttbr_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) { - /* If the ASID changes (with a 64-bit write), we must flush the TLB. = */ - if (cpreg_field_type(ri) =3D=3D MO_64 && - extract64(raw_read(env, ri) ^ value, 48, 16) !=3D 0) { - ARMCPU *cpu =3D env_archcpu(env); - tlb_flush(CPU(cpu)); + /* + * If the ASID changes (with a 64-bit write), we must flush the TLB. + * The non-secure ttbr registers affect the EL1 regime; + * the secure ttbr registers affect the AA32 EL3 regime. + */ + if (cpreg_field_type(ri) =3D=3D MO_64) { + flush_if_asid_change(env, ri, value, + ri->secure & ARM_CP_SECSTATE_S + ? (ARMMMUIdxBit_E30_0 | + ARMMMUIdxBit_E30_3_PAN | + ARMMMUIdxBit_E3) + : (ARMMMUIdxBit_E10_1 | + ARMMMUIdxBit_E10_1_PAN | + ARMMMUIdxBit_E10_0)); } raw_write(env, ri, value); } --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472901; cv=none; d=zohomail.com; s=zohoarc; b=Qib0ONFbHo7CLwybVTVs7ykDP0SEXNfI+lPWO28fC1wtDkjTy5kIoiHv0+687BBh6G2kdr0kYp76yVPDQnfIl6mxtjvxS+EYeQ9tANRYUTIqYTSHXzPnOlxkX2NKhfuf/SSNlvu+fZGZQyRVyW9UAemsY5rsg/crC7kLnoHdLIA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472901; 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=lMECpVU5E9kzsZb98t3Yw5ZuCGjt7ssQd/wUmdpWVR4=; b=B52bteBmJo5Lxo6Mc07XgiaVtC92BDSHcUAQvgv+VRF/M0Chxi7pHk0DAl+klG6h1KFm5P6svzCiYPxC+L6qpcYDtYgvm6fWi1jDoDqIaRJrS/nIQJQ7VJHXSeCgHOf+x4i0WFKyu/tHLa3Q9DcFTYu9LXy/7MYgpy0JOtBK7SA= 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 1760472901129118.50831046712449; Tue, 14 Oct 2025 13:15:01 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lJz-0002er-80; Tue, 14 Oct 2025 16:08:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v8lJp-0002UK-AT for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:25 -0400 Received: from mail-pl1-x635.google.com ([2607:f8b0:4864:20::635]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJ7-0005Nt-5E for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:25 -0400 Received: by mail-pl1-x635.google.com with SMTP id d9443c01a7336-279e2554c8fso59003925ad.2 for ; Tue, 14 Oct 2025 13:07:39 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472457; x=1761077257; 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=lMECpVU5E9kzsZb98t3Yw5ZuCGjt7ssQd/wUmdpWVR4=; b=b5AGGD3NnK5RKtoYoinLlaCiNX9MjhSLDwg2z1wdL4esIvTvcrCAzH8T8Wb4avCoZq 8G76/cC88oCkcwg3KBo6oxmpKBZTidrz6EqTdXAKEfAQIkzCdgrjNxZ2D+nltaqSEIP2 zwGkychOhN8Qo/RSCQ8tYvK14JS2w/ComCsHWE2Q5ZnKxCWhE2seqwFHa78ck+7AE4eu MqAeCY0Z+0NS3E2J82gokLG++EvtH5wv1bcyDDa4zRrDF8pqiFFRVVjJDC6hOxgfbIRk 9S2JxRNFgrM9couC6wkVvmtFqHRqHoKvY3nAoj5aIAYZDIaBS/hR7ZrGNOOFGGWxv8ES vaqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472457; x=1761077257; 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=lMECpVU5E9kzsZb98t3Yw5ZuCGjt7ssQd/wUmdpWVR4=; b=rlfRmb2dj0f0IrawX4GA5V9CNTLKi7tAuTEQQFKVLnQJ6imfej+lPCCLW0Qn3ghYNp 668RCFEP19h5MKo4smGwrM6WxZYWks3mowv1cDRpjiQVZ64iZxZhCtiOoMSlppAv86HE EBljyJUNlaNecVeo4wiWVHFXRmsTQwLqTGxP5hQbZW/jBay6hGOTMVPdc83zl5qoXoxu tCacpE5sMLKFRnSlt7079pVs7EpKP0r+XE6NJGKtC5/t28gOJrCAL0/Fdr7jTIexaq16 jd36pYggM5+G6eOKI1malC+kgBz/xoX3qRdcmS1vK03fZxRS06iIdhXpk2EVALfOV0o0 +Euw== X-Gm-Message-State: AOJu0YzyKalI4jSTVuSyDdNedPmcanZFUFy2MZGMVztSQo6EZ1r5iLr7 mmOaho82eL43OZCgO7TQ/65zm1sTIQ0AjYbhJSXXNhtFwONi2dagO2LI3XRG4MXMjFMS75ZGx8e G/hqbt8Y= X-Gm-Gg: ASbGnctejXcaHox/HFUENG2h3D0NyUyJX2sAVNunaq8bJRMISVLs5CZc35T67m+jarG KHsoowJOVUxJcp57ncjLXVIBOawj7BM82myQ1SmfAoqDVOm13Is3Ur2JiKO5zbVYywYXd8BnDsv zg+xkP4iZ2EHoJri+WYmKnwUCw22hCB9SqF2hVAF3xoriXkmMFN0ikRHMrxjiLHB5/eJz7Fv51U wPiLmgm7qJGE7D3OBAcoMwVvSbAjjt6Hg+T3Q1aO38pYPPIOaXR+bK79P16E7Fz66vJ3QF1+Rw5 GD5kw1j6p8mTQ/Iw7RPN9AHQurXfKmxHczn+cRO/d5uZUzZHRYbceDixe8yimbMwb+Dp6gL+HXG 8cXN63Kn2mGb/546EAfGPONEn/Xl4c9akzwQAfJUxe7QijB9pvLURW4U2JRCSsQ== X-Google-Smtp-Source: AGHT+IEhcBe99nc3sobaQStPgf0BZXkuHu9ROVxwE9WLhcbEnCJgYNSl0yl/wXugfRXS4Fc6QPro0A== X-Received: by 2002:a17:902:c410:b0:288:e46d:b325 with SMTP id d9443c01a7336-290272e1b7bmr391495045ad.43.1760472457131; Tue, 14 Oct 2025 13:07:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 25/37] target/arm: Extend TTBR system registers to 128-bit Date: Tue, 14 Oct 2025 13:07:06 -0700 Message-ID: <20251014200718.422022-26-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::635; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x635.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, T_SPF_TEMPERROR=0.01 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: 1760472903447158500 Content-Type: text/plain; charset="utf-8" So far, just extend the data type and check access; do not yet consume the 128-bit table format. Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/cpu.h | 9 +++-- target/arm/helper.c | 83 ++++++++++++++++++++++++++++++++++++--------- 2 files changed, 74 insertions(+), 18 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index e03d832717..65037f1dd3 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -344,7 +344,8 @@ typedef struct CPUArchState { uint64_t cptr_el[4]; /* ARMv8 feature trap registers */ uint64_t sder; /* Secure debug enable register. */ uint32_t nsacr; /* Non-secure access control register. */ - union { /* MMU translation table base 0. */ + /* MMU translation table bases. */ + union { struct { uint64_t _unused_ttbr0_0; uint64_t ttbr0_ns; @@ -353,7 +354,7 @@ typedef struct CPUArchState { }; uint64_t ttbr0_el[4]; }; - union { /* MMU translation table base 1. */ + union { struct { uint64_t _unused_ttbr1_0; uint64_t ttbr1_ns; @@ -364,6 +365,10 @@ typedef struct CPUArchState { }; uint64_t vttbr_el2; /* Virtualization Translation Table Base. */ uint64_t vsttbr_el2; /* Secure Virtualization Translation Table. */ + /* High 64 bits of 128-bit Translation Table Bases. */ + uint64_t ttbr0_el_hi[4]; + uint64_t ttbr1_el_hi[4]; + uint64_t vttbr_el2_hi; /* MMU translation table base control. */ uint64_t tcr_el[4]; uint64_t tcr2_el[3]; diff --git a/target/arm/helper.c b/target/arm/helper.c index 2b55e219c2..90a940aeb9 100644 --- a/target/arm/helper.c +++ b/target/arm/helper.c @@ -108,10 +108,6 @@ void raw_write128(CPUARMState *env, const ARMCPRegInfo= *ri, CPREG_FIELD128_H64(env, ri) =3D valuehi; } =20 -#undef CPREG_FIELD32 -#undef CPREG_FIELD64 -#undef CPREG_FIELD128_H64 - static void *raw_ptr(CPUARMState *env, const ARMCPRegInfo *ri) { return (char *)env + ri->fieldoffset; @@ -522,6 +518,16 @@ static CPAccessResult access_d128(CPUARMState *env, co= nst ARMCPRegInfo *ri, return CP_ACCESS_OK; } =20 +static CPAccessResult access_tvm_trvm_d128(CPUARMState *env, + const ARMCPRegInfo *ri, bool is= read) +{ + CPAccessResult ret =3D access_tvm_trvm(env, ri, isread); + if (ret =3D=3D CP_ACCESS_OK) { + ret =3D access_d128(env, ri, isread); + } + return ret; +} + static void dacr_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t = value) { ARMCPU *cpu =3D env_archcpu(env); @@ -2932,7 +2938,7 @@ static void vmsa_tcr_el12_write(CPUARMState *env, con= st ARMCPRegInfo *ri, static void flush_if_asid_change(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t new, unsigned mask) { - uint64_t old =3D raw_read(env, ri); + uint64_t old =3D CPREG_FIELD64(env, ri); =20 /* The ASID or VMID is in bits [63:48]. */ if ((old ^ new) >> 48) { @@ -2961,6 +2967,16 @@ static void vmsa_ttbr_write(CPUARMState *env, const = ARMCPRegInfo *ri, raw_write(env, ri, value); } =20 +static void vmsa_ttbr_write128(CPUARMState *env, const ARMCPRegInfo *ri, + uint64_t vallo, uint64_t valhi) +{ + flush_if_asid_change(env, ri, vallo, + ARMMMUIdxBit_E10_1 | + ARMMMUIdxBit_E10_1_PAN | + ARMMMUIdxBit_E10_0); + raw_write128(env, ri, vallo, valhi); +} + static void vmsa_tcr_ttbr_el2_write(CPUARMState *env, const ARMCPRegInfo *= ri, uint64_t value) { @@ -2981,6 +2997,18 @@ static void vmsa_tcr_ttbr_el2_write(CPUARMState *env= , const ARMCPRegInfo *ri, raw_write(env, ri, value); } =20 +static void vmsa_tcr_ttbr_el2_write128(CPUARMState *env, const ARMCPRegInf= o *ri, + uint64_t vallo, uint64_t valhi) +{ + if (arm_hcr_el2_eff(env) & HCR_E2H) { + flush_if_asid_change(env, ri, vallo, + ARMMMUIdxBit_E20_2 | + ARMMMUIdxBit_E20_2_PAN | + ARMMMUIdxBit_E20_0); + } + raw_write128(env, ri, vallo, valhi); +} + static void vttbr_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) { @@ -2992,6 +3020,13 @@ static void vttbr_write(CPUARMState *env, const ARMC= PRegInfo *ri, raw_write(env, ri, value); } =20 +static void vttbr_write128(CPUARMState *env, const ARMCPRegInfo *ri, + uint64_t vallo, uint64_t valhi) +{ + flush_if_asid_change(env, ri, vallo, alle1_tlbmask(env)); + raw_write128(env, ri, vallo, valhi); +} + static const ARMCPRegInfo vmsa_pmsa_cp_reginfo[] =3D { { .name =3D "DFSR", .cp =3D 15, .crn =3D 5, .crm =3D 0, .opc1 =3D 0, .= opc2 =3D 0, .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, .type =3D ARM_CP_= ALIAS, @@ -3339,26 +3374,35 @@ static void define_ttbr_registers(ARMCPU *cpu) { .name =3D "TTBR0_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 2, .crm =3D 0, .opc2 =3D 0, .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, - .fgt =3D FGT_TTBR0_EL1, + .access128fn =3D access_tvm_trvm_d128, + .fgt =3D FGT_TTBR0_EL1, .type =3D ARM_CP_128BIT, .nv2_redirect_offset =3D 0x200 | NV2_REDIR_NV1, .vhe_redir_to_el2 =3D ENCODE_AA64_CP_REG(3, 4, 2, 0, 0), .vhe_redir_to_el01 =3D ENCODE_AA64_CP_REG(3, 5, 2, 0, 0), .writefn =3D vmsa_ttbr_write, .raw_writefn =3D raw_write, - .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[1]) }, + .write128fn =3D vmsa_ttbr_write128, .raw_write128fn =3D raw_writ= e128, + .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[1]), + .fieldoffsethi =3D offsetof(CPUARMState, cp15.ttbr0_el_hi[1]) }, { .name =3D "TTBR1_EL1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 0, .crn =3D 2, .crm =3D 0, .opc2 =3D 1, .access =3D PL1_RW, .accessfn =3D access_tvm_trvm, - .fgt =3D FGT_TTBR1_EL1, + .access128fn =3D access_tvm_trvm_d128, + .fgt =3D FGT_TTBR1_EL1, .type =3D ARM_CP_128BIT, .nv2_redirect_offset =3D 0x210 | NV2_REDIR_NV1, .vhe_redir_to_el2 =3D ENCODE_AA64_CP_REG(3, 4, 2, 0, 1), .vhe_redir_to_el01 =3D ENCODE_AA64_CP_REG(3, 5, 2, 0, 1), .writefn =3D vmsa_ttbr_write, .raw_writefn =3D raw_write, - .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr1_el[1]) }, + .write128fn =3D vmsa_ttbr_write128, .raw_write128fn =3D raw_writ= e128, + .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr1_el[1]), + .fieldoffsethi =3D offsetof(CPUARMState, cp15.ttbr1_el_hi[1]) }, { .name =3D "TTBR0_EL2", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 4, .crn =3D 2, .crm =3D 0, .opc2 =3D 0, - .access =3D PL2_RW, .resetvalue =3D 0, + .access =3D PL2_RW, .access128fn =3D access_d128, .type =3D ARM_= CP_128BIT, .writefn =3D vmsa_tcr_ttbr_el2_write, .raw_writefn =3D raw_write, - .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[2]) }, + .write128fn =3D vmsa_tcr_ttbr_el2_write128, + .raw_write128fn =3D raw_write128, + .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr0_el[2]), + .fieldoffsethi =3D offsetof(CPUARMState, cp15.ttbr0_el_hi[2]) }, { .name =3D "TTBR0_EL3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 6, .crn =3D 2, .crm =3D 0, .opc2 =3D 0, .access =3D PL3_RW, .resetvalue =3D 0, @@ -4548,9 +4592,13 @@ static const ARMCPRegInfo el2_cp_reginfo[] =3D { .writefn =3D vttbr_write, .raw_writefn =3D raw_write }, { .name =3D "VTTBR_EL2", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 4, .crn =3D 2, .crm =3D 1, .opc2 =3D 0, - .access =3D PL2_RW, .writefn =3D vttbr_write, .raw_writefn =3D raw_w= rite, + .type =3D ARM_CP_128BIT, + .access =3D PL2_RW, .access128fn =3D access_d128, + .writefn =3D vttbr_write, .raw_writefn =3D raw_write, + .write128fn =3D vttbr_write128, .raw_write128fn =3D raw_write128, .nv2_redirect_offset =3D 0x20, - .fieldoffset =3D offsetof(CPUARMState, cp15.vttbr_el2) }, + .fieldoffset =3D offsetof(CPUARMState, cp15.vttbr_el2), + .fieldoffsethi =3D offsetof(CPUARMState, cp15.vttbr_el2_hi) }, { .name =3D "SCTLR_EL2", .state =3D ARM_CP_STATE_BOTH, .opc0 =3D 3, .opc1 =3D 4, .crn =3D 1, .crm =3D 0, .opc2 =3D 0, .access =3D PL2_RW, .raw_writefn =3D raw_write, .writefn =3D sctlr_w= rite, @@ -6196,9 +6244,12 @@ static const ARMCPRegInfo contextidr_el2 =3D { static const ARMCPRegInfo vhe_reginfo[] =3D { { .name =3D "TTBR1_EL2", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 4, .crn =3D 2, .crm =3D 0, .opc2 =3D 1, - .access =3D PL2_RW, .writefn =3D vmsa_tcr_ttbr_el2_write, - .raw_writefn =3D raw_write, - .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr1_el[2]) }, + .type =3D ARM_CP_128BIT, + .access =3D PL2_RW, .access128fn =3D access_d128, + .writefn =3D vmsa_tcr_ttbr_el2_write, .raw_writefn =3D raw_write, + .write128fn =3D vmsa_tcr_ttbr_el2_write128, .raw_write128fn =3D raw_= write128, + .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr1_el[2]), + .fieldoffset =3D offsetof(CPUARMState, cp15.ttbr1_el_hi[2]) }, #ifndef CONFIG_USER_ONLY { .name =3D "CNTHV_CVAL_EL2", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 3, .opc1 =3D 4, .crn =3D 14, .crm =3D 3, .opc2 =3D 2, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472868; cv=none; d=zohomail.com; s=zohoarc; b=XR0kTZImpgcY0rOt2B+zsxe0JHV+PuUGhw7kb975+CIiO1LuikyxnIfpn8eqyr90FB/OErVThvf6YSkBlYw+lTRQWNmqYfrTl0xt7UxYIRDMtmof5cZHaTAOAC/OSpUwVonptB7MGhES0EA0UCe9u5LFuADTVU9TQZ/5Xsw76LM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472868; 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=pb6Ug62u8i32giQ9ctSs3FRRaaSEfAU/TVaCJ65QMa0=; b=blINN9iBbxjycnnJRDUueDYOn1rGFGFEXoFohz3K+bn1UGgj9uYnMIFStcFY253koxKS8Q9r72z/F9SchBiY58oqNJEPrbvIG061RAnLJ8NH+Ppv+nTGL5FdIsFJ/YSTHdE8R7hZbfcoNiKwehFkncP1XT3TpaSkbXaXedsemAs= 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 1760472868047666.0336680789355; Tue, 14 Oct 2025 13:14:28 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lK1-0002fh-LL; Tue, 14 Oct 2025 16:08:37 -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 1v8lJy-0002eP-Ch for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:34 -0400 Received: from mail-pf1-x430.google.com ([2607:f8b0:4864:20::430]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJ9-0005O6-NB for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:34 -0400 Received: by mail-pf1-x430.google.com with SMTP id d2e1a72fcca58-782bfd0a977so4838496b3a.3 for ; Tue, 14 Oct 2025 13:07:40 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472458; x=1761077258; 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=pb6Ug62u8i32giQ9ctSs3FRRaaSEfAU/TVaCJ65QMa0=; b=zZj+ehXzsBBHo+lVYxYHUgv6kZk/98wTAyQ28WhktH+MUXmwne6cUC3IFyjV84rnV7 lyUkASROX6rsHY3IAXj48mVZv/acJi7siuaqj2V3jcsEnRn22Zjsxx75to2EtKuKplfH CW5mZKGtNalW83Z/0FylZV42qnfXewRLTeB04oYAVD43s1R0Lo0nV3ZCTceANAzY5XZv BphBxASc5clIePTj8NnHp4ZzZE7CBGO+iie6W7gGH67lh40/pvTDD5VvbASEuQxzjxTA 3TyAC2ejckpgh7hGIP+bMKTrVBcG5whgbGmuUBQXyq077FiihzgY4Ejfs0jxmNZ5KS45 OcTA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472458; x=1761077258; 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=pb6Ug62u8i32giQ9ctSs3FRRaaSEfAU/TVaCJ65QMa0=; b=mrQ+jGghjKmK1YdeNqRSEtiGUkgE5sx3D8NFZ14ukHRcwrJedOkxNRX09QZeSny2RC 0egqY4ALN/tx4HV7ToxCeXkDRl2GX6eHZsZVbgKneiDSAgXOi9Z3PToyWVgW79/OUcIb gvr5FtuS/43twLOwDPHCIGS2ArGdcWQuE/ZXgBzIjcaMFmKONiiUhUkwZFAqNd3UkshZ yd0Zrn/9TV1yJD4nLsTVpiPgLLmGWr01YuZAE6SKHW7IsrQbVZeCa7VG85soebKKWiYV xWwdd8VnN3CY44RnIgJO0GDPqQ8XSyxgWtdVPvfwmjqiK2GqZT1izKIyVu1GzlQC2yzZ YCKw== X-Gm-Message-State: AOJu0YxtFyHTZHCkBdM+pigzxuyls+SjvQeHMRMNQKWdunGJcwzzID1A WeS0LMJZI17uQiGB4dRgVxwkI0S5XJaCdtpW5/Pakc36SN1N2smXyZ2gV++fXe+Q6aZzMHYV2yB zkRCpzgo= X-Gm-Gg: ASbGncsAU0ocSHtybVUxcaNd1hF0VbVIv8yfuos4PII3/u0KBsvQXpn/+NYt6WJldro iwAH4jWArgb7wrvD3ymMhWTpIjWJ1f8OMWxN4IGO8aTeUonMHMe/D9zoWP6nPuTe0AmsamdPhgf nSjRjeemsN4gzBddjPNOCedN8F8I8n4JnkF9xClVVfJq1e18KTZQCiWL7mG/VSvRUyJJPcMz4i7 iSNLrjo2F11DsYj2HpytzSwgHoKnqv3kD8zjnJpUcNHqAAvA2+kshEpdA7RKVxdo2tvcV0/1JuX f9WrvwPOyKJs6cZLDa2YBqcXPIyAZ43MVpVGCTUBvau8yjDBFcFyNfwG3hhfjknGQAU7ttFF3XN kIdwLokWURrsbHNjOMV8gagBfupKv2+tE7xKE8grSvNgYBE6WNxbd7LNbuiyGeLYSDhoh2zQj X-Google-Smtp-Source: AGHT+IGmnUV3bcelfsBoY5Sh9s8q4WFA0Jh+CKb7Y44kUj1Q4Hqkh3MjQQJwosPZLt1duq7g04QlQg== X-Received: by 2002:a17:902:cec2:b0:256:2b13:5f11 with SMTP id d9443c01a7336-290272e19bbmr403030485ad.40.1760472457861; Tue, 14 Oct 2025 13:07:37 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 26/37] target/arm: Implement TLBIP IPAS2E1, IPAS2LE1 Date: Tue, 14 Oct 2025 13:07:07 -0700 Message-ID: <20251014200718.422022-27-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::430; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x430.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: 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: 1760472872810158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index 1a0a332583..bf8f007869 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -512,6 +512,20 @@ static void tlbi_aa64_ipas2e1_write(CPUARMState *env, = const ARMCPRegInfo *ri, } } =20 +static void tlbi_aa64_ipas2e1_write128(CPUARMState *env, const ARMCPRegInf= o *ri, + uint64_t vallo, uint64_t valhi) +{ + CPUState *cs =3D env_cpu(env); + int mask =3D ipas2e1_tlbmask(env, vallo); + uint64_t pageaddr =3D sextract64(valhi << 12, 0, 56); + + if (tlb_force_broadcast(env)) { + tlb_flush_page_by_mmuidx_all_cpus_synced(cs, pageaddr, mask); + } else { + tlb_flush_page_by_mmuidx(cs, pageaddr, mask); + } +} + static void tlbi_aa64_ipas2e1is_write(CPUARMState *env, const ARMCPRegInfo= *ri, uint64_t value) { @@ -721,12 +735,16 @@ static const ARMCPRegInfo tlbi_v8_cp_reginfo[] =3D { .writefn =3D tlbi_aa64_alle1is_write }, { .name =3D "TLBI_IPAS2E1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 4, .opc2 =3D 1, - .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_ipas2e1_write }, + .access =3D PL2_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_ipas2e1_write, + .write128fn =3D tlbi_aa64_ipas2e1_write128 }, { .name =3D "TLBI_IPAS2LE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 4, .opc2 =3D 5, - .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_ipas2e1_write }, + .access =3D PL2_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_ipas2e1_write, + .write128fn =3D tlbi_aa64_ipas2e1_write128 }, { .name =3D "TLBI_ALLE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 7, .opc2 =3D 4, .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473302; cv=none; d=zohomail.com; s=zohoarc; b=YYh2kZ5RhcglBbFAV5I5qR23Om8K9VHCNPBsibcYKkWyrN2r0/ktsD3DxZsoqodW6E+brijqw79SRafNMgJkUNwVVsMHr9vEOqPQ4g6r52bbYs35cpVAwMSzXaCjWcQ+Ape/zl5Xd5jVN1WyA9cGg48WV41DgJBztk4BkLGncTg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473302; 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=Yz/BsnnxH/AGtjqnFOXBYx31cM+7NtxzeRTWBiS0WY4=; b=nA8O9FU1u1V44rq+Dk8vpuSgAAt0G1KpzPUZIKhIYAaTlfLddC0JZ1lBU+AVfUyNbhki7EzfjFan2wO1n3Pn05ftyyELaBCEkso2FJ57cicbytyOkHRUi0P6c/s4XP3uCJjNmgPMiFQJAg7aY8mNHer73Lu6tfKOkwuNRf+rIY8= 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 1760473302269659.7728176477573; Tue, 14 Oct 2025 13:21:42 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lK2-0002go-Oj; Tue, 14 Oct 2025 16:08:38 -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 1v8lK1-0002fs-4U for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:37 -0400 Received: from mail-pg1-x530.google.com ([2607:f8b0:4864:20::530]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJ9-0005Ob-VT for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:36 -0400 Received: by mail-pg1-x530.google.com with SMTP id 41be03b00d2f7-b6093f8f71dso3595661a12.3 for ; Tue, 14 Oct 2025 13:07:39 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472459; x=1761077259; 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=Yz/BsnnxH/AGtjqnFOXBYx31cM+7NtxzeRTWBiS0WY4=; b=SVwJSC5fPsDSivo0qDED/Cezk9LRXjxdYy+PG8kH+lMGUk72k5z/k5/2nXwwfjd0Am ORmUeadGUsOhujGMRPg2eoR4hM+mbHtNBX6RF89QQybZwUv8dlO9zNJBeg5Hg+Ni4U8V +HWia/108ZJgmqKOL1/UvzMC5sXqxCEGRqGCuJHAsVmMVOEu3DL8gZMAfL3MiYvDoFHY KaEAgzfbdHPBkVn9S2+TFUKIgB4oADw/TSJlal90VThTCn/Iuj8f3Q5xjA5aZzJpg2b9 +ImeATLXWuuh9cI5j8zW0IcCYLadJqlYCGrjKL/rdvL3bzLdQYeh3hTJWn1CznM7RDvn +KPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472459; x=1761077259; 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=Yz/BsnnxH/AGtjqnFOXBYx31cM+7NtxzeRTWBiS0WY4=; b=CMdes4qSAP9agAkT27hq48jMZtxEC2p3iQYO2fZPQWkg3Z/WMWmT6Qbms7/H+TanOa HBhuOmuQY6G91W1fVb6415gxOSuWdq2hUFVmqWXaQ6uSuERiHqhAe8hS0J4Nz6WkA8cA JkrmI3rNSFz5s4mtuLFVI3ry8lAIv3Rej1Dd3LPsJOMM/9AOFxB1M13WFxi0lb0r1S1B /Mq7GifIdlLOshxEvX+fRQkCDwh84nU41xUl2CqH7iqvrwutECPp2038xXbDQCWdafw6 0OiQbHO9xDo+utTWM3hchYiFwtWXh/UCwXUGoVcjv6o8/uAQycg1WE9V7WrCbI/WqKIq epCw== X-Gm-Message-State: AOJu0Yx5zShhEH3UjBeVdBlgr3t3uuIvaY8TFopjGQeXaFx+lwEn4V0/ LkdsUCxD3irj1ConusKD3I+qWFeVCLik7maoNVRXACilHONNmJTuBbjoTRT0yd1qs661TlSqgYD 3wxNkU+s= X-Gm-Gg: ASbGncsg/y3ZveYhoaEjyWSd0TzseWnuoVSHQEOX1mNzd7AVPsJBzlfBlfgNFqyWeKS +1GiEopqTKAEl0gJiJBf4xDZWJj/XCyihmBy4ufE60hyHPPy9LNdbmQjyYP2xieNNShry/bNRqY Q2gFEHm63c2BjXhLfceY5wUSoEmNaGGRBbS0Cfs1JZvcZ2YbJTON9SsUgqtltEExLf1XbC8vHuO 7HfTB4OXZyS2ko41qtW7mS/aQX7Fq7o/5kAQs0g+Psn1XQiOHc4awMhcsHRtsbJr68HHf/ZQXzl 09FTrBCqQTMEV0fNxhE5tlYOX4OXeRVSB1zd58o2H78C7uoHp1CuJ+8uvpIx/M0M4BCq9VKYQXz nCw7zcn+QjByR6z9vJZsGZHxy8aJ1XSjhk0ecImpitL3QRbKAcqc= X-Google-Smtp-Source: AGHT+IGUnQe8IVLSARPXZ9y1ekfmbJ0bvi51uOVKcweeC0HmBBkl6XvwlT1+icnoRWNCj1iBu7ElrA== X-Received: by 2002:a17:903:948:b0:249:37ad:ad03 with SMTP id d9443c01a7336-290273ee21fmr347600935ad.34.1760472458725; Tue, 14 Oct 2025 13:07:38 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 27/37] target/arm: Implement TLBIP IPAS2E1IS, IPAS2LE1IS Date: Tue, 14 Oct 2025 13:07:08 -0700 Message-ID: <20251014200718.422022-28-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::530; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x530.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, 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: 1760473307767158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index bf8f007869..f7510a1208 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -536,6 +536,17 @@ static void tlbi_aa64_ipas2e1is_write(CPUARMState *env= , const ARMCPRegInfo *ri, tlb_flush_page_by_mmuidx_all_cpus_synced(cs, pageaddr, mask); } =20 +static void tlbi_aa64_ipas2e1is_write128(CPUARMState *env, + const ARMCPRegInfo *ri, + uint64_t vallo, uint64_t valhi) +{ + CPUState *cs =3D env_cpu(env); + int mask =3D ipas2e1_tlbmask(env, vallo); + uint64_t pageaddr =3D sextract64(valhi << 12, 0, 56); + + tlb_flush_page_by_mmuidx_all_cpus_synced(cs, pageaddr, mask); +} + static const ARMCPRegInfo tlbi_not_v7_cp_reginfo[] =3D { /* * MMU TLB control. Note that the wildcarding means we cover not just @@ -719,12 +730,16 @@ static const ARMCPRegInfo tlbi_v8_cp_reginfo[] =3D { .writefn =3D tlbi_aa64_vae1_write }, { .name =3D "TLBI_IPAS2E1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 0, .opc2 =3D 1, - .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_ipas2e1is_write }, + .access =3D PL2_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_ipas2e1is_write, + .write128fn =3D tlbi_aa64_ipas2e1is_write128 }, { .name =3D "TLBI_IPAS2LE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 0, .opc2 =3D 5, - .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_ipas2e1is_write }, + .access =3D PL2_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_ipas2e1is_write, + .write128fn =3D tlbi_aa64_ipas2e1is_write128 }, { .name =3D "TLBI_ALLE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 3, .opc2 =3D 4, .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472717; cv=none; d=zohomail.com; s=zohoarc; b=c9mhi64mRwYC54B9IYEhXZn/wEHCvtlk2Z2Z9dJBrmDrBS9oFcseSDsUqH6xGW8jlud0d8NLyJ5mFxhIolww3afenoZc+/tioqoYHZOjCZ0fmTbM3IkOyYJJ0oz0K1CJPzI/0N7LKJvv6yeLsR0r5wjJv3VO/8dqfRf7kMIj9t8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472717; 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=rr1SG8CwBu1VucnWWptPEVYa6789mPM+H15vQvTLSsc=; b=a7wpnorC8so+uSnDfjgci/m/iNtFLDlvkgdu0FXp3Po9DkF9Gx7eroXLLpkX4g5v/PE+IocwVbhyTksPloZWAKu49ogfZ79ZjGKQplWpgTWO91DIYmRdq1e/iwVGn6CG9inCNzm2bQB2pe75YmcJoTTj18Oc3k/NKzNQI7/hpJE= 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 1760472717011173.19225208159298; Tue, 14 Oct 2025 13:11:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lK0-0002fq-Sc; Tue, 14 Oct 2025 16:08:36 -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 1v8lJv-0002bD-0o for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:31 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJ8-0005P7-LD for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:28 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-26983b5411aso39791245ad.1 for ; Tue, 14 Oct 2025 13:07:41 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472459; x=1761077259; 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=rr1SG8CwBu1VucnWWptPEVYa6789mPM+H15vQvTLSsc=; b=TNuILdKq1pYfyunE+iGfvriYFwSUagCXh7qczAFOn+boVgvsaVKBPgo1rzakiNvY3z +uQiJyWjTcIbWA30oWpDehP8j2h3gxTqUvTUXzaNqvudVtv2wXoE2l3KajE2QQjDgtnw BBTDSZKLbQ1LKLY7tHzGQdDzQ0Rf4lVkiLUwYwVrr5M2IgPEnYProo8oZae6pKONsI0c 7DW/4//JuE4dz7dK97WR4ieQa/OZemD6oEI3DhdrJun7dz7sFvQpWndkW1u03/fORFB7 Y6uf14I6uhuISPBaWouqJGNcqOV/+2IcYoCTPvSFc3yXDkHdR2H6PQ4u+/svl8+DtDcI Sw+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472459; x=1761077259; 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=rr1SG8CwBu1VucnWWptPEVYa6789mPM+H15vQvTLSsc=; b=drBURE7jIgBR2mdgWV7N1W6FsIIWfaVxGCIgOFyhoDjSLXDQK6vXqDtB738d0nYv2Y /5G2oj6gU4ApDp2grPvqQlnnutuzOjOYnbyMX5GWvr+szJphIcZhE/mCPKYjYmyuN23N +GyAZzSBuyxFeyDjz3jW1QzPxaQ26JGF1Is/yqlPbO96zBor6w5TuOhgx1ETnoZ+o2zn A4Tf/jmuflJm0k4fJ5m//S8QNvvO5crwqPqfkfMau1EYXsRZQ5xzoyaynbE6lhxnBU71 yr8r/68poAK2nn13EmDzrRbHDmi3oTChdfoj9NLkyqXYAnHMRsD+z1pnVmiAwUVoDIAP FmBA== X-Gm-Message-State: AOJu0YzkCDMos020DM66P92JetVRbO52YNyWlHydbJ3+PNqmfbnNoExI +znMnAcbIpj7ywbN3r8/ndnh8PfsAYv6IroS0/EtNJL2ZYU4rFv4V5qEeHNI7cjA5+kwf8nMsD/ x/TEBDjQ= X-Gm-Gg: ASbGnctX0AUUX7J+aFQ+IVeHE+OIRWCHTg5JpYAPaqKYVFNXbjQWRVeSCKeByBIrFov EhqLTxrKj4RuKPV96RzQUhm0yYSG6UO8YySfJHJ4XUNTovKVHEEOZgG6liRrLXiaJ2GY0bnxKjO zlHoxEQ3NblAjcaY0PkWezWFddPxo5mfFP84dvK8Src2J9nhisH2OoQ+6QZyiVHB0RHw3zJ2W6s TBlN08laWscZRBNqDa0Ui4Jv9bm9zYFMXTg+x3SQQtPZg6u5L54PZOrcPhFXn4lCo9iQC977/vD MYNBpPVX9VJSAChxd2KoF70PFEfBobG4Q7ReIQcmOxQwlYfNOV2/qfPjH8sPFg2aVibCUiSVJDO EzUUXeW9QDyqpI+iyQYZRgmniBH69tRNin7Yh8WZ5+hSGAlPcL0R2J8kUUzg5gw== X-Google-Smtp-Source: AGHT+IEORm2OempA0nprPva33Zskk7T3VigLl9Y+4Lc4uKfEMDCSHxmj27ZDKs3CzVXyERBoldcobQ== X-Received: by 2002:a17:903:2f0e:b0:248:a642:eec6 with SMTP id d9443c01a7336-29027402f2dmr280496955ad.50.1760472459497; Tue, 14 Oct 2025 13:07:39 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 28/37] target/arm: Implement TLBIP RVAE1, RVAAE1, RVALE1, RVAALE1 Date: Tue, 14 Oct 2025 13:07:09 -0700 Message-ID: <20251014200718.422022-29-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::631; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x631.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: 1760472717963154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 93 ++++++++++++++++++++++++++++++-------- 1 file changed, 74 insertions(+), 19 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index f7510a1208..daadba7bfc 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -918,16 +918,43 @@ static TLBIRange tlbi_aa64_get_range(CPUARMState *env= , ARMMMUIdx mmuidx, return ret; } =20 -static void do_rvae_write(CPUARMState *env, uint64_t value, - int idxmap, bool synced) +static TLBIRange tlbi_aa64_get_range128(CPUARMState *env, ARMMMUIdx mmuidx, + uint64_t vallo, uint64_t valhi) { - ARMMMUIdx one_idx =3D ARM_MMU_IDX_A | ctz32(idxmap); - TLBIRange range; - int bits; + uint64_t uaddr =3D extract64(valhi << 12, 0, 56); + ARMVAParameters param =3D aa64_va_parameters(env, uaddr, mmuidx, true,= false); + TLBIRange ret =3D { }; + unsigned page_size_granule =3D extract64(vallo, 46, 2); + ARMGranuleSize gran =3D tlbi_range_tg_to_gran_size(page_size_granule); =20 - range =3D tlbi_aa64_get_range(env, one_idx, value); - bits =3D tlbbits_for_regime(env, one_idx, range.base); + /* The granule encoded in value must match the granule in use. */ + if (gran !=3D param.gran) { + qemu_log_mask(LOG_GUEST_ERROR, "Invalid tlbi page size granule %d\= n", + page_size_granule); + } else { + unsigned page_shift =3D arm_granule_bits(gran); + unsigned num =3D extract64(vallo, 39, 5); + unsigned scale =3D extract64(vallo, 44, 2); + unsigned exponent =3D (5 * scale) + 1; + uint64_t max =3D 1ull << 56; =20 + ret.length =3D (num + 1) << (exponent + page_shift); + ret.length =3D MIN(ret.length, max - uaddr); + /* + * Note that TLBIPRange ignores the high bits, because the HW TLB + * does not use it. But the qemu softmmu tlb does, so sign-extend + * if and only if the regime has two ranges. + */ + ret.base =3D uaddr | (-(uint64_t)param.select << 56); + } + + return ret; +} + +static void do_flush_range(CPUARMState *env, ARMMMUIdx one_idx, int idxmap, + bool synced, TLBIRange range) +{ + int bits =3D tlbbits_for_regime(env, one_idx, range.base); if (synced) { tlb_flush_range_by_mmuidx_all_cpus_synced(env_cpu(env), range.base, @@ -940,6 +967,22 @@ static void do_rvae_write(CPUARMState *env, uint64_t v= alue, } } =20 +static void do_rvae_write(CPUARMState *env, uint64_t value, + int idxmap, bool synced) +{ + ARMMMUIdx one_idx =3D ARM_MMU_IDX_A | ctz32(idxmap); + do_flush_range(env, one_idx, idxmap, synced, + tlbi_aa64_get_range(env, one_idx, value)); +} + +static void do_rvae_write128(CPUARMState *env, uint64_t vallo, uint64_t va= lhi, + int idxmap, bool synced) +{ + ARMMMUIdx one_idx =3D ARM_MMU_IDX_A | ctz32(idxmap); + do_flush_range(env, one_idx, idxmap, synced, + tlbi_aa64_get_range128(env, one_idx, vallo, valhi)); +} + static void tlbi_aa64_rvae1_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) @@ -955,6 +998,14 @@ static void tlbi_aa64_rvae1_write(CPUARMState *env, tlb_force_broadcast(env)); } =20 +static void tlbi_aa64_rvae1_write128(CPUARMState *env, + const ARMCPRegInfo *ri, + uint64_t vallo, uint64_t valhi) +{ + do_rvae_write128(env, vallo, valhi, vae1_tlbmask(env), + tlb_force_broadcast(env)); +} + static void tlbi_aa64_rvae1is_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) @@ -1095,28 +1146,32 @@ static const ARMCPRegInfo tlbirange_reginfo[] =3D { .writefn =3D tlbi_aa64_rvae1is_write }, { .name =3D "TLBI_RVAE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 6, .opc2 =3D 1, - .access =3D PL1_W, .accessfn =3D access_ttlb, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlb, .access128fn =3D acces= s_ttlb, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIRVAE1, - .writefn =3D tlbi_aa64_rvae1_write }, + .writefn =3D tlbi_aa64_rvae1_write, + .write128fn =3D tlbi_aa64_rvae1_write128 }, { .name =3D "TLBI_RVAAE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 6, .opc2 =3D 3, - .access =3D PL1_W, .accessfn =3D access_ttlb, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlb, .access128fn =3D acces= s_ttlb, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIRVAAE1, - .writefn =3D tlbi_aa64_rvae1_write }, + .writefn =3D tlbi_aa64_rvae1_write, + .write128fn =3D tlbi_aa64_rvae1_write128 }, { .name =3D "TLBI_RVALE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 6, .opc2 =3D 5, - .access =3D PL1_W, .accessfn =3D access_ttlb, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlb, .access128fn =3D acces= s_ttlb, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIRVALE1, - .writefn =3D tlbi_aa64_rvae1_write }, + .writefn =3D tlbi_aa64_rvae1_write, + .write128fn =3D tlbi_aa64_rvae1_write128 }, { .name =3D "TLBI_RVAALE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 6, .opc2 =3D 7, - .access =3D PL1_W, .accessfn =3D access_ttlb, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlb, .access128fn =3D acces= s_ttlb, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIRVAALE1, - .writefn =3D tlbi_aa64_rvae1_write }, + .writefn =3D tlbi_aa64_rvae1_write, + .write128fn =3D tlbi_aa64_rvae1_write128 }, { .name =3D "TLBI_RIPAS2E1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 0, .opc2 =3D 2, .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472572; cv=none; d=zohomail.com; s=zohoarc; b=B3PN6NLnqaw1g6g4Do2cY35yY6h19uDwBe4XapDLjCKZe4JDijeeZnU/BlgOG4xkYpBJ8TcfOCi5E4o4v0gFvBmX/eWKJQ1o0xocO/+uj3t5k6n+LqFQAvjCo1LGzVvklHW/xIpFk1BXbVIhjYLxVSXOUfyzA6Ol8bBfesB5Rqg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472572; 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=tKYajIIy5+4u2VD9lJPyAYB3arxlnnF2syyQrLyXqWg=; b=nkQyCiP6N2BEPWCyEqzC3lTpc6twuF1JGU24lOXwUONBkrdQvx1OZIq7KMBEUJAHLQ52P3lZjWgRwGr00uN248pbl/vr6biNPusX1ZeLSnNkLvrW7XE5aQdy8kwum6UYjLiLvsMuhqsBqS80rFL2/h3YtQoggcIBu0JFyeXoKmY= 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 1760472572912911.7157549334667; Tue, 14 Oct 2025 13:09:32 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lK5-0002hq-3z; Tue, 14 Oct 2025 16:08:41 -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 1v8lK4-0002hR-24 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:40 -0400 Received: from mail-pl1-x631.google.com ([2607:f8b0:4864:20::631]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJ9-0005PP-Na for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:39 -0400 Received: by mail-pl1-x631.google.com with SMTP id d9443c01a7336-2698384978dso40792705ad.0 for ; Tue, 14 Oct 2025 13:07:41 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472460; x=1761077260; 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=tKYajIIy5+4u2VD9lJPyAYB3arxlnnF2syyQrLyXqWg=; b=hfFB7JMxgmCjKCJMic11fAzIdhUA+oeAuksIobwCoguJU8WP+4CEWHmPTbaxxAk+kk KQN0dqslNsMxGc0F6K3OpGVuVyjBUyMN/RcxhW1b+TgCjJudZV+dfhG0Whb3wL+jMi8v WQQSdqUKBFBzYUPnd7/E0qOhGYiKGBDoNLoMWJReZfJhuUx5CTjAxWbKkPg6NxqsZob/ eaXcUe2bhoMaZoDh5EPM9RNrHgxIk7GkY6gc9u1wdpqqKshRWbeH0ZVx+810Nkk1umPs 3SxeIk2T5jSOm6Rf9XC/HW6QkRmd+/X2PsV+23pgT0BLPfMyaRDhUnuDhStWUAWryz2u FuYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472460; x=1761077260; 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=tKYajIIy5+4u2VD9lJPyAYB3arxlnnF2syyQrLyXqWg=; b=KM5dG5YZGC52R0GKEjzAQYqagDqL5kgSqcj178IEgwEPt0gI9gGpqEU1JvH8Kquv2k t0KtCZisd2CaaZbr4PMnT2cSdoZywIJd6jyVJIOsSHrB8qcpg75yQHynKQzGct8hPZ3D oZsLOQePeZ4tDVdmcg5pZHbxsSqXVEtbb/4KFhFIfpqTXWJ+mpA9w6QzXfQL/smlLMQG Q4GCk32k9Zn1jQYqlY/KGn1xwKlaNvciPmsrxsYKpszdieAROeoFioOxDoPToifcNgj3 efSzngoXH56Tsvmu+EHxYOx1x4RF+P/Mt+8Px6PEcD4ob7YuWmJTL4OzKbUqAKdte36t AXPA== X-Gm-Message-State: AOJu0YzkgdEL5NgtlOd6yZ725ctKrLWIByaxeOEgRHanPaJ1pJ2vb+KB ro1rK/o+4SLGD72BVDiN+ybOMtKjt6TRQUAdZc9ZDa5D+PAMNtOhu8qGU9ud0RA3urqqx+pwYjE SRDtbOoI= X-Gm-Gg: ASbGncs2lmiMQLsG1SXg2vayKc2NCcjqtMEgHWNgpB0sscZn8SKoM66yJXAvDBAcs/q f49d0fZNJOKIqOVeMbA3P7PyPkSP1774tC1zzaNS68c4dJVRvKhuCcONi3FvkvDnRHsYNBN6ash rZh2QExrmqmsK1bvAg5PF2QiuwDFIf6LuBb6+SXDkp/eiIbSFRITh4Z3Qhsj+qV/ecz6UX/SCQN sjk6LxlvxWXqbB6weaFdIk01eDerpK+JHiq+Cm8bw68U/pU+GOKgf6t8f/qCeMYxvZEj/GJo4wk 0La8lAXriJuV16jMCdUFOQht66HRrmz3iHtXT/8MjRo9FANVQRfcASpqqVVn2wMp4pW3h04R28g YwPGNi5RmhHGkGEYfdQKjo9kmoyowJLNg1c8G8A2DWI9A9BnvbCw= X-Google-Smtp-Source: AGHT+IFu2IWWBXtJDEDrEHwRRxE99Nfbeq14otUXkAvOdvRzlumPWHCEPqtGksbYPOuuTFsfJDZX/g== X-Received: by 2002:a17:903:1b64:b0:240:9dd8:219b with SMTP id d9443c01a7336-290272e6eacmr344978785ad.49.1760472460227; Tue, 14 Oct 2025 13:07:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 29/37] target/arm: Implement TLBIP RIPAS1E1, RIPAS1LE1, RIPAS2E1IS, RIPAS2LE1IS Date: Tue, 14 Oct 2025 13:07:10 -0700 Message-ID: <20251014200718.422022-30-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::631; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x631.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: 1760472574317154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 39 ++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index daadba7bfc..6c07839e3f 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -1088,6 +1088,14 @@ static void tlbi_aa64_ripas2e1_write(CPUARMState *en= v, const ARMCPRegInfo *ri, tlb_force_broadcast(env)); } =20 +static void tlbi_aa64_ripas2e1_write128(CPUARMState *env, + const ARMCPRegInfo *ri, + uint64_t vallo, uint64_t valhi) +{ + do_rvae_write128(env, vallo, valhi, ipas2e1_tlbmask(env, vallo), + tlb_force_broadcast(env)); +} + static void tlbi_aa64_ripas2e1is_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) @@ -1095,6 +1103,13 @@ static void tlbi_aa64_ripas2e1is_write(CPUARMState *= env, do_rvae_write(env, value, ipas2e1_tlbmask(env, value), true); } =20 +static void tlbi_aa64_ripas2e1is_write128(CPUARMState *env, + const ARMCPRegInfo *ri, + uint64_t vallo, uint64_t valhi) +{ + do_rvae_write128(env, vallo, valhi, ipas2e1_tlbmask(env, vallo), true); +} + static const ARMCPRegInfo tlbirange_reginfo[] =3D { { .name =3D "TLBI_RVAE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 2, .opc2 =3D 1, @@ -1174,12 +1189,16 @@ static const ARMCPRegInfo tlbirange_reginfo[] =3D { .write128fn =3D tlbi_aa64_rvae1_write128 }, { .name =3D "TLBI_RIPAS2E1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 0, .opc2 =3D 2, - .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_ripas2e1is_write }, + .access =3D PL2_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_ripas2e1is_write, + .write128fn =3D tlbi_aa64_ripas2e1is_write128 }, { .name =3D "TLBI_RIPAS2LE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 0, .opc2 =3D 6, - .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_ripas2e1is_write }, + .access =3D PL2_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_ripas2e1is_write, + .write128fn =3D tlbi_aa64_ripas2e1is_write128 }, { .name =3D "TLBI_RVAE2IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 2, .opc2 =3D 1, .access =3D PL2_W, @@ -1192,12 +1211,16 @@ static const ARMCPRegInfo tlbirange_reginfo[] =3D { .writefn =3D tlbi_aa64_rvae2is_write }, { .name =3D "TLBI_RIPAS2E1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 4, .opc2 =3D 2, - .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_ripas2e1_write }, + .access =3D PL2_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_ripas2e1_write, + .write128fn =3D tlbi_aa64_ripas2e1_write128 }, { .name =3D "TLBI_RIPAS2LE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 4, .opc2 =3D 6, - .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_ripas2e1_write }, + .access =3D PL2_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_ripas2e1_write, + .write128fn =3D tlbi_aa64_ripas2e1_write128 }, { .name =3D "TLBI_RVAE2OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 5, .opc2 =3D 1, .access =3D PL2_W, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472613; cv=none; d=zohomail.com; s=zohoarc; b=knmp3qi7JgYtzu8+uiV6PXlB0iXU9zWU0IDD7qznPVtfxM/Y7LgpywBLHa/3ykWbL+1qHIlEO8dHx4vwaYAK7y4QF1yrzSTGHM2pYZ/aFo5htPsH38GAkCSWZaZp6rn3+NoUT9g6LhTwiAvHG/+HGQfBnz8i47IkghU+DsxH7lQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472613; 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=fnPHkR0njX4AqazQ6eEmA4gBMrMS6vcZ8iE2evnsKIo=; b=iy3Rh4h1UTAbMpUWO24mT3sUjGRoaySBYVYXjYh6krUJJwU+/BO82hkwW6g8l5ot+3ony5CvhuR8wmjAolQUORUMzpMqtDh4Mda8xjb7Wi9VpIqiF9fJf8M4Q48+CKPmrTjXdFIw3u0Df3ffPZ/XPySU64yvQ67uUFzP/eC7qfY= 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 1760472613396337.7904353357484; Tue, 14 Oct 2025 13:10:13 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lKF-0002qo-Sr; Tue, 14 Oct 2025 16:08:51 -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 1v8lK8-0002lv-L9 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:45 -0400 Received: from mail-pg1-x534.google.com ([2607:f8b0:4864:20::534]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJ9-0005PY-Ne for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:43 -0400 Received: by mail-pg1-x534.google.com with SMTP id 41be03b00d2f7-b6a0a7f3a47so39313a12.1 for ; Tue, 14 Oct 2025 13:07:43 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472461; x=1761077261; 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=fnPHkR0njX4AqazQ6eEmA4gBMrMS6vcZ8iE2evnsKIo=; b=To07x0sRHRUCXrtJG/NV/5qYt1EqQ24xdAwwRWmjo45K3fu0/EZpscaxNTHW5a6jvd HOrpyAS34P/lKrnW4NTMAULgFcU2Lam6Hc9HfAZb4yPbSEOpWK23rL/JJ8+VnlXwr63B LkxBLwx1om7gvMV+CZqUGkU4K8uRXBEin9UsnM6KcJzO6ufKK57myA36Neo28ZpM0gzb pTmv2KOg2lFrlce9s3ooSzg+KenkcO5Dtj8263C7Ed4OU2EaYv5N8h11B++QSLpDfec5 9ixpfvOjNStp3xhI7ZM2509H56i4P3eTZWRQOK09wZVMlzG4zfaVLgMGD5zdxjsjkB9P Xlug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472461; x=1761077261; 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=fnPHkR0njX4AqazQ6eEmA4gBMrMS6vcZ8iE2evnsKIo=; b=q37qN5SaIefvd/WAOiD5Gas5EfsQIfuC53p/F0INVAPmXHbG36nuRtKh7ydUQdC6oZ kq6RA6zsrDQCCjFOxAdVfhqcbr4hp4DrQpVo3gXXSVKl5LUpQlxZZiy1r5sy0MCs4f3O qPISWmABoBwA8cSr7TFQQuCZg0H+YHY1n/3ADYdkZeqVAqoo4hVtqq/5ECYTfT+Qf+OC +F/SQBYE3TthWQFnUh3WjkzWkVgIBxDJvN2HEmvaMuCN0u2TtaSZiW2rOVJUvevNZtyY a3/2ewidLWCTbtafz+5g1mzOEH2f+yGoUK2HbHmwzwOvyZgR1CPHpeP0DS1fo15+FnY9 QKdg== X-Gm-Message-State: AOJu0YwMRLqJIAsduDWIVkpD2nSQcgJ84XoRPwkcwr9NqC30j8uSDQ/s 4GlRST1bqp9wfaqDIuWAmNbGMLfDjdfugoaoDHE7Q14cOcUqh9dE0NIBw/Cmy4xaIO0i1Ii0Gra 6C8QkU2M= X-Gm-Gg: ASbGncsdn8QACqISIKkZUbSqhUqoXXDQsSB0RxDESpzfdi9lJFqLDNiScRuqMNEpaap cDK0+qrus5J7gwjo7bRUyZ7rAB1o1JcC1DEtoB0or+Lq8NJSdXFjVgpVZO77N9kGC5GIvhjtliV 4HeNE67nI4lts8VtEjMUcl13/VMyh57jmyhpIS/lmBWVk/S4BHCuakhdzhMMf+wqGnyEJquNR+r wE67wnmwlyNJtoNt4ZcEvanGM17Z464kXa6ChO45Je1OO7+bCO6wpKTi/Y1FTsYyPPJ0UDDcUrI NgU76CH7FevM2euYGLcoNMANFhXQxM501nDgaPJ+E0Mn9NOW/Zsewl36x9n+oTQBCWktoLOMPbn BFDHnOquqDhyntmWsn1PjQ+KI0aliGcpchjr+USPYtsFYYt0ryXI0Witle3b25g== X-Google-Smtp-Source: AGHT+IHn6tHZi6h1Qv6LVm0QmLNrZJXxEhVqAKrJR+w6QZos43FK4oToQEDPej26Q722QAOotaY1PQ== X-Received: by 2002:a17:903:2f0e:b0:272:a900:c42b with SMTP id d9443c01a7336-290273ef03dmr326284525ad.31.1760472460826; Tue, 14 Oct 2025 13:07:40 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 30/37] target/arm: Implement TLBIP RVA{L}E2{IS,OS} Date: Tue, 14 Oct 2025 13:07:11 -0700 Message-ID: <20251014200718.422022-31-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::534; envelope-from=richard.henderson@linaro.org; helo=mail-pg1-x534.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: 1760472614605154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 52 +++++++++++++++++++++++++++----------- 1 file changed, 37 insertions(+), 15 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index 6c07839e3f..cbab7f81f9 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -1031,11 +1031,16 @@ static void tlbi_aa64_rvae2_write(CPUARMState *env, * since we don't support flush-for-specific-ASID-only or * flush-last-level-only. */ - do_rvae_write(env, value, vae2_tlbmask(env), tlb_force_broadcast(env)); +} =20 - +static void tlbi_aa64_rvae2_write128(CPUARMState *env, + const ARMCPRegInfo *ri, + uint64_t vallo, uint64_t valhi) +{ + do_rvae_write128(env, vallo, valhi, vae2_tlbmask(env), + tlb_force_broadcast(env)); } =20 static void tlbi_aa64_rvae2is_write(CPUARMState *env, @@ -1048,9 +1053,14 @@ static void tlbi_aa64_rvae2is_write(CPUARMState *env, * since we don't support flush-for-specific-ASID-only, * flush-last-level-only or inner/outer shareable specific flushes. */ - do_rvae_write(env, value, vae2_tlbmask(env), true); +} =20 +static void tlbi_aa64_rvae2is_write128(CPUARMState *env, + const ARMCPRegInfo *ri, + uint64_t vallo, uint64_t valhi) +{ + do_rvae_write128(env, vallo, valhi, vae2_tlbmask(env), true); } =20 static void tlbi_aa64_rvae3_write(CPUARMState *env, @@ -1202,13 +1212,17 @@ static const ARMCPRegInfo tlbirange_reginfo[] =3D { { .name =3D "TLBI_RVAE2IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 2, .opc2 =3D 1, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_rvae2is_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae2is_write, + .write128fn =3D tlbi_aa64_rvae2is_write128 }, { .name =3D "TLBI_RVALE2IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 2, .opc2 =3D 5, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_rvae2is_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae2is_write, + .write128fn =3D tlbi_aa64_rvae2is_write128 }, { .name =3D "TLBI_RIPAS2E1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 4, .opc2 =3D 2, .access =3D PL2_W, @@ -1224,23 +1238,31 @@ static const ARMCPRegInfo tlbirange_reginfo[] =3D { { .name =3D "TLBI_RVAE2OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 5, .opc2 =3D 1, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_rvae2is_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae2is_write, + .write128fn =3D tlbi_aa64_rvae2is_write128 }, { .name =3D "TLBI_RVALE2OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 5, .opc2 =3D 5, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_rvae2is_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae2is_write, + .write128fn =3D tlbi_aa64_rvae2is_write128 }, { .name =3D "TLBI_RVAE2", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 6, .opc2 =3D 1, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_rvae2_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae2_write, + .write128fn =3D tlbi_aa64_rvae2_write128 }, { .name =3D "TLBI_RVALE2", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 6, .opc2 =3D 5, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_rvae2_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae2_write, + .write128fn =3D tlbi_aa64_rvae2_write128 }, { .name =3D "TLBI_RVAE3IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 2, .opc2 =3D 1, .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472900; cv=none; d=zohomail.com; s=zohoarc; b=e5/DTnb8HWGZWHU6mdhwnV7SrrgtFU8Ux2/TqBIr84E6FIF026bQt+6p9A9BM1ZcF1XYbJXttxepdESfjKhXuYuF1WJ1Ktof5GPk72oU04FL1VO1VWbjiZiCMcAUISGRzpansddnpBe7873HMJvB8Wtrj7A/cqkPBZtC4qgbyO0= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472900; 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=S1HXAga8NsrRrTAL1Ri+/I+45ifsoA4Nqr/eKxaAD+I=; b=nk5Ar+wEFpMjJ+Kj5iTdLLKWXM9h6icAjxgMj/S1z91rx1DNF0nH5FrOjmjrpD9OhlILvLFT4t8rxW7ei8OKtb0ztnGhba0r+RonQRYdISjexvzH9Pt79Lh4mSTViO8Bdy/1BBspDXYoEDTcCVUm5DRWndn+Zpkqhd9nbraEID4= 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 17604729002672.059872152665548; Tue, 14 Oct 2025 13:15:00 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lKI-0002ur-Cz; Tue, 14 Oct 2025 16:08:54 -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 1v8lKA-0002nV-Aw for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:46 -0400 Received: from mail-pf1-x429.google.com ([2607:f8b0:4864:20::429]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJA-0005Pw-N4 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:45 -0400 Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-781010ff051so4152090b3a.0 for ; Tue, 14 Oct 2025 13:07:43 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472461; x=1761077261; 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=S1HXAga8NsrRrTAL1Ri+/I+45ifsoA4Nqr/eKxaAD+I=; b=pjQLYvDQ1yhr2SrN4XYYEbnLAqjramv6IkkXLFNqersxRpQeOeqPkYexdlvDujLQ7o xHWKYmEmr+HYETzS6KHvpAZVMle/YXCkDJV8hqebDelD7O8mu6F2ylX3Sb98/KNHp5+c vIY1ik80Z+tvOtdMD0GPqdfSdcCFGKxiX0F0tsmHKE+fIeuTf0aOckY8aXfzLPfAyfQ/ 2JDHK44MmWuaue23UMk5YT/5OjlBtvtiDIF3BKVOpv2/hch7ANWXTiIGIqa3G/GNWfg0 cRfXAOjnoJomQKAfLozW/IoM68fuTigdKbgFp/5mUZlx9PQhB0qap2LNkcHixMdwv+LL h9Fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472461; x=1761077261; 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=S1HXAga8NsrRrTAL1Ri+/I+45ifsoA4Nqr/eKxaAD+I=; b=Go2r1/hPuL2lwJdS7rQgp+1Cc/Q4hqW4sFFQvuByyXZxNo9TqRKfKa7GduhibJHNva tbYWxU59n6g8g8Y5P7XApN8ftwMxmtrnrymPOPLnSDaWhIPGZBfduftk+xBrIFWGVX66 fbDUDVtxJkPrBQ5St1ZY2fS5qxha0Bc6nMd/OUG56GR+2HtMY9j6IXG79xlDqYoV5Yi5 BwsZEmYMZf2JZ98UfNV1u3oEyUbjs/KXGHKFb8CSICfX7whBzBJFaCbzORoIet4rPpX8 SgkCbRqyXmgw+UMJE+rRChMrOYbSFlux6T5uOp9ilm2CwHmGP8qroWddOQ+WnXGrileu Momg== X-Gm-Message-State: AOJu0YwmG23f2hdbfVRDDkyYRN23pDGYBOCnK4m5Zxwn6ksos7eE0/fG Vs0pbXLrMEsuNmpjwFEbgw+R2cj3BB1fgZACVjLn6K0v07oWs/xTqkJ+pu/LQNm0JD+soh05bXw mNDksK6I= X-Gm-Gg: ASbGnct+v6EFeCHqUECx90OAzUb6tOyMTSeSSmCyS473gNo1itBdGOfYM97WDWk3XiX sizxUskdoeBW3+He3qp3tKIKk9oEqWVIKXNv3bog15roPLa02dk0vRF8rdE1brkszvRjb68PHfN tJvoSJRC3weDw862OVOp5cjHnFFa89evbcXnnQ0bOjpCCQTt5HOse3Co7tOE7CgC4BPp8cwP1vl oDqY/GHnoI2O3nysxvJOuDx7X+ehdz+SYQN/sPNx6TuSjBfKYAF4iWmtGwruLELQsJb2FaHZWfm kIYmDwo3oldFm1OqAjhO5zf1q8w/ys6ZYkjOgiIB037uHerEBCB+iC6c35kLZ1EONAv/8rNEuJx fFSrR2/9S8sl2zAvBqNeQjU/ACiC78qChWDFSKDech1gCb8JQxM9KRFpp5k4ovnNqsgW9ZMIR X-Google-Smtp-Source: AGHT+IHBjaP8HBExhWP/blRTgUr5bperyPim6I27GBqc2LHTrZPDvG5Ws6Aub0uJ8VlToFZSZncu8g== X-Received: by 2002:a17:903:2409:b0:290:52aa:7291 with SMTP id d9443c01a7336-29052aa8299mr171944845ad.53.1760472461456; Tue, 14 Oct 2025 13:07:41 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 31/37] target/arm: Implement TLBIP RVA{L}E3{IS,OS} Date: Tue, 14 Oct 2025 13:07:12 -0700 Message-ID: <20251014200718.422022-32-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::429; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x429.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: 1760472901883154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 53 ++++++++++++++++++++++++++++---------- 1 file changed, 39 insertions(+), 14 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index cbab7f81f9..c7583957b0 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -1073,10 +1073,17 @@ static void tlbi_aa64_rvae3_write(CPUARMState *env, * since we don't support flush-for-specific-ASID-only or * flush-last-level-only. */ - do_rvae_write(env, value, vae3_tlbmask(), tlb_force_broadcast(env)); } =20 +static void tlbi_aa64_rvae3_write128(CPUARMState *env, + const ARMCPRegInfo *ri, + uint64_t vallo, uint64_t valhi) +{ + do_rvae_write128(env, vallo, valhi, vae3_tlbmask(), + tlb_force_broadcast(env)); +} + static void tlbi_aa64_rvae3is_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) @@ -1087,10 +1094,16 @@ static void tlbi_aa64_rvae3is_write(CPUARMState *en= v, * since we don't support flush-for-specific-ASID-only, * flush-last-level-only or inner/outer specific flushes. */ - do_rvae_write(env, value, vae3_tlbmask(), true); } =20 +static void tlbi_aa64_rvae3is_write128(CPUARMState *env, + const ARMCPRegInfo *ri, + uint64_t vallo, uint64_t valhi) +{ + do_rvae_write128(env, vallo, valhi, vae3_tlbmask(), true); +} + static void tlbi_aa64_ripas2e1_write(CPUARMState *env, const ARMCPRegInfo = *ri, uint64_t value) { @@ -1265,28 +1278,40 @@ static const ARMCPRegInfo tlbirange_reginfo[] =3D { .write128fn =3D tlbi_aa64_rvae2_write128 }, { .name =3D "TLBI_RVAE3IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 2, .opc2 =3D 1, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_rvae3is_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae3is_write, + .write128fn =3D tlbi_aa64_rvae3is_write128 }, { .name =3D "TLBI_RVALE3IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 2, .opc2 =3D 5, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_rvae3is_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae3is_write, + .write128fn =3D tlbi_aa64_rvae3is_write128 }, { .name =3D "TLBI_RVAE3OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 5, .opc2 =3D 1, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_rvae3is_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae3is_write, + .write128fn =3D tlbi_aa64_rvae3is_write128 }, { .name =3D "TLBI_RVALE3OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 5, .opc2 =3D 5, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_rvae3is_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae3is_write, + .write128fn =3D tlbi_aa64_rvae3is_write128 }, { .name =3D "TLBI_RVAE3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 6, .opc2 =3D 1, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_rvae3_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae3_write, + .write128fn =3D tlbi_aa64_rvae3_write128 }, { .name =3D "TLBI_RVALE3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 6, .opc2 =3D 5, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_rvae3_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_rvae3_write, + .write128fn =3D tlbi_aa64_rvae3_write128 }, }; =20 static const ARMCPRegInfo tlbios_reginfo[] =3D { --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472605; cv=none; d=zohomail.com; s=zohoarc; b=BtIG+QjKhU+zbFq62qKhePhTRKloPlgOZ9gHB/RETK6BbepuKyABRqOj5aV9zhn0dzzP7F4AA7MjbsYE/LeQZR6fToW6nR3PQ4KaUV5prz1extfeoAnKlPnTi2RTSFZSvV/SlWOmz3YXL36rowxuUpw2vgScd5vj4ho0EYkJRX4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472605; 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=AWJnN+jorW56pvFL9FAVrG2EIYVvPCJhKpvjGKjU+iQ=; b=QitOvwZHscP7uqLyUpYkCiMCExuaq6/3OsEkUGl98tr95+x93y9TcfBK2rm066ijj/pDGCaYykgQ7S543VOkO/eBaKwyFcmXZ+3ZsAWS4wwWJdKYBd0flauzUgZK60y003ORHqpa/muWmTVTOeXaw4vkCRiwjrkPHyPA6Ueqolc= 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 1760472605859910.1872500022693; Tue, 14 Oct 2025 13:10:05 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lKN-0002xU-39; Tue, 14 Oct 2025 16:09:00 -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 1v8lKG-0002ud-M3 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:53 -0400 Received: from mail-pf1-x42c.google.com ([2607:f8b0:4864:20::42c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJC-0005QB-KZ for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:52 -0400 Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-789fb76b466so5302101b3a.0 for ; Tue, 14 Oct 2025 13:07:43 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472462; x=1761077262; 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=AWJnN+jorW56pvFL9FAVrG2EIYVvPCJhKpvjGKjU+iQ=; b=ekPPNwKhBhPkyFaL8ZnomrYE3MtQIj8+b/ZAvNzqNAEx2Dzq4+JFOIaicI6BKM8eEX yo/UbKIHPkHydstKY9TuM3W+vkFoG/3Q+r5xXv3vQ9zfz98PK56JLWwdgHChZCsjdfly mUgaLYKOkPoCeEuJF5ok13F0ZynS/ixJjpAgmKrQUcZtPqkledrxczYOuwBF++32XWH4 AueJbZNI0g9nVxNm/SeER/Xed0AkK6AaJlrfYWEvutfjyuBGOVUAELFV6SzsK9zWgsxh tZ046mgrc0hg6kaZibkjkOFZjt1sRnp6onYIGCPuvH4b3vtonst48bfzuWWPTNRufjtr tjig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472462; x=1761077262; 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=AWJnN+jorW56pvFL9FAVrG2EIYVvPCJhKpvjGKjU+iQ=; b=L1pzluRbOCxj+WrnQcXS8QtOt00jH5r8/mgmatXRTDUF55VtscbeKuAlapmQTkLqSd 0yLWVIRk6LVRE0INl9MDfTc6rfsBxT5UGSJ4HbYrzoK1ywGMzm+WjeYNKu3kDgSLxACj On4GG4ztJG8iozOe5VK07G30MpWIJ7wN6RiXyVwde6cwGRqEOse0rjt4G+KCBIwF9J+e 7RM5os03Zf20558W+5Ptpl/kJByILqr2mp6DxZKNkNKwOGebUd6swjHOj2o6BTHAHLvq quEgJSh3njTZk7KLE34YGcntEOUOpWFQT9mh13dQT43t8D+98bizUlTsBNaDLG0GNUMq jetA== X-Gm-Message-State: AOJu0YzsY8LQW1Xv3FNkeMcKr68yIjeX0JTeGgw9jEVFbzFy7Mi0n9Ex lbiw6GwVd8O6Wjdz8ZmgxVkuHEVBRLpyQy1Dj0Lh9/yYOSQ1gHWZ1WjXXWFPmZxx2u/58to0Mo9 4k5p5QSQ= X-Gm-Gg: ASbGncsk9EsrX9t0XRK8B5QDJ0nkrHWaV9OgdvkosxTpAg564aVwhICn9+Y95uGbCe1 oyPSCI6ITBCn8HvbOSjcg1Olx0g5b/axIINmkfP0dGInuFp5ERTTLOsEo29ADH0bvmRteB1Am8m zwp2NnAZaVuV9N8KU64n3vcYGFpS7VVTAvzO87BFpqa9ReE7AT4D0QAlAvJB8kluK1rtkJdpzJP yjLtayTpYhWrn5DrnsW0AozMVqVUebIj08bFGcN/ORrnLWqZLpCO9oiMWsdVogZ94wHev5DSzG7 169DNHzbhfqQknpRDYMBrQsANipMj552i4OWvELJU9cIEAiHW+hHjQcraJYNcGRdiTRsdH779xl eQRXuEugAU0rDTN8LimyTPJFVCCki9dsbvClGqAzWSDiKx8GExJ+KIPCwTXUaEytAyRua+D+6 X-Google-Smtp-Source: AGHT+IFq97UG9+sL7j4M2hfXITnr0GH7kt7/wHD2SpfE6Oa4FHCh0lU++4BGh0iPbvZo/s70fVcbVA== X-Received: by 2002:a17:902:e888:b0:267:ba92:4d19 with SMTP id d9443c01a7336-29027119eb1mr364968405ad.0.1760472462091; Tue, 14 Oct 2025 13:07:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 32/37] target/arm: Implement TLBIP VA{L}E1{IS,OS} Date: Tue, 14 Oct 2025 13:07:13 -0700 Message-ID: <20251014200718.422022-33-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::42c; envelope-from=richard.henderson@linaro.org; helo=mail-pf1-x42c.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: 1760472610053158500 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 96 ++++++++++++++++++++++++++------------ 1 file changed, 66 insertions(+), 30 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index c7583957b0..beacb92f32 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -442,6 +442,17 @@ static void tlbi_aa64_vae1is_write(CPUARMState *env, c= onst ARMCPRegInfo *ri, tlb_flush_page_bits_by_mmuidx_all_cpus_synced(cs, pageaddr, mask, bits= ); } =20 +static void tlbi_aa64_vae1is_write128(CPUARMState *env, const ARMCPRegInfo= *ri, + uint64_t vallo, uint64_t valhi) +{ + CPUState *cs =3D env_cpu(env); + int mask =3D vae1_tlbmask(env); + uint64_t pageaddr =3D sextract64(valhi << 12, 0, 56); + int bits =3D vae1_tlbbits(env, pageaddr); + + tlb_flush_page_bits_by_mmuidx_all_cpus_synced(cs, pageaddr, mask, bits= ); +} + static void tlbi_aa64_vae1_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) { @@ -463,6 +474,21 @@ static void tlbi_aa64_vae1_write(CPUARMState *env, con= st ARMCPRegInfo *ri, } } =20 +static void tlbi_aa64_vae1_write128(CPUARMState *env, const ARMCPRegInfo *= ri, + uint64_t vallo, uint64_t valhi) +{ + CPUState *cs =3D env_cpu(env); + int mask =3D vae1_tlbmask(env); + uint64_t pageaddr =3D sextract64(valhi << 12, 0, 56); + int bits =3D vae1_tlbbits(env, pageaddr); + + if (tlb_force_broadcast(env)) { + tlb_flush_page_bits_by_mmuidx_all_cpus_synced(cs, pageaddr, mask, = bits); + } else { + tlb_flush_page_bits_by_mmuidx(cs, pageaddr, mask, bits); + } +} + static void tlbi_aa64_vae2is_write(CPUARMState *env, const ARMCPRegInfo *r= i, uint64_t value) { @@ -664,10 +690,11 @@ static const ARMCPRegInfo tlbi_v8_cp_reginfo[] =3D { .writefn =3D tlbi_aa64_vmalle1is_write }, { .name =3D "TLBI_VAE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 3, .opc2 =3D 1, - .access =3D PL1_W, .accessfn =3D access_ttlbis, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .access128fn =3D acc= ess_ttlbis, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIVAE1IS, - .writefn =3D tlbi_aa64_vae1is_write }, + .writefn =3D tlbi_aa64_vae1is_write, + .write128fn =3D tlbi_aa64_vae1is_write128 }, { .name =3D "TLBI_ASIDE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 3, .opc2 =3D 2, .access =3D PL1_W, .accessfn =3D access_ttlbis, @@ -676,10 +703,11 @@ static const ARMCPRegInfo tlbi_v8_cp_reginfo[] =3D { .writefn =3D tlbi_aa64_vmalle1is_write }, { .name =3D "TLBI_VAAE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 3, .opc2 =3D 3, - .access =3D PL1_W, .accessfn =3D access_ttlbis, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlbis, .access128fn =3D acc= ess_ttlbis, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIVAAE1IS, - .writefn =3D tlbi_aa64_vae1is_write }, + .writefn =3D tlbi_aa64_vae1is_write, + .write128fn =3D tlbi_aa64_vae1is_write128 }, { .name =3D "TLBI_VALE1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 3, .opc2 =3D 5, .access =3D PL1_W, .accessfn =3D access_ttlbis, @@ -700,10 +728,11 @@ static const ARMCPRegInfo tlbi_v8_cp_reginfo[] =3D { .writefn =3D tlbi_aa64_vmalle1_write }, { .name =3D "TLBI_VAE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 7, .opc2 =3D 1, - .access =3D PL1_W, .accessfn =3D access_ttlb, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlb, .access128fn =3D acces= s_ttlb, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIVAE1, - .writefn =3D tlbi_aa64_vae1_write }, + .writefn =3D tlbi_aa64_vae1_write, + .write128fn =3D tlbi_aa64_vae1_write128 }, { .name =3D "TLBI_ASIDE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 7, .opc2 =3D 2, .access =3D PL1_W, .accessfn =3D access_ttlb, @@ -712,22 +741,25 @@ static const ARMCPRegInfo tlbi_v8_cp_reginfo[] =3D { .writefn =3D tlbi_aa64_vmalle1_write }, { .name =3D "TLBI_VAAE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 7, .opc2 =3D 3, - .access =3D PL1_W, .accessfn =3D access_ttlb, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlb, .access128fn =3D acces= s_ttlb, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIVAAE1, - .writefn =3D tlbi_aa64_vae1_write }, + .writefn =3D tlbi_aa64_vae1_write, + .write128fn =3D tlbi_aa64_vae1_write128 }, { .name =3D "TLBI_VALE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 7, .opc2 =3D 5, - .access =3D PL1_W, .accessfn =3D access_ttlb, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlb, .access128fn =3D acces= s_ttlb, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIVALE1, - .writefn =3D tlbi_aa64_vae1_write }, + .writefn =3D tlbi_aa64_vae1_write, + .write128fn =3D tlbi_aa64_vae1_write128 }, { .name =3D "TLBI_VAALE1", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 7, .opc2 =3D 7, - .access =3D PL1_W, .accessfn =3D access_ttlb, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlb, .access128fn =3D acces= s_ttlb, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIVAALE1, - .writefn =3D tlbi_aa64_vae1_write }, + .writefn =3D tlbi_aa64_vae1_write, + .write128fn =3D tlbi_aa64_vae1_write128 }, { .name =3D "TLBI_IPAS2E1IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 0, .opc2 =3D 1, .access =3D PL2_W, @@ -1324,9 +1356,10 @@ static const ARMCPRegInfo tlbios_reginfo[] =3D { { .name =3D "TLBI_VAE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 1, .fgt =3D FGT_TLBIVAE1OS, - .access =3D PL1_W, .accessfn =3D access_ttlbos, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_vae1is_write }, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .access128fn =3D acc= ess_ttlbos, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae1is_write, + .write128fn =3D tlbi_aa64_vae1is_write128 }, { .name =3D "TLBI_ASIDE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 2, .access =3D PL1_W, .accessfn =3D access_ttlbos, @@ -1335,22 +1368,25 @@ static const ARMCPRegInfo tlbios_reginfo[] =3D { .writefn =3D tlbi_aa64_vmalle1is_write }, { .name =3D "TLBI_VAAE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 3, - .access =3D PL1_W, .accessfn =3D access_ttlbos, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .access128fn =3D acc= ess_ttlbos, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIVAAE1OS, - .writefn =3D tlbi_aa64_vae1is_write }, + .writefn =3D tlbi_aa64_vae1is_write, + .write128fn =3D tlbi_aa64_vae1is_write128 }, { .name =3D "TLBI_VALE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 5, - .access =3D PL1_W, .accessfn =3D access_ttlbos, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .access128fn =3D acc= ess_ttlbos, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIVALE1OS, - .writefn =3D tlbi_aa64_vae1is_write }, + .writefn =3D tlbi_aa64_vae1is_write, + .write128fn =3D tlbi_aa64_vae1is_write128 }, { .name =3D "TLBI_VAALE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 0, .crn =3D 8, .crm =3D 1, .opc2 =3D 7, - .access =3D PL1_W, .accessfn =3D access_ttlbos, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, + .access =3D PL1_W, .accessfn =3D access_ttlbos, .access128fn =3D acc= ess_ttlbos, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, .fgt =3D FGT_TLBIVAALE1OS, - .writefn =3D tlbi_aa64_vae1is_write }, + .writefn =3D tlbi_aa64_vae1is_write, + .write128fn =3D tlbi_aa64_vae1is_write128 }, { .name =3D "TLBI_ALLE2OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 1, .opc2 =3D 0, .access =3D PL2_W, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472897; cv=none; d=zohomail.com; s=zohoarc; b=Tqfxhq/XPdztmjAlhAUu5ietwMaSovjlr49gQwidFeuE92wAzj2fssUdEHnp7gSGuQaBJZWqClL3s8tQgGEjQ4sKOkNrtExYZn0xlRYytQJh2gbCZrriW7C7AT1corYmK8hd9pVL7+TktHs+D3scUpFBytnsqDiLEZYUYeTf2sE= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472897; 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=eOldzdPHQhf3YrWEbwVnS4C8lSFLiSxsaEnJBfZTIIY=; b=Di11d/Xlq7me09VxWE/hCjBixxT14Umr7OB6QZFwrQ5lrRSNrNklio0Mqyf8d25OITKUX/GVebfBFXrmD6s5XVnXNOEgp1FYwuR8N4u7y/Te9BzUtH+Icenoz6D8IlLQ6VUs/b8VhOaQTLyzVOAkQVWJXMnCdj5hYsw/MKPkdUY= 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 1760472897265442.4260122390061; Tue, 14 Oct 2025 13:14:57 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lKQ-00032S-NQ; Tue, 14 Oct 2025 16:09: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 1v8lK9-0002mS-G1 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:46 -0400 Received: from mail-pl1-x634.google.com ([2607:f8b0:4864:20::634]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJC-0005QT-B6 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:45 -0400 Received: by mail-pl1-x634.google.com with SMTP id d9443c01a7336-27ee41e074dso66629435ad.1 for ; Tue, 14 Oct 2025 13:07:44 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472463; x=1761077263; 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=eOldzdPHQhf3YrWEbwVnS4C8lSFLiSxsaEnJBfZTIIY=; b=re2tZL8ZAMwCcUhKseL058b7/OTWSD2mUnKYk128QFObGLKu4DLVfT6kMWOx4LNjep /DmRnRG3x4ezLg+dD/X+ZpGOTXBu2aXCcsaxjBxkosifXUYOqT8QC0l3BNLFw13VCK8H n5mJzosTeeXUMsJvrZ+BuiwMzu+CxLfBrWMGI7TueMQTLyr0GKZpEVkdajGR83Vp6F6d XdCujM8JAN4N/rWbMxYpCTKcGpEyVOwgV/hzosCOaU7+u9Jn07NABsx514/jvwTEsn9C dPQm4yt+2X6tZ0/BSAXCHWNZgPqJV23HiayQUBT8enOSRrOzPshPkraSICNz+E8s2CIq YnMg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472463; x=1761077263; 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=eOldzdPHQhf3YrWEbwVnS4C8lSFLiSxsaEnJBfZTIIY=; b=EoYbWQvLi66mQQk9ozXNenuerU/wf6P1xt4tZtnejNK2Jt74amaPbhcgvU4rpLuevV xUxo6G7C3CcTglwVaCNIjhPFRUFpBIeZ/sZRH5sy+EHUe6j+5kMf/7Ykbxm7eVTDVx4D UcHkKANfi6c2KZhB8h/VS7Pr/RrwMeC1KZWsioxnV5IkD2P4L2CFYUKHSgskCZPnf3PG JZhLFPgQ4Zm4wThwJxF6lr9l/ACAeGp0y4Ow8k/ip9JJPQheB39p94UDgXB9z5gH+BPe /mM9kj7KjeJAQIyGRulA688ZKa9xThSeZY9I4z+j0a1IwM4j2AmqXrXWST/9cHszz1cd JNvQ== X-Gm-Message-State: AOJu0YwuT1K2bcRAar7K43DWtfs9MG11Bf+VUnDj5zwTr/W4xtYWYK0D hg5rumkiFIk7wC5WNx3cHWMhFEesmyHriAkZjlCMbO9CLcDsB2j5DVJSyqTwB0AXpge5jUd5MYh jXlrXzqc= X-Gm-Gg: ASbGncuuN9GPF2gEW4n4t8w856/w29llTLYD4WxDGz22QzBr/a2zQX49uNCvoJOJLBK qP5yuKp96bFSbUcJXq/5/FWIH4mujHUlmWOJRIf57hp1xoB8NEmJW3tLvZ1IAs4iwkDP2ct5cCL 0hpVEgxP0D6+1amM4qR/A0XLTHNWkJBMzhdUQAyjb+/UIVx3XPvfvV3A3MgNAgfcjjfOWD5GmBv R6rpaBnD7+wCKoEWI3TFeO/bPyVjYLNgjWrC3OPAeRpHD+ZACKu1MQicn9ci4wNClMGpbqQy2+o W7vGrFwo7Z3v1um1+dzRqwEXxuR7uz11wT54V6WSzwBCgaewQYFxM6JH/4qVSFXyzIA4ET81IbD uToMvG4sSv189Oy2XhSU3YR/hCP4NHa6kmkU4k44F4AfBVkYJ/iFIbg+16pJ+b/NcsiM5BG6q X-Google-Smtp-Source: AGHT+IGD6FVJaWr03FcKRamX2KIpwQhOOouZePc/7JlrPWm9U3hw58LS2Bt51Q6sN5pI/812ApoljA== X-Received: by 2002:a17:903:2a87:b0:269:aba0:f0a7 with SMTP id d9443c01a7336-29027212f47mr352915605ad.2.1760472462677; Tue, 14 Oct 2025 13:07:42 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 33/37] target/arm: Implement TLBIP VAE2, VALE2 Date: Tue, 14 Oct 2025 13:07:14 -0700 Message-ID: <20251014200718.422022-34-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::634; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x634.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: 1760472899823154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index beacb92f32..f99559e4a7 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -416,6 +416,17 @@ static void tlbi_aa64_vae2_write(CPUARMState *env, con= st ARMCPRegInfo *ri, tlb_flush_page_bits_by_mmuidx(cs, pageaddr, mask, bits); } =20 +static void tlbi_aa64_vae2_write128(CPUARMState *env, const ARMCPRegInfo *= ri, + uint64_t vallo, uint64_t valhi) +{ + CPUState *cs =3D env_cpu(env); + int mask =3D vae2_tlbmask(env); + uint64_t pageaddr =3D sextract64(valhi << 12, 0, 56); + int bits =3D vae2_tlbbits(env, pageaddr); + + tlb_flush_page_bits_by_mmuidx(cs, pageaddr, mask, bits); +} + static void tlbi_aa64_vae3_write(CPUARMState *env, const ARMCPRegInfo *ri, uint64_t value) { @@ -831,13 +842,17 @@ static const ARMCPRegInfo tlbi_el2_cp_reginfo[] =3D { { .name =3D "TLBI_VAE2", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 7, .opc2 =3D 1, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_vae2_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae2_write, + .write128fn =3D tlbi_aa64_vae2_write128 }, { .name =3D "TLBI_VALE2", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 7, .opc2 =3D 5, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_vae2_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae2_write, + .write128fn =3D tlbi_aa64_vae2_write128 }, { .name =3D "TLBI_ALLE2IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 3, .opc2 =3D 0, .access =3D PL2_W, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760473065; cv=none; d=zohomail.com; s=zohoarc; b=gMFbUL5piD7HDFJ2Xl6/7kmRSWV68vE2ZtRSqsWjHlQm63+5hsFkf45S/ALOgY1s8nigLZvFmXOQTgqKp5CBeXHKE3ufZN8S9lM0EXuoXMi16a3E32VGp8AvXlDW8kj2A5kSuMs00P8VxMHebjrvrEBM+PaT2E4G1fhZnD1mdnk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760473065; 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=cP6TNINNZoGtGBqsX1aw8rmNJhFSSPjp0JQKlaZg8kY=; b=AYZTXjKDyGJDA3t86doLh6eNRZLZHw1WNHx7iqJ0tPnfcBi10hQcOR087RqBUh83x/O8g6kb5esUJEF4/fzMmNlyxWXiLYY5sCw14nVcAsffv+hNVYCOPMjtV3F6nuhJI6Q7dZonKR1hoAFx6U9tnM6IUa0+frRG2oWdFeb6Ejo= 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 1760473065267791.5613217416413; Tue, 14 Oct 2025 13:17:45 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lKH-0002uw-ET; Tue, 14 Oct 2025 16:08:53 -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 1v8lKE-0002qt-Vl for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:51 -0400 Received: from mail-pl1-x62c.google.com ([2607:f8b0:4864:20::62c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJC-0005Qq-B7 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:50 -0400 Received: by mail-pl1-x62c.google.com with SMTP id d9443c01a7336-2907948c1d2so18061735ad.3 for ; Tue, 14 Oct 2025 13:07:45 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472463; x=1761077263; 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=cP6TNINNZoGtGBqsX1aw8rmNJhFSSPjp0JQKlaZg8kY=; b=vS/54JEWQyjDD8pEnWpWqzbkZccaM4a3cEE+gyibmL/J/c+8hOKKARzQ6mGm3Ypz7L yL1tRfKmDQktl/Q9Z8+urQkxBXBlWy/KTm2qPqicMpQShFltentkK2C5SPRg/N+DFSGb 7KKk9acvMOVw+K607k/UVwKvB4b+GMVmM8LQ7wEx1uEyoRpyVM4c9WgDeNkxqUVrkQsS 5mrWpduIlCKAjrdyK56D7b1fhuXtFwUm2E2L1hwyTj51hwKkVTB17M5Q1LcsqE39K4a3 tq9XDx3LiW0XNX8VCxgpDcmSY1qg4JSz7taCGzIn+KlCHLhvsi8JiMVo2iDrbM1ZxgzV XtjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472463; x=1761077263; 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=cP6TNINNZoGtGBqsX1aw8rmNJhFSSPjp0JQKlaZg8kY=; b=N0uFGOvJ73vc5esqj2HLSxEmdg9y7zuFwgpdW7+yIreSrIyUp+EmW98ixc3rjK0M38 81Ojnid1C573Ku5ZMBG+7ia26peZLZVCLHLrXKCxjW1TBlWrYRPtjSxcaHM6FvuTORPn kF8fPfVjP/w0VH5Xi6upVsoOrpERGpxJdhSzd4/t2hf5vShM3uU8CJ4rAgsMw+sR+T2a P7r/SAwAosCSiXe1T3DX9RZx5qK0GKgqiJBLW8vx15Hd09EJizjVddanXOIDdIJ6A7L8 NB9AgtpsEPRzhf9SDUp/ISSfacXiQv7sOeVMsRNykwnJ2D2AL0korcsrej3wEL5Hoc9n /Ifg== X-Gm-Message-State: AOJu0YxdAjvnPftKFnIBgDaAW7RgsMkrFdiU1lzdKHHSHsmUjagjgfnM Ze4R1t/C9J67+L81DdP3cgS62m1LuB6TEQCVvR2wTjsPdR0HUDGKG0/Tk9l/Blq/mOyMdh/Kz6c 7AJ+wpmw= X-Gm-Gg: ASbGncvvgBm3g+a2/uvHsdq3404uvOkvNDapKz9DKQj0GJX3riAQn1Nnv0SYntO3FSb y0M28IaRPLxVI+BzXBsaA9vWs67YPPnYYMBqV1uuGEqbhIglvSgBDgJMEAENS/kLtA1Uf0Lri6G SYnVoo+/0suNm6qAx3O+UXaP600a4U0p2cmJ7YKkuYbEL8Z6k8qWo7XdsQhkmJjtSm5ZM/karQX cDwfFCWsAHDLafCe11ZRLmG0nXCz8OXD5Z/zJHVf6zYnKW+9Zjn51Zy1qJadBAgKpFqYTbzlroa Z0YavKt1OMDqDKt69Ja4u2ghq1kydOHofsV37J4UkyC2HbQm1deLawfcDLBzOdhjDWeUIyvMs0O Ihnu6UDxwXH9Kiq80IWy5rmhx8MBer6ack9CQjODCJghnBTTvt6wddGz5itmKPQ== X-Google-Smtp-Source: AGHT+IFOtb0PYPAxCCF9tocUVgC9UVwdnIVVfVTFKVoYOXwOMtUn4wY4tKgyLTORTGddim1LS5ytIg== X-Received: by 2002:a17:903:2351:b0:269:a23e:9fd7 with SMTP id d9443c01a7336-29027262689mr387260045ad.26.1760472463339; Tue, 14 Oct 2025 13:07:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 34/37] target/arm: Implement TLBIP VAE3, VALE3 Date: Tue, 14 Oct 2025 13:07:15 -0700 Message-ID: <20251014200718.422022-35-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::62c; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62c.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, T_SPF_TEMPERROR=0.01 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: 1760473067688154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index f99559e4a7..10ee973068 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -442,6 +442,13 @@ static void tlbi_aa64_vae3_write(CPUARMState *env, con= st ARMCPRegInfo *ri, tlb_flush_page_by_mmuidx(cs, pageaddr, vae3_tlbmask()); } =20 +static void tlbi_aa64_vae3_write128(CPUARMState *env, const ARMCPRegInfo *= ri, + uint64_t vallo, uint64_t valhi) +{ + uint64_t pageaddr =3D extract64(valhi << 12, 0, 56); + tlb_flush_page_by_mmuidx(env_cpu(env), pageaddr, ARMMMUIdxBit_E3); +} + static void tlbi_aa64_vae1is_write(CPUARMState *env, const ARMCPRegInfo *r= i, uint64_t value) { @@ -889,12 +896,16 @@ static const ARMCPRegInfo tlbi_el3_cp_reginfo[] =3D { .writefn =3D tlbi_aa64_alle3_write }, { .name =3D "TLBI_VAE3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 7, .opc2 =3D 1, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_vae3_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae3_write, + .write128fn =3D tlbi_aa64_vae3_write128 }, { .name =3D "TLBI_VALE3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 7, .opc2 =3D 5, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_vae3_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae3_write, + .write128fn =3D tlbi_aa64_vae3_write128 }, }; =20 typedef struct { --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472604; cv=none; d=zohomail.com; s=zohoarc; b=YMyXtIMr3zCgucu0noRDUnNapn/aUhoLkvIKm41RW23OnKEOrEvUvMt6hTYT3xKiwJAh+/YuiIRV+9Pzq2nVotoWt1dTST7lWSP4XOZJYC+ynjOsH7xoVKvJny2AbhWDiOMrdVGAF2RqdeRm81vyKLgQhPPoOYAw1vutt1Pcm2A= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472604; 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=XbIPf39C/nOyYzA/Hj0JrQcXy1Pq3ydN164jP8835Fk=; b=n/wtzipyIvKLq6SbfjMPgv6VISzUiU9oASOoww6SrPNpOgzouFqILJyehitW97dHPBG9UcXd0cGHjhLvQ0QxiY1vaHOLBaGveSzp7aMbyBfvlvIJpu7xc9Apzl5r1d+n1necLg1VHszr8dg4l+Uoon+dduwlLwNPRb5WqJ0nDEQ= 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 1760472604748475.6922812146099; Tue, 14 Oct 2025 13:10:04 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lKS-00036t-6W; Tue, 14 Oct 2025 16:09:06 -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 1v8lKC-0002od-54 for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:48 -0400 Received: from mail-pl1-x629.google.com ([2607:f8b0:4864:20::629]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJC-0005R4-Ba for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:08:47 -0400 Received: by mail-pl1-x629.google.com with SMTP id d9443c01a7336-27edcbbe7bfso67771635ad.0 for ; Tue, 14 Oct 2025 13:07:45 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472464; x=1761077264; 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=XbIPf39C/nOyYzA/Hj0JrQcXy1Pq3ydN164jP8835Fk=; b=uQuRuQtZSHnomhDr3AHn9tFy3uMDUgjnfoWYx2wrHU/E0TAyIivsq/Gm828V1CxUub VGBY74FnCvLpsXZlGI5yz7Zr+osIGUpQxnIcpjgWeoa31IPWnug1cO/oxkmvM10GW3dB z+5KyL0WR8pq06BvB4VsqMAB9qvjTxz2I6Yut2o+COIzpmTgoHYDP7QCTa6Y09d4nABy tjuoAvnp/loTbxdvod9kO5aXvmDuDbbnRex1dLqko58ao+5c/ic5IoFry6xKLBpvEd9L Vq6cQMHMkVkyCEwPRwXCKzCOUoTN4nL5cz3AbiQTD62pVVDYE5eBPRGfeeg6QKiOCGVJ eDIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472464; x=1761077264; 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=XbIPf39C/nOyYzA/Hj0JrQcXy1Pq3ydN164jP8835Fk=; b=L30Vzl/CMwCjYmgEtXh+zVphq71qluebpS6LgZijWTaEq1cVpWGV2QtFvI+zaEjPIr fDm/RXrF9YcQIlP2fOTQdCks7auEBTGJ6AR4CXreSeyZrq9ZwTnJLTc8xfNAEH0S2/vz +ayy4c9QwpcVgFpuivpO91N8akztwQ5GaVO/p28FS1YA5/zRDaJrSPDCCuLtl+CHrIVj QVzOBi/FgvK/VB8OwAdDYCm/nMTrM//KcbY/+xRuK6+xmESURvlGjwro5n96TWJD+/wa yeXKVUySvLXJp6neoF/J6KV9VAY+DxAoXfVgNQYUNPZ07PcN8UOWzevpiL+vgp52+YC1 GF2w== X-Gm-Message-State: AOJu0YzMutjnL3spqU8AQNYxoAs/F/7w7BElLN7nD1FjNfPEIJPTiH8p ax8WLBFRvQFi4x0b1k4424HJCDqo6XhKQd++cZxewq6RdCvCc1YK0j6HmO17JKTpXgmrFccV2NK 0jSb7ZD0= X-Gm-Gg: ASbGncsnrfZSdotx9g+tuc1mOKsShnL/9tKgd7vJx7JavAoY5N+4w9YqmO2KKTnKioG zGoEoig1x7fVV/Q+D6gr9/zX25ha7gVLNmLu6eA/o0JoJjT8SLi8DgKjighO3LO3PZHOic5p2LW IHuVlqJ+MHmqCNw8Lq2YoXDow9aabE60gYwDbLY59PkpYUkyAdSP3f8XflFjs9VNWvda+PnZ61h 4yY1zuVWOae6DPZxT1PsnwElJR4Ke00ArppKs9RtRjLY2GWS9qASehRTPhE1t7XZMU0VUY/N3Nh M5EwOXah01/oeiqfI8VHY1ww2kJf7UDVn+ysPOUpr7MH3Haka8/tKqgXyoCUQA9M2enJHYoW5WC fftdPSkVT5QwT6+/0QRn1aBsFqwFGeB7wIgw3n6j3+f4jAFhCxEM= X-Google-Smtp-Source: AGHT+IGd5hkteQKarqIN6FTT4P5RJrY0E4jhj9ekdZ6C8HtQrKdGIgcbtoxACBZflDvUMeEj0JWxdQ== X-Received: by 2002:a17:902:d60f:b0:269:ba61:222e with SMTP id d9443c01a7336-29027303330mr328562865ad.53.1760472463921; Tue, 14 Oct 2025 13:07:43 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 35/37] target/arm: Implement TLBIP VA{L}E2{IS,OS} Date: Tue, 14 Oct 2025 13:07:16 -0700 Message-ID: <20251014200718.422022-36-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::629; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x629.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: 1760472606487154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index 10ee973068..ea2b56e245 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -518,6 +518,17 @@ static void tlbi_aa64_vae2is_write(CPUARMState *env, c= onst ARMCPRegInfo *ri, tlb_flush_page_bits_by_mmuidx_all_cpus_synced(cs, pageaddr, mask, bits= ); } =20 +static void tlbi_aa64_vae2is_write128(CPUARMState *env, const ARMCPRegInfo= *ri, + uint64_t vallo, uint64_t valhi) +{ + CPUState *cs =3D env_cpu(env); + int mask =3D vae2_tlbmask(env); + uint64_t pageaddr =3D sextract64(valhi << 12, 0, 56); + int bits =3D vae2_tlbbits(env, pageaddr); + + tlb_flush_page_bits_by_mmuidx_all_cpus_synced(cs, pageaddr, mask, bits= ); +} + static void tlbi_aa64_vae3is_write(CPUARMState *env, const ARMCPRegInfo *r= i, uint64_t value) { @@ -868,13 +879,17 @@ static const ARMCPRegInfo tlbi_el2_cp_reginfo[] =3D { { .name =3D "TLBI_VAE2IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 3, .opc2 =3D 1, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_vae2is_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae2is_write, + .write128fn =3D tlbi_aa64_vae2is_write128 }, { .name =3D "TLBI_VALE2IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 3, .opc2 =3D 5, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_vae2is_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae2is_write, + .write128fn =3D tlbi_aa64_vae2is_write128 }, }; =20 static const ARMCPRegInfo tlbi_el3_cp_reginfo[] =3D { @@ -1421,8 +1436,10 @@ static const ARMCPRegInfo tlbios_reginfo[] =3D { { .name =3D "TLBI_VAE2OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 1, .opc2 =3D 1, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_vae2is_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae2is_write, + .write128fn =3D tlbi_aa64_vae2is_write128 }, { .name =3D "TLBI_ALLE1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 1, .opc2 =3D 4, .access =3D PL2_W, @@ -1431,8 +1448,10 @@ static const ARMCPRegInfo tlbios_reginfo[] =3D { { .name =3D "TLBI_VALE2OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 1, .opc2 =3D 5, .access =3D PL2_W, - .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_EL3_NO_EL2_UN= DEF, - .writefn =3D tlbi_aa64_vae2is_write }, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | + ARM_CP_EL3_NO_EL2_UNDEF | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae2is_write, + .write128fn =3D tlbi_aa64_vae2is_write128 }, { .name =3D "TLBI_VMALLS12E1OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 4, .crn =3D 8, .crm =3D 1, .opc2 =3D 6, .access =3D PL2_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472800; cv=none; d=zohomail.com; s=zohoarc; b=faY6P1hzusNNvSxr74+1JpdPX+oL1stoOeUjX3BrNjRy46BuQDv+59CJL0NyprIPawZlFVt2ib+tG7My2Q+nxAbOmmXIqpj/8eZgoeMxhrRhUEPRdsVE1NJw/3loGuSXPMYPBnqrUGQsX8WDvXyY/JQaG2MJJih2+Mpm6Z4wbQs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472800; 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=ghLuR3gXYt6fnGHVL4mdQCSf+iXVALSdZ/1qqHB0W5k=; b=fRmU2FKFcffvimKpubRjgUksrai+Kyio5E6TLiyAq/yOwP2bfweW6ke/8Ze5+NR5pHjy2OMlGAeJYUwnwlIbvkGbeeu2Y7PqaPeFPyyUhNy9HmKFHwvYhLRzkDujHmy7BGExcoRFc47TIZ+pJxUCiSsvfVrTBmxOwoJsIZ5O3ac= 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 1760472800229896.491595526976; Tue, 14 Oct 2025 13:13:20 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lL9-000408-Cg; Tue, 14 Oct 2025 16:09: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 1v8lKW-0003Ew-Vn for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:09:09 -0400 Received: from mail-pl1-x633.google.com ([2607:f8b0:4864:20::633]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJG-0005RY-7I for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:09:08 -0400 Received: by mail-pl1-x633.google.com with SMTP id d9443c01a7336-269af38418aso67062455ad.1 for ; Tue, 14 Oct 2025 13:07:47 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472465; x=1761077265; 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=ghLuR3gXYt6fnGHVL4mdQCSf+iXVALSdZ/1qqHB0W5k=; b=yaBODpMPwwkMsXYX6+DcPxRuzL+gO++NB2Qwg7STMmtgEGXssrbRtrbWSBrX9xf84v iMROzJ/t5gfjySG+pQAr+Cc9bZ5x4TzNknDRDGGZcDQbWNmAiaXgEvFmLRf5cxWlWbiv wAJOovVnY7cLRNtQ9VgGp/5o8JM2u7fjXuCnb9XVVLA0iF/gXcLhkvKJfacdHeAmEVuj w3JpqXxtB9xgnluXRXWHZ6itUEmXUsGmA4YTPFZgVa5Y7FW3TPTaIEMjkMMzKFI4AW4p vDAnNeHwWvcCd5bJZdoxoiIlrVvYiWuRQ3OfwTtvtEyxNKOjm5QfNxT1DDtG1a0PaenJ VAug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472465; x=1761077265; 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=ghLuR3gXYt6fnGHVL4mdQCSf+iXVALSdZ/1qqHB0W5k=; b=FTTwm6dFXqksuxqFqKUa/OMhB89Gzlzbbnbf+KyEe09mcSmpx9LgcaCJbYEnQMuazT sGvH4i13Xm7uRtDEe3/QQCJmU/AbpAMxjLiMGy3qhkrUMjazS+8+r86Jd+d3fug/Pjnj ePykGBreR8NsStxGjZY8PCGI1pNMjY+jW07PCPpyIE6tfX6tzZmY+rUNbr3VjbthvU3Q IRV0t3g6zAJ7KlxDJPqjFypNDWNvCGrPz5O7KpZmjOynfnx89ifHYCyRaMOMfHMN+LKJ e+I7Kq9DKi8EhnG24PNewXRf6LCrbpz3HXaIbDRO25GhTs5P8XoQtGp8qqfOfropNSOI pZvg== X-Gm-Message-State: AOJu0Yy8kYd7ZxdCmNlPR1YsOpXjX0M+c3ChDP65SWxGyHaOf74r3L2w IFULSF9blUdUXJR8UU3Z5EwJORe87Dh3Ah2I7fFxIxX0vDLcdaLeo9un2VNOQqp0lioEqqtXLdA WlUeruJY= X-Gm-Gg: ASbGncvXOhiFWQ03miJUY8B7mpMJ0DZINZEza//L+utWppOuEGnVqZ6YrZDSzxiH7Fz i6Gbua9i40E0d5ENBfuP/NsNrvwtKyfphf8AGTnRR1newTPTRc5Ba+C8PHDFcjEuStUelXKUW+X JvAgdzMqkIurL5GZ9+8zPVfUPCrQED14FdIVWNTjbxTnllDEZjv4ubXvqNYD8m4memWJYeqYLOf CEr1GzVzffipsV/pP9SuFlbEaAHIB8t/EMJodYFenjgBHyQOaon3Sb6ZCQq2IZZdwsG5LEHLVt+ W9iKF4iLF9frLYqpYUe1DOcEuRZy7iAcARiyVuuv4Pmv+MrPCDbUR+B9miB2UIAw/U3kwwAzgTf RotPW+1e5XaXM1G/A9ee1deGS5B2bwJ4nkosL8UvIQ37IIQS3mkI= X-Google-Smtp-Source: AGHT+IH0J59BmeBYRPGNRw0Fex6sDoGBhYrUyKQQ4zqVuKTjjFThG+dNPUdEV1Hx4NnFdVOh1j+6Ag== X-Received: by 2002:a17:903:910:b0:258:9d26:1860 with SMTP id d9443c01a7336-290273ffeb7mr357893535ad.40.1760472464536; Tue, 14 Oct 2025 13:07:44 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 36/37] target/arm: Implement TLBIP VA{L}E3{IS,OS} Date: Tue, 14 Oct 2025 13:07:17 -0700 Message-ID: <20251014200718.422022-37-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::633; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x633.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: 1760472802778154100 Content-Type: text/plain; charset="utf-8" Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- target/arm/tcg/tlb-insns.c | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/target/arm/tcg/tlb-insns.c b/target/arm/tcg/tlb-insns.c index ea2b56e245..2b76ea077f 100644 --- a/target/arm/tcg/tlb-insns.c +++ b/target/arm/tcg/tlb-insns.c @@ -540,6 +540,17 @@ static void tlbi_aa64_vae3is_write(CPUARMState *env, c= onst ARMCPRegInfo *ri, vae3_tlbmask(), bits); } =20 +static void tlbi_aa64_vae3is_write128(CPUARMState *env, const ARMCPRegInfo= *ri, + uint64_t vallo, uint64_t valhi) +{ + CPUState *cs =3D env_cpu(env); + uint64_t pageaddr =3D extract64(valhi << 12, 0, 56); + int bits =3D tlbbits_for_regime(env, ARMMMUIdx_E3, pageaddr); + + tlb_flush_page_bits_by_mmuidx_all_cpus_synced(cs, pageaddr, + ARMMMUIdxBit_E3, bits); +} + static int ipas2e1_tlbmask(CPUARMState *env, int64_t value) { /* @@ -899,12 +910,16 @@ static const ARMCPRegInfo tlbi_el3_cp_reginfo[] =3D { .writefn =3D tlbi_aa64_alle3is_write }, { .name =3D "TLBI_VAE3IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 3, .opc2 =3D 1, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_vae3is_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae3is_write, + .write128fn =3D tlbi_aa64_vae3is_write128 }, { .name =3D "TLBI_VALE3IS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 3, .opc2 =3D 5, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_vae3is_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae3is_write, + .write128fn =3D tlbi_aa64_vae3is_write128 }, { .name =3D "TLBI_ALLE3", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 7, .opc2 =3D 0, .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, @@ -1474,12 +1489,16 @@ static const ARMCPRegInfo tlbios_reginfo[] =3D { .writefn =3D tlbi_aa64_alle3is_write }, { .name =3D "TLBI_VAE3OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 1, .opc2 =3D 1, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_vae3is_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae3is_write, + .write128fn =3D tlbi_aa64_vae3is_write128 }, { .name =3D "TLBI_VALE3OS", .state =3D ARM_CP_STATE_AA64, .opc0 =3D 1, .opc1 =3D 6, .crn =3D 8, .crm =3D 1, .opc2 =3D 5, - .access =3D PL3_W, .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS, - .writefn =3D tlbi_aa64_vae3is_write }, + .access =3D PL3_W, + .type =3D ARM_CP_NO_RAW | ARM_CP_ADD_TLBI_NXS | ARM_CP_128BIT, + .writefn =3D tlbi_aa64_vae3is_write, + .write128fn =3D tlbi_aa64_vae3is_write128 }, }; =20 static void tlbi_aa64_paall_write(CPUARMState *env, const ARMCPRegInfo *ri, --=20 2.43.0 From nobody Fri Nov 14 18:17:45 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=1760472611; cv=none; d=zohomail.com; s=zohoarc; b=Y8U0lf2+2N6uFaqCdvJwC0joIKbzFi4nSMo9lCmHQs/0uZtVZHhDHv+4GvzrrrtRMOCWPzaF+UcGrbAjvJR5YTv5YK3WowtNeYuERVqwM3prNdwZOvZKdWIu+8z8CKvCaVvrDLhAvjdXkTsdeJ8CMQxZcJ/jJAMLjkxtbAdtxPk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1760472611; 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=TvgyMGsMGCO23ydvUvmFS9TDLif2EzsiRI0mh1tWq9w=; b=kDR/sh2c8E844ZtjUZshYzBj6qB5DLv5sYYKSlb/Wus/+sphUEOBTOXdwEXWpDzfry+axJctkZu8igWdUSJNR72U475tMiGBRDYK5YiqW3K2KS7Fh08Pbt4PrzWnVy6qFW99k0st8IxLBdZG37HgHrqAhMT444uVeAngafBDluI= 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 1760472611015953.7890441133992; Tue, 14 Oct 2025 13:10:11 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v8lKX-0003EM-O6; Tue, 14 Oct 2025 16:09:09 -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 1v8lKP-00032X-Jl for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:09:02 -0400 Received: from mail-pl1-x62f.google.com ([2607:f8b0:4864:20::62f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1v8lJE-0005Rs-Tw for qemu-devel@nongnu.org; Tue, 14 Oct 2025 16:09:00 -0400 Received: by mail-pl1-x62f.google.com with SMTP id d9443c01a7336-27d3540a43fso56645995ad.3 for ; Tue, 14 Oct 2025 13:07:48 -0700 (PDT) Received: from stoup.. ([71.212.157.132]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-29034f93ea2sm172100975ad.126.2025.10.14.13.07.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 14 Oct 2025 13:07:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760472465; x=1761077265; 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=TvgyMGsMGCO23ydvUvmFS9TDLif2EzsiRI0mh1tWq9w=; b=nPYPsRamvZ8hlVtY2m+B5XLaXGgIoVfAjbvi4xYx6Z5G578qQTV7YBoonx3RZ7vKLa eVJAfavytHG20o+5831rBXlRC95+Zftlr5fefO7pMzNpdqzZh/qvDsUfhi96qQwD6Caq BfFbm7anAzRZOtqMZcQN3AW3zbTOwtkPFudTQvI5dtNmwGBvI8TF3yRhV1+I866S1AFE dmxhb21efoufROn1TJIZV+h7dEAv8Myhz8Zjcdq+bwmoZ+X8RqpFLpWhZv82a3dPnxgb f2pS5/ObLZWtuiwIyEE42XYw4dmlrmPJ85748/KNhDaOEE04OUzmgyxt1/r6ckdI+LAT qU3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760472465; x=1761077265; 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=TvgyMGsMGCO23ydvUvmFS9TDLif2EzsiRI0mh1tWq9w=; b=rq+cs/zVeVFAZD55Gr94Xy9Gt4eWTxB7Z25iiMJwoFet+c1eTwGxV6ag6qKtObdj90 waxvmViUbwIZJjwYFxCFKgBEldpTAnUvF+7UHn7dWBZRbud4mqieyw9ypwD3WeHG3aLY JxocWfmscEo14FyKJ1sDtdqfNO8szRj7UXO0uZuVgKCPs10oTweMTW0XN4XLw/JeXYKy A/d4e5NZSzSTwausdM2nJiIvV2bIO5ovp7kUIF7tdaepMF81sB4MeNTpJBabxsJWUixx gRwBv1LDjWeoyElWQqcUQ0rQiQxxwS8+ElpJyMCBkqNDxSTPS6ptYpaf3PNz3HIAr1G6 2G9Q== X-Gm-Message-State: AOJu0YzUjdLOj6eaeBn2hK5xcRlv4309UP4ZjwuTUf8SES4u9g5WiufU SUjdysel3WDroxbg1d9JANq6QV167oryKWQIEGLpd7KGjY6PD1i9aKGRuI3rEmO7K34Uw80xCUQ Zkwieqow= X-Gm-Gg: ASbGncvzu/KssmaFnBIXX92sNKBWU1byxxDDK9ObyFN5AlHfaH7tEWflGmRkljEdVL1 j7vBS3EsWc0uLAwZc1bbUfxoqiChEQUDgRn15w1okpjeKNWhlrAVq3bL6FR17wVdq9w3elx22ff LcDPclpssxLje/2E1Ccb/yrUA4nr91Fplvw0vGH+ij3v92+X29tApjzn7uN1ntB7eollExLaVaW dv4TQyyQh7w9S/hOjras9IuEWNhgV24UcRipAz8aKJNkMCE6enrq4N/GHv6ZLX3+7Dehy25uRa6 fmfYJINJ1zI3ikitr93dw3p8XQZMahwms15NvwX5Ui1iPjg8G2DgIR+m5laObKE0zK9W0MTk9RC 3/pfcmWjMI3HoM7JxRR5sigDIFakRFx70/qSnXacMuRB0M70Vjcg= X-Google-Smtp-Source: AGHT+IGVUSlOtmXSrAxpQFUx/nQbqRv0knhx1iUsgwfzkGZuiIlN6uD8MrHUMp+SW/2gAqy1lODlWg== X-Received: by 2002:a17:902:e943:b0:264:f714:8dce with SMTP id d9443c01a7336-290272c2542mr318983735ad.36.1760472465174; Tue, 14 Oct 2025 13:07:45 -0700 (PDT) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 37/37] NOTFORMERGE: Enable FEAT_SYSREG128, FEAT_SYSINSTR128 for cpu max Date: Tue, 14 Oct 2025 13:07:18 -0700 Message-ID: <20251014200718.422022-38-richard.henderson@linaro.org> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20251014200718.422022-1-richard.henderson@linaro.org> References: <20251014200718.422022-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::62f; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x62f.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: 1760472612600154100 Content-Type: text/plain; charset="utf-8" Do not merge yet, because both of these are enabled if and only if FEAT_D128 is also enabled. Signed-off-by: Richard Henderson --- target/arm/tcg/cpu64.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/target/arm/tcg/cpu64.c b/target/arm/tcg/cpu64.c index 6871956382..058d5c0ec1 100644 --- a/target/arm/tcg/cpu64.c +++ b/target/arm/tcg/cpu64.c @@ -1254,6 +1254,8 @@ void aarch64_max_tcg_initfn(Object *obj) t =3D FIELD_DP64(t, ID_AA64ISAR2, WFXT, 2); /* FEAT_WFxT */ t =3D FIELD_DP64(t, ID_AA64ISAR2, CSSC, 1); /* FEAT_CSSC */ t =3D FIELD_DP64(t, ID_AA64ISAR2, ATS1A, 1); /* FEAT_ATS1A */ + t =3D FIELD_DP64(t, ID_AA64ISAR2, SYSREG_128, 1); /* FEAT_SYSREG128 = */ + t =3D FIELD_DP64(t, ID_AA64ISAR2, SYSINSTR_128, 1); /* FEAT_SYSINSTR12= 8 */ SET_IDREG(isar, ID_AA64ISAR2, t); =20 t =3D GET_IDREG(isar, ID_AA64PFR0); --=20 2.43.0