From patchwork Tue Mar 25 06:50:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 875993 Delivered-To: patch@linaro.org Received: by 2002:a5d:5f4c:0:b0:38f:210b:807b with SMTP id cm12csp2505345wrb; Mon, 24 Mar 2025 23:59:43 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCX479cTRFBHkvKmJRtmuqto7/JPVcYZG21pTrH4+rOv5ho3YLsA/p1DWc7l6+s/ntjiP5KdZA==@linaro.org X-Google-Smtp-Source: AGHT+IFQUTYL/RNg343JeQixcA0nVotZJhpeSBXbYPkTvx3SQOepucY2h5rzrTqn5sEx3VunFVL8 X-Received: by 2002:a05:6000:184b:b0:391:3998:2660 with SMTP id ffacd0b85a97d-3997f8ee94amr10732601f8f.7.1742885982956; Mon, 24 Mar 2025 23:59:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1742885982; cv=none; d=google.com; s=arc-20240605; b=BGrO3rKohL/Rtsivo/lGKHnV9Q0AIKHs+yasMbdwfgxKBgZmySj2XGd0I3JxwNPKLR JuwUMEmvqFNXqtyBSiernZcvXpxbSdjMEeU1cr/dT/hIQKXuvWfAkcb/muyHSabrPQ1E er1M5rbhBLyQRnQ7I89B/rKAEx6N+rTZLY8pw243IiT7Z2b+YS+91KRumjmXkbvg3iuX lVKVxCvv/Vd2h3rDarF43aVqHcW6puegsaq546wBp34LuIt9cYLHhiEnzQhlxSUEUCCO IJhJC17PVapVwjBjwMkXT7panI97bMOH2x0n0eCvyvNjwb/KRuJLzCJVGam+miGzwU4t /LdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=VLajco+y1GSRuWN2kh5FgrMELO2+USJSEFAFmu706sI=; fh=5oVmStqGuoGWv45/EbxONKrPK29uvxtzTFtoCqy9TIA=; b=Cpz2ldLcwQBe7Bj0KNNJ26briHT0NIiPPlmjWx81/PTvLoTRqZXF8eKFT4KAdMUuL+ NZISIVfmSp7RGIeRehdFij/qdSaaZgj7sztwoMUBjJKEyWbV51dhLOB6Ets9MX7v9ng9 wBoagd53qPYhcfUH3RPIpQ/odCQnAKy6yeUuh4ACP3k2/nuoiY6Wz8w98tPE4PsLsXUa pjAR+9mAXrSMRV4TfM2YkHYiMH7rQfq+5isAea5kdCk4ej1WopLL3OzVO9rq+XLZW3+K u0RjNcok8a1hxurT9jWPzQBfdgyU6+ff0V1nPxUKaCQNAPHrnrCBuRxwtgV7AYBxG/77 ATSw==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ffacd0b85a97d-3997f9d0375si7207230f8f.366.2025.03.24.23.59.42 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 24 Mar 2025 23:59:42 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1twy7f-0004XR-5t; Tue, 25 Mar 2025 02:50: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 1twy7b-0004Wk-Ud; Tue, 25 Mar 2025 02:50:47 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1twy7Z-0001cL-Qu; Tue, 25 Mar 2025 02:50:47 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 974F1107D60; Tue, 25 Mar 2025 09:49:21 +0300 (MSK) Received: from gandalf.tls.msk.ru (mjt.wg.tls.msk.ru [192.168.177.130]) by tsrv.corpit.ru (Postfix) with ESMTP id 39E241D5E6F; Tue, 25 Mar 2025 09:50:31 +0300 (MSK) Received: by gandalf.tls.msk.ru (Postfix, from userid 1000) id 2DAA757026; Tue, 25 Mar 2025 09:50:31 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Phil Dennis-Jordan , Michael Tokarev Subject: [Stable-7.2.17 27/34] ui/cocoa: Temporarily ignore annoying deprecated declaration warnings Date: Tue, 25 Mar 2025 09:50:22 +0300 Message-Id: <20250325065031.3263718-1-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Philippe Mathieu-Daudé These warnings are breaking some build configurations since 2 months now (https://gitlab.com/qemu-project/qemu/-/issues/2575): ui/cocoa.m:662:14: error: 'CVDisplayLinkCreateWithCGDisplay' is deprecated: first deprecated in macOS 15.0 - use NSView.displayLink(target:selector:), NSWindow.displayLink(target:selector:), or NSScreen.displayLink(target:selector:) [-Werror,-Wdeprecated-declarations] 662 | if (!CVDisplayLinkCreateWithCGDisplay(display, &displayLink)) { | ^ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVDisplayLink.h:89:20: note: 'CVDisplayLinkCreateWithCGDisplay' has been explicitly marked deprecated here 89 | CV_EXPORT CVReturn CVDisplayLinkCreateWithCGDisplay( | ^ ui/cocoa.m:663:29: error: 'CVDisplayLinkGetNominalOutputVideoRefreshPeriod' is deprecated: first deprecated in macOS 15.0 - use NSView.displayLink(target:selector:), NSWindow.displayLink(target:selector:), or NSScreen.displayLink(target:selector:) [-Werror,-Wdeprecated-declarations] 663 | CVTime period = CVDisplayLinkGetNominalOutputVideoRefreshPeriod(displayLink); | ^ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVDisplayLink.h:182:18: note: 'CVDisplayLinkGetNominalOutputVideoRefreshPeriod' has been explicitly marked deprecated here 182 | CV_EXPORT CVTime CVDisplayLinkGetNominalOutputVideoRefreshPeriod( CVDisplayLinkRef CV_NONNULL displayLink ); | ^ ui/cocoa.m:664:13: error: 'CVDisplayLinkRelease' is deprecated: first deprecated in macOS 15.0 - use NSView.displayLink(target:selector:), NSWindow.displayLink(target:selector:), or NSScreen.displayLink(target:selector:) [-Werror,-Wdeprecated-declarations] 664 | CVDisplayLinkRelease(displayLink); | ^ /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/CoreVideo.framework/Headers/CVDisplayLink.h:249:16: note: 'CVDisplayLinkRelease' has been explicitly marked deprecated here 249 | CV_EXPORT void CVDisplayLinkRelease( CV_RELEASES_ARGUMENT CVDisplayLinkRef CV_NULLABLE displayLink ); | ^ 3 errors generated. For the next release, ignore the warnings using #pragma directives. At least until we figure the correct new API usage. Signed-off-by: Philippe Mathieu-Daudé Reviewed-by: Phil Dennis-Jordan Tested-by: Phil Dennis-Jordan Message-Id: <20241121131954.98949-1-philmd@linaro.org> (cherry picked from commit 9cf6e41fe293dd56089faac94c36ff5cb3d96726) Signed-off-by: Michael Tokarev diff --git a/ui/cocoa.m b/ui/cocoa.m index c41689e951..54acf14794 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -549,6 +549,9 @@ - (void) setContentDimensions } } +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + - (void) updateUIInfoLocked { /* Must be called with the iothread lock, i.e. via updateUIInfo */ @@ -594,6 +597,8 @@ - (void) updateUIInfoLocked dpy_set_ui_info(dcl.con, &info, TRUE); } +#pragma clang diagnostic pop + - (void) updateUIInfo { if (!allow_events) { From patchwork Tue Mar 25 06:50:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 875989 Delivered-To: patch@linaro.org Received: by 2002:a5d:5f4c:0:b0:38f:210b:807b with SMTP id cm12csp2504590wrb; Mon, 24 Mar 2025 23:56:03 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXqPRqT7/1APVeo5ZBFAA0rZEqaJdC3Z7FXhCJXFU5j3WUFSNp6td6n5Q/C6M+zcomvsmWHyQ==@linaro.org X-Google-Smtp-Source: AGHT+IFKa3Ln/gj9REFQT+qrZs1kvSImCOGmZ8mNVGJrAlY/J0T6GMqJ+xpBLhLmJL7C2NIn/U2L X-Received: by 2002:a5d:64a8:0:b0:391:4914:3c6a with SMTP id ffacd0b85a97d-3997f913190mr13751470f8f.29.1742885762870; Mon, 24 Mar 2025 23:56:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1742885762; cv=none; d=google.com; s=arc-20240605; b=ViuoUcYqOc3bEjQzDsYDfvhxGmTSOuKJlwVsm8WmX4gEp5XuBvBiuYryplmYztUAlJ 4PCKUniEd/xuFzQ+G1YUiNEROPN8CJbYdidF4Bw0+rEG9ESxcWdh74ncHFC6Ir0HSe+x I/rA6P5WImrlT7cenNLCHfjqfkgthYScRtFbeyRuJ+sj4V9YIH0UmMdTX8Hfrn/fzHe0 4MkCX+8lKVMvDOAekCVVvfWcwULopQyJro05GqF4tR+6aChhWli0hBRrt7vE/AqsV1dB ykykkUfskmUXxGjqczm4fxTDTNgR73A/EYvodcWfeJsnIJAyF4tjkOMB2G3Ny9Vq/UZA X2Tg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=SEOzHDbijm3nml7DmPfsZTpnmEC+zVjDxAZyDpAupfg=; fh=NoJ7n5JVE2hviRF6uNBFRIJvWH7igafuy1AIwg26ToM=; b=I8db7t+wjz23aMusJfUXRd0BMn7qeSLTTzukW27KPerV/sbRjT88vz/GGBeBIWaY1f yMBRDXjhCPw464Di/WJzONEJnppY/relb4sOItz5omYzaDOOJUQRES44JI/ZBCVyUovt UvKGfDRiU3D2UmN5PXX1kyQvfUeq3tWvvMyk181nV0pHuJJToKNQ0VljXWm2OEG0TPJH I1u6Q0EAjxzl1hx4FUS26PwyfCvbs8cIjYJJvhQwmN1OR16DkbGEIBENV/BR+rOskBc7 US8Of5itEH/Xkr/eHboM5iIXb2EJeQAhTmUCdwYjrV6UYBtO3R6axCFfRVBw0xIYjmr6 Hw3Q==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ffacd0b85a97d-3997f9e383asi7010782f8f.780.2025.03.24.23.56.02 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 24 Mar 2025 23:56:02 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1twy7h-0004YZ-3W; Tue, 25 Mar 2025 02:50: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 1twy7f-0004Y7-LY; Tue, 25 Mar 2025 02:50:51 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1twy7d-0001dQ-B0; Tue, 25 Mar 2025 02:50:51 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id 9EF2C107D62; Tue, 25 Mar 2025 09:49:21 +0300 (MSK) Received: from gandalf.tls.msk.ru (mjt.wg.tls.msk.ru [192.168.177.130]) by tsrv.corpit.ru (Postfix) with ESMTP id 41B5B1D5E71; Tue, 25 Mar 2025 09:50:31 +0300 (MSK) Received: by gandalf.tls.msk.ru (Postfix, from userid 1000) id 3313F5702A; Tue, 25 Mar 2025 09:50:31 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Richard Henderson , Peter Maydell , Michael Tokarev Subject: [Stable-7.2.17 29/34] target/arm: Make DisasContext.{fp, sve}_access_checked tristate Date: Tue, 25 Mar 2025 09:50:24 +0300 Message-Id: <20250325065031.3263718-3-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Richard Henderson The check for fp_excp_el in assert_fp_access_checked is incorrect. For SME, with StreamingMode enabled, the access is really against the streaming mode vectors, and access to the normal fp registers is allowed to be disabled. C.f. sme_enabled_check. Convert sve_access_checked to match, even though we don't currently check the exception state. Cc: qemu-stable@nongnu.org Fixes: 3d74825f4d6 ("target/arm: Add SME enablement checks") Signed-off-by: Richard Henderson Message-id: 20250307190415.982049-2-richard.henderson@linaro.org Reviewed-by: Peter Maydell Signed-off-by: Peter Maydell (cherry picked from commit 298a04998fa4a6dc977abe9234d98dfcdab98423) (Mjt: minor context fix in target/arm/tcg/translate.h, target/arm/tcg/translate-a64.c is target/arm/translate-a64.c) Signed-off-by: Michael Tokarev diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index f0b8db7ce5..00463a1e35 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -1176,14 +1176,14 @@ static bool fp_access_check_only(DisasContext *s) { if (s->fp_excp_el) { assert(!s->fp_access_checked); - s->fp_access_checked = true; + s->fp_access_checked = -1; gen_exception_insn_el(s, 0, EXCP_UDEF, syn_fp_access_trap(1, 0xe, false, 0), s->fp_excp_el); return false; } - s->fp_access_checked = true; + s->fp_access_checked = 1; return true; } @@ -1217,13 +1217,13 @@ bool sve_access_check(DisasContext *s) syn_sve_access_trap(), s->sve_excp_el); goto fail_exit; } - s->sve_access_checked = true; + s->sve_access_checked = 1; return fp_access_check(s); fail_exit: /* Assert that we only raise one exception per instruction. */ assert(!s->sve_access_checked); - s->sve_access_checked = true; + s->sve_access_checked = -1; return false; } @@ -1252,8 +1252,9 @@ bool sme_enabled_check(DisasContext *s) * sme_excp_el by itself for cpregs access checks. */ if (!s->fp_excp_el || s->sme_excp_el < s->fp_excp_el) { - s->fp_access_checked = true; - return sme_access_check(s); + bool ret = sme_access_check(s); + s->fp_access_checked = (ret ? 1 : -1); + return ret; } return fp_access_check_only(s); } @@ -14870,8 +14871,8 @@ static void aarch64_tr_translate_insn(DisasContextBase *dcbase, CPUState *cpu) s->insn = insn; s->base.pc_next = pc + 4; - s->fp_access_checked = false; - s->sve_access_checked = false; + s->fp_access_checked = 0; + s->sve_access_checked = 0; if (s->pstate_il) { /* diff --git a/target/arm/translate-a64.h b/target/arm/translate-a64.h index ad3762d1ac..f01d2d973c 100644 --- a/target/arm/translate-a64.h +++ b/target/arm/translate-a64.h @@ -66,7 +66,7 @@ TCGv_i64 gen_mte_checkN(DisasContext *s, TCGv_i64 addr, bool is_write, static inline void assert_fp_access_checked(DisasContext *s) { #ifdef CONFIG_DEBUG_TCG - if (unlikely(!s->fp_access_checked || s->fp_excp_el)) { + if (unlikely(s->fp_access_checked <= 0)) { fprintf(stderr, "target-arm: FP access check missing for " "instruction 0x%08x\n", s->insn); abort(); diff --git a/target/arm/translate.h b/target/arm/translate.h index 3cdc7dbc2f..3856df8060 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -85,15 +85,19 @@ typedef struct DisasContext { uint64_t features; /* CPU features bits */ bool aarch64; bool thumb; - /* Because unallocated encodings generate different exception syndrome + /* + * Because unallocated encodings generate different exception syndrome * information from traps due to FP being disabled, we can't do a single * "is fp access disabled" check at a high level in the decode tree. * To help in catching bugs where the access check was forgotten in some * code path, we set this flag when the access check is done, and assert * that it is set at the point where we actually touch the FP regs. + * 0: not checked, + * 1: checked, access ok + * -1: checked, access denied */ - bool fp_access_checked; - bool sve_access_checked; + int8_t fp_access_checked; + int8_t sve_access_checked; /* ARMv8 single-step state (this is distinct from the QEMU gdbstub * single-step support). */ From patchwork Tue Mar 25 06:50:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tokarev X-Patchwork-Id: 875987 Delivered-To: patch@linaro.org Received: by 2002:a5d:5f4c:0:b0:38f:210b:807b with SMTP id cm12csp2504101wrb; Mon, 24 Mar 2025 23:54:03 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXYDAJe1fCEQdW6jN4xlGV4Tt3o3IOHaT5+Thrz78w0BLS1PcCAqNzmEtXOG/yaj0Aanpz+Yg==@linaro.org X-Google-Smtp-Source: AGHT+IHoxp1ewGYQrBQCWQk6Cs4a+nu7jn98TVajl8TCstIwP7fN3XCfrweooVy/2gjU9AT1061e X-Received: by 2002:a5d:584f:0:b0:38d:e0a9:7e5e with SMTP id ffacd0b85a97d-399795567ebmr17047347f8f.6.1742885643626; Mon, 24 Mar 2025 23:54:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1742885643; cv=none; d=google.com; s=arc-20240605; b=QEAUy+Y90R6b36AkPW010cQeLwBaasBUvl3w3eI0NMH+RoYj8+zBheYQfP6GDhoR8Q BS+DrR8TE5dOShptM+xe9CtcRGQW2GK+OPE9QwiCGlz1sS2VvPJfjKklA+vJXsIF0s3/ JFhdKaICqmeCevEZCEwATmSC7+vtEZzs2P80YcIDkNWw7jQZY7n4/t+/ZujsxxYjbZt+ Zq1j6FjkOWDX/+UONQ46pltpc4sheAFJBbDDKLvMZwDD5onTgJFah8z62087KNwmTCsA fr0RXRJgBEFmGOektA0FL0avId/FXPhWW6vFSVb1nHYOidhF/LN9cpAWt5EnqAWyovKX 5+Nw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=0Rf5r/GAkATvkh9P61nsErZk+v07DWDDGqmhVIjYPz4=; fh=NoJ7n5JVE2hviRF6uNBFRIJvWH7igafuy1AIwg26ToM=; b=j6d66k1cK+Q2pcZqmqPKAw8RQUJzqafp7JFIVtOqWKQVIZeShTuSAg9DIOzpj9BOky imBpRQGVzr11OcmMmEYIThCujITtaf9SL0kTYFqPgb5NIPa7I5UVF1oUZID1XSrKrGxb VOsiNDxGqwq7YPhuvKM+AbXIC4zxPy4HPUzM4/cvqARpKlM7uBHCZAwKK9SA6ccWkujK HSPb9NCtW2IuWL9tlwlmh2wJE87Ff/Ngs+d6xHSnj1c35CwZFY69+SgY/wYa/IM4fN9T RTfYsw6ux2BEqFL2mVageqKz0p/JgJ9VQt9IUwzXC9/iGFLGzBGxNXzqSlqQqD05Zs/T UjNg==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Return-Path: Received: from lists.gnu.org (lists.gnu.org. [209.51.188.17]) by mx.google.com with ESMTPS id ffacd0b85a97d-3997f97d20csi7098897f8f.32.2025.03.24.23.54.03 for (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 24 Mar 2025 23:54:03 -0700 (PDT) Received-SPF: pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; Authentication-Results: mx.google.com; spf=pass (google.com: domain of qemu-devel-bounces+patch=linaro.org@nongnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom="qemu-devel-bounces+patch=linaro.org@nongnu.org" Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1twy7m-0004cg-Eg; Tue, 25 Mar 2025 02:50:58 -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 1twy7k-0004Zu-IJ; Tue, 25 Mar 2025 02:50:56 -0400 Received: from isrv.corpit.ru ([86.62.121.231]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1twy7i-0001eN-Fn; Tue, 25 Mar 2025 02:50:56 -0400 Received: from tsrv.corpit.ru (tsrv.tls.msk.ru [192.168.177.2]) by isrv.corpit.ru (Postfix) with ESMTP id A2CEF107D63; Tue, 25 Mar 2025 09:49:21 +0300 (MSK) Received: from gandalf.tls.msk.ru (mjt.wg.tls.msk.ru [192.168.177.130]) by tsrv.corpit.ru (Postfix) with ESMTP id 459541D5E72; Tue, 25 Mar 2025 09:50:31 +0300 (MSK) Received: by gandalf.tls.msk.ru (Postfix, from userid 1000) id 3596A5702C; Tue, 25 Mar 2025 09:50:31 +0300 (MSK) From: Michael Tokarev To: qemu-devel@nongnu.org Cc: qemu-stable@nongnu.org, Richard Henderson , Peter Maydell , Michael Tokarev Subject: [Stable-7.2.17 30/34] target/arm: Simplify pstate_sm check in sve_access_check Date: Tue, 25 Mar 2025 09:50:25 +0300 Message-Id: <20250325065031.3263718-4-mjt@tls.msk.ru> X-Mailer: git-send-email 2.39.5 In-Reply-To: References: MIME-Version: 1.0 Received-SPF: pass client-ip=86.62.121.231; envelope-from=mjt@tls.msk.ru; helo=isrv.corpit.ru X-Spam_score_int: -68 X-Spam_score: -6.9 X-Spam_bar: ------ X-Spam_report: (-6.9 / 5.0 requ) BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, 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+patch=linaro.org@nongnu.org Sender: qemu-devel-bounces+patch=linaro.org@nongnu.org From: Richard Henderson In StreamingMode, fp_access_checked is handled already. We cannot fall through to fp_access_check lest we fall foul of the double-check assertion. Cc: qemu-stable@nongnu.org Fixes: 285b1d5fcef ("target/arm: Handle SME in sve_access_check") Signed-off-by: Richard Henderson Message-id: 20250307190415.982049-3-richard.henderson@linaro.org Reviewed-by: Peter Maydell [PMM: move declaration of 'ret' to top of block] Signed-off-by: Peter Maydell (cherry picked from commit cc7abc35dfa790ba6c20473c03745428c1c626b6) (Mjt: target/arm/tcg/translate-a64.c is target/arm/translate-a64.c) Signed-off-by: Michael Tokarev diff --git a/target/arm/translate-a64.c b/target/arm/translate-a64.c index 00463a1e35..190574cb29 100644 --- a/target/arm/translate-a64.c +++ b/target/arm/translate-a64.c @@ -1208,23 +1208,23 @@ static bool fp_access_check(DisasContext *s) bool sve_access_check(DisasContext *s) { if (s->pstate_sm || !dc_isar_feature(aa64_sve, s)) { + bool ret; + assert(dc_isar_feature(aa64_sme, s)); - if (!sme_sm_enabled_check(s)) { - goto fail_exit; - } - } else if (s->sve_excp_el) { + ret = sme_sm_enabled_check(s); + s->sve_access_checked = (ret ? 1 : -1); + return ret; + } + if (s->sve_excp_el) { + /* Assert that we only raise one exception per instruction. */ + assert(!s->sve_access_checked); gen_exception_insn_el(s, 0, EXCP_UDEF, syn_sve_access_trap(), s->sve_excp_el); - goto fail_exit; + s->sve_access_checked = -1; + return false; } s->sve_access_checked = 1; return fp_access_check(s); - - fail_exit: - /* Assert that we only raise one exception per instruction. */ - assert(!s->sve_access_checked); - s->sve_access_checked = -1; - return false; } /*