From nobody Tue May 14 16:46:21 2024 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=1676946163; cv=none; d=zohomail.com; s=zohoarc; b=Pgf12auEZIuFBC0Ot8oRRQGmWblJHx81iBPbL4H63XJ0aTIdLyio/6XLZ/ZGyDqaJKMlM1l7Ql4Afx5t7QXf6WqoC7iwTVU9JPUdIaN9CYNQjXKeNNLWOV04wD4uKiuo81uwJt8ncLuipmdeSEqhm2mGGk6HtltZL/1YKjWsax4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946163; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=FenKak9v2X2vdqlU4pPM5lEm81DvM/co942SULkbTsQ=; b=d9276aTOHUsxBJZRmkglo8iy5XoKGtf96IZ1DxR5NloQdo6RUnMJJ0aj6FlrUdcjbGoozHOwz8ehXpnu1IJlb5HuDo3Fwpkue66moPMgeECbit5BI8IQ16VAdRk0sYih2wwrQUzue1Di3bAgb3qdxgncbJ3/SnjVna4sP9fKmJo= 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 1676946163225262.1801561913011; Mon, 20 Feb 2023 18:22:43 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGA-0001ZZ-68; Mon, 20 Feb 2023 21:20:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIG8-0001YO-QC for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:00 -0500 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIG6-00080p-Df for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:00 -0500 Received: by mail-pj1-x1029.google.com with SMTP id nw10-20020a17090b254a00b00233d7314c1cso3357528pjb.5 for ; Mon, 20 Feb 2023 18:19:57 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.19.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:19:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=FenKak9v2X2vdqlU4pPM5lEm81DvM/co942SULkbTsQ=; b=h2cmN2MAT2x9FSWOCa73jPOVTEfLnRERZv1Zri+6vw3ThDvwZaVVxli+6O5Pm2y3DQ XoHTnB0Qt0xH+u8kmc14mwL10lWGH3nx9MxNL7tZrB8nS9cTZ1i+SFT34bSy6J0OpGN9 gUCca22uCYe4NIB00Xh6dbgbEHU4PtWqb1x2FJqSlbHrDCibxzryTn/kJaz0Fp1Hk6yF uZsPF3tBJQdJwzcZtu0JPw0Gv5jvuy/wxsRwBYfx0wJAHvXR6XQxB71j0wC4EFHKW33m ThaL5K6xsy/n0x6V61di5PjRU4O+dvDocSkeSHzi0PzRDUSkawyVL/e1HLBwa3WXSKTe NdIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=FenKak9v2X2vdqlU4pPM5lEm81DvM/co942SULkbTsQ=; b=vXDRyeImmsixv0BOoOgE0zd4icf3T0y6n7jefRyp/UVnTlHlyxv0ba+voc6BSuU3JF 6mImyfteJzqjJs8QkHElVSNbm/omv7Ev67SjDyaLjnmaLLXybAH8GF7n/b8PwowRdjdX jRS5T1wALYT2FfQjfZMjOR7tEGjeso0Jl7iLpLwxVzY+Azr5gwzysm/Nekd/2Z43PLV1 iYwD0LWcPSbszcPd+XwcBDHTsamdCBMtjqJwSWjWzaAwAJU8nP0GXn9dwF2qdQgeasNF ltSz8VWn6dL5nsTtl6G+wHPy+Wodk11aAOllZHD6glgi1GNbCpy/9nAIZHHWLYgCOKq4 j1sA== X-Gm-Message-State: AO0yUKVmZ8FrKyFmamUR7A+2DmeXV7Fyh5OzIKEgV4EZ7qFehco/u+4d HgCPmU9MhpZ2YX8kAba+QTerq6rtvgMNRqJAOSk= X-Google-Smtp-Source: AK7set9wCeq0uxxnflOBFo1rslbIbCqpBlh7AMVUcJPl4kUR3RVBRY72t6QHo0iHas46t7nBBbaz0A== X-Received: by 2002:a17:903:1106:b0:19a:8284:83a6 with SMTP id n6-20020a170903110600b0019a828483a6mr2930608plh.56.1676945996863; Mon, 20 Feb 2023 18:19:56 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Fabiano Rosas Subject: [PATCH v2 01/14] target/arm: Normalize aarch64 gdbstub get/set function names Date: Mon, 20 Feb 2023 16:19:38 -1000 Message-Id: <20230221021951.453601-2-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.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: 1676946164956100011 Content-Type: text/plain; charset="utf-8" Make the form of the function names between fp and sve the same: - arm_gdb_*_svereg -> aarch64_gdb_*_sve_reg. - aarch64_fpu_gdb_*_reg -> aarch64_gdb_*_fpu_reg. Reviewed-by: Fabiano Rosas Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/internals.h | 8 ++++---- target/arm/gdbstub.c | 9 +++++---- target/arm/gdbstub64.c | 8 ++++---- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index 759b70c646..121ecd420b 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1326,10 +1326,10 @@ static inline uint64_t pmu_counter_mask(CPUARMState= *env) } =20 #ifdef TARGET_AARCH64 -int arm_gdb_get_svereg(CPUARMState *env, GByteArray *buf, int reg); -int arm_gdb_set_svereg(CPUARMState *env, uint8_t *buf, int reg); -int aarch64_fpu_gdb_get_reg(CPUARMState *env, GByteArray *buf, int reg); -int aarch64_fpu_gdb_set_reg(CPUARMState *env, uint8_t *buf, int reg); +int aarch64_gdb_get_sve_reg(CPUARMState *env, GByteArray *buf, int reg); +int aarch64_gdb_set_sve_reg(CPUARMState *env, uint8_t *buf, int reg); +int aarch64_gdb_get_fpu_reg(CPUARMState *env, GByteArray *buf, int reg); +int aarch64_gdb_set_fpu_reg(CPUARMState *env, uint8_t *buf, int reg); void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp); void arm_cpu_sme_finalize(ARMCPU *cpu, Error **errp); void arm_cpu_pauth_finalize(ARMCPU *cpu, Error **errp); diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index 2f806512d0..cf1c01e3cf 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -466,12 +466,13 @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *c= pu) */ #ifdef TARGET_AARCH64 if (isar_feature_aa64_sve(&cpu->isar)) { - gdb_register_coprocessor(cs, arm_gdb_get_svereg, arm_gdb_set_s= vereg, - arm_gen_dynamic_svereg_xml(cs, cs->gd= b_num_regs), + int nreg =3D arm_gen_dynamic_svereg_xml(cs, cs->gdb_num_regs); + gdb_register_coprocessor(cs, aarch64_gdb_get_sve_reg, + aarch64_gdb_set_sve_reg, nreg, "sve-registers.xml", 0); } else { - gdb_register_coprocessor(cs, aarch64_fpu_gdb_get_reg, - aarch64_fpu_gdb_set_reg, + gdb_register_coprocessor(cs, aarch64_gdb_get_fpu_reg, + aarch64_gdb_set_fpu_reg, 34, "aarch64-fpu.xml", 0); } #endif diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index 07a6746944..c598cb0375 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -72,7 +72,7 @@ int aarch64_cpu_gdb_write_register(CPUState *cs, uint8_t = *mem_buf, int n) return 0; } =20 -int aarch64_fpu_gdb_get_reg(CPUARMState *env, GByteArray *buf, int reg) +int aarch64_gdb_get_fpu_reg(CPUARMState *env, GByteArray *buf, int reg) { switch (reg) { case 0 ... 31: @@ -92,7 +92,7 @@ int aarch64_fpu_gdb_get_reg(CPUARMState *env, GByteArray = *buf, int reg) } } =20 -int aarch64_fpu_gdb_set_reg(CPUARMState *env, uint8_t *buf, int reg) +int aarch64_gdb_set_fpu_reg(CPUARMState *env, uint8_t *buf, int reg) { switch (reg) { case 0 ... 31: @@ -116,7 +116,7 @@ int aarch64_fpu_gdb_set_reg(CPUARMState *env, uint8_t *= buf, int reg) } } =20 -int arm_gdb_get_svereg(CPUARMState *env, GByteArray *buf, int reg) +int aarch64_gdb_get_sve_reg(CPUARMState *env, GByteArray *buf, int reg) { ARMCPU *cpu =3D env_archcpu(env); =20 @@ -164,7 +164,7 @@ int arm_gdb_get_svereg(CPUARMState *env, GByteArray *bu= f, int reg) return 0; } =20 -int arm_gdb_set_svereg(CPUARMState *env, uint8_t *buf, int reg) +int aarch64_gdb_set_sve_reg(CPUARMState *env, uint8_t *buf, int reg) { ARMCPU *cpu =3D env_archcpu(env); =20 --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946099; cv=none; d=zohomail.com; s=zohoarc; b=LW0bPyLqBe2c47CNDbSmKeUbF7TfJy2RlsugYK4P7iV1ZMwQUd5GmCUtS7ycXR4uBq96pno52CXGuxfaW6PzA21BG/1So5diOK4GRuASsR1KPDoO0sUyDKEZu/nROp4r5Tfw8SgvHxLgh29P3ZuGYsgxudk8aYs5MahFdppxA+w= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946099; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=djjsEwG4h18wUlaauxZhuGg1KAW+4WF9EJYa6EDlD74=; b=HPZfr/N1G8BJd9nwBrwvM4l/OG9v7LTkuzzmwNSPrxSao2RxRsb1DHWyKOKW2jvzRVx6Ee22P6zJ00ItpswV2r7DjYPGF48nkwxhnt9w5JjURqtPS+caoZ7bVMH7lNix/1PMQXfpDJKKwne1byj3rbO6DmtV5SQ5s/Wmrfn/A6s= 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 16769460994241002.0473396260697; Mon, 20 Feb 2023 18:21:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGB-0001aI-0R; Mon, 20 Feb 2023 21:20:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIG9-0001Yb-B8 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:01 -0500 Received: from mail-pl1-x630.google.com ([2607:f8b0:4864:20::630]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIG7-000810-N8 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:01 -0500 Received: by mail-pl1-x630.google.com with SMTP id q11so3779873plx.5 for ; Mon, 20 Feb 2023 18:19:59 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.19.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:19:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=djjsEwG4h18wUlaauxZhuGg1KAW+4WF9EJYa6EDlD74=; b=a7R1as1gcFimzMR/jTl7L58JiPdtSiinpl6AjcYYxQyeo0XPOf7KCNcyV3WbIB97os vx9QaYX4lxhIvmWGlWe8jALAH2prmgrI/ekPjqtr/GwRXpTYkgwBaguY46I3rPBfvYf1 XQfPBOp3YnwJXA/8IAJQNGFLBZaDTHmbXeZ6S0BTye9pFuK/gEttwj+dHryNNTuLGliH jWNb0cdnABHy6IKf9Fi3QdhJ3JE6pvIRBxebG2nJpz81WsQ+NArzHkN4eKFta/XvTjzy 2ny0X3ycWvmJyqWQkMnRLsMmwfSt1hjyrcqB08g6HvDTDzaXXYqofs2cey2k40z+ukLG 20ZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=djjsEwG4h18wUlaauxZhuGg1KAW+4WF9EJYa6EDlD74=; b=bhvcCO6R/DtLWcQ9CQrmXQqaX2+NP4C7/BJ2oHQBWcjhLzmea5GEQtzAgaV9S7Jhh/ NWy1aZEgQ3GXlZiF2nBh/muicHGmw5ox+mFWiM/7qOQnEC/xBOnfYGrJt+4V9VTV4k/S Khj356/mr3sK+IvX0Tzdq37YgyN9AqyFW9rlk1a3VEUHwR+kdVNt/rU0DxXfqokoXp1x vBvd33MsVnH63QNG2b7TUcGntdH2+3NQcTPn2ICYxVJIhlOLzuyT2/bjWwUIO3ZtIDLY F5ZsaxDxv9X4RsmNRy6mqZpbLMWG4wT08etukp0HT0CbCPH837AVkGO/HcMuJtb29UzX um4g== X-Gm-Message-State: AO0yUKWAKQoVEWEzQwsJip8qIJn2ZGmCgwKVnRwPMvvdeHXaimnIaTJl Vonyiin8m2iFeu/fOzl41WMFB+Dwqy+yrScEDR0= X-Google-Smtp-Source: AK7set+JwuC+B/XzPXR5M1RHcrRDCVZDxL58eCA2CSAElnZnbTyvX2/14uVJt27ylzdfdEeWfZ0nxg== X-Received: by 2002:a17:902:ce89:b0:19a:7548:da25 with SMTP id f9-20020a170902ce8900b0019a7548da25mr5526167plg.17.1676945998336; Mon, 20 Feb 2023 18:19:58 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Fabiano Rosas Subject: [PATCH v2 02/14] target/arm: Unexport arm_gen_dynamic_sysreg_xml Date: Mon, 20 Feb 2023 16:19:39 -1000 Message-Id: <20230221021951.453601-3-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::630; envelope-from=richard.henderson@linaro.org; helo=mail-pl1-x630.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: 1676946100627100003 Content-Type: text/plain; charset="utf-8" This function is not used outside gdbstub.c. Reviewed-by: Fabiano Rosas Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/cpu.h | 1 - target/arm/gdbstub.c | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 12b1082537..32ca6c9a0d 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1116,7 +1116,6 @@ int arm_cpu_gdb_write_register(CPUState *cpu, uint8_t= *buf, int reg); * Helpers to dynamically generates XML descriptions of the sysregs * and SVE registers. Returns the number of registers in each set. */ -int arm_gen_dynamic_sysreg_xml(CPUState *cpu, int base_reg); int arm_gen_dynamic_svereg_xml(CPUState *cpu, int base_reg); =20 /* Returns the dynamically generated XML for the gdb stub. diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index cf1c01e3cf..52581e9784 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -305,7 +305,7 @@ static void arm_register_sysreg_for_xml(gpointer key, g= pointer value, } } =20 -int arm_gen_dynamic_sysreg_xml(CPUState *cs, int base_reg) +static int arm_gen_dynamic_sysreg_xml(CPUState *cs, int base_reg) { ARMCPU *cpu =3D ARM_CPU(cs); GString *s =3D g_string_new(NULL); --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946117; cv=none; d=zohomail.com; s=zohoarc; b=F6z5hXi335J9lbAbZFF8rwnWvZJTepAvwbZByLs8boGNjzlOL4sVB9nNplQavrrP2tAzBr5G4GrrQL8sD1BepCAWKnRIoJGDW7dTy8RGAi4IAbPgJH4/IppNeQbBTL7kuQ3wL9ePOKxzbOAxt6Q0R2yLHZQgWItSzhCtolSXOGQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946117; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ggdqj3TP81zF9AJLhqzoDLwtgovOZJuMr88Ei9wR7CM=; b=DNPEM1LpGjC9In5CGJZW5VHlM9yw5vMYiXoDmSR5NxLrAHTUFw4zB6BWtc+NNkYZ+gtszuzDRTb4aVoobikOLVCzUuha3nLZ9w5ce27Tfxz3I9u6Lmzmiu7T3K/VgG07Zm5jI4hwuSW2mXFPYi0+4dknr5+HXn/OubOPQzwKqxM= 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 1676946117283412.8001948353441; Mon, 20 Feb 2023 18:21:57 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGD-0001ap-3w; Mon, 20 Feb 2023 21:20:05 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGB-0001aN-AK for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:03 -0500 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIG9-00081N-0z for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:02 -0500 Received: by mail-pj1-x102c.google.com with SMTP id nw10-20020a17090b254a00b00233d7314c1cso3357625pjb.5 for ; Mon, 20 Feb 2023 18:20:00 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.19.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:19:59 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=ggdqj3TP81zF9AJLhqzoDLwtgovOZJuMr88Ei9wR7CM=; b=bgWpgiDxVdcYdVCmZ4+b55D9deHVrHWPW1gGXnf8C7e87kk2B4WukbOn+i5+NqggVG 6LD5PrJEy97HOIjfbnl/TzM6jDq/S5WO/jpN2kZvG1T9DovIZBmpirM8Jtf28GadNQMC B9qM5pELBtVPAGA31XR8VgFGjh7iUeM3uI2ed1GzLMJV7JMSVocFRb5e2pg1iTZt/2dz gUcUnYti9ZdBFE/dyNfMnATWwJY/xkLOa4DwaP7lfQxwAsQiJryJeeX5mIe0vrZRH2Zt mZPrMdtYVxh1QlPiXN0hZX12qXK+AHNHmfnVzqtiBtvNi1c8DiCyEcGffbeLR1ZDcEAm BiWQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=ggdqj3TP81zF9AJLhqzoDLwtgovOZJuMr88Ei9wR7CM=; b=2m+G0p5FZYib4yC3VaLTgixGW0zpIKpGa8uyxkme8dq+qcPyn4VAPVVXwS+47tjzpR 8p95TE2I0SvFNEO6UVJ0pR2DmxCSIyDkae9UKU3DFYJSx3bzY3cISRDUps/ZQ2QF4LqG XLadJ78U5408MO1jZVfPRc30JPefEOlLwOeS6KsMvC53ZybbFO2JYYJFgHKcO93LypPK 5gycY1Ep+EqNA/IQ3022iJw1tyGJKPckRxFVlfCb9Z1m4/0o8R4VyXlRoG5RD4GpkgWA 9SK+ae6bit8ThqSzP3zUGnNwRnRb0RpJsefpN7EsU7+qjR9ZJ/e2z/PFsdW+Xv4F+VDd rtFQ== X-Gm-Message-State: AO0yUKXQgog0qgm6C1CubcIkO1XaT3Sfz52w3dONe5ETj/WjgycF/O7I DrSdDNxHC1Hq6D/0As5PzO5tq2lbIE8d/dZ5joE= X-Google-Smtp-Source: AK7set/wGjhm010TCAH4U5260E/GNqWfHTiRPsiLcSRJSEDaJvYaEvTp2uXxXDjzBQ6kcrUhw5Sv9Q== X-Received: by 2002:a17:903:1cb:b0:198:fc0a:192b with SMTP id e11-20020a17090301cb00b00198fc0a192bmr3593574plh.64.1676945999734; Mon, 20 Feb 2023 18:19:59 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Fabiano Rosas Subject: [PATCH v2 03/14] target/arm: Move arm_gen_dynamic_svereg_xml to gdbstub64.c Date: Mon, 20 Feb 2023 16:19:40 -1000 Message-Id: <20230221021951.453601-4-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.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: 1676946118734100009 Content-Type: text/plain; charset="utf-8" The function is only used for aarch64, so move it to the file that has the other aarch64 gdbstub stuff. Move the declaration to internals.h. Reviewed-by: Fabiano Rosas Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/cpu.h | 6 --- target/arm/internals.h | 1 + target/arm/gdbstub.c | 120 ----------------------------------------- target/arm/gdbstub64.c | 118 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 119 insertions(+), 126 deletions(-) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 32ca6c9a0d..059fe62eaa 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -1112,12 +1112,6 @@ hwaddr arm_cpu_get_phys_page_attrs_debug(CPUState *c= pu, vaddr addr, int arm_cpu_gdb_read_register(CPUState *cpu, GByteArray *buf, int reg); int arm_cpu_gdb_write_register(CPUState *cpu, uint8_t *buf, int reg); =20 -/* - * Helpers to dynamically generates XML descriptions of the sysregs - * and SVE registers. Returns the number of registers in each set. - */ -int arm_gen_dynamic_svereg_xml(CPUState *cpu, int base_reg); - /* Returns the dynamically generated XML for the gdb stub. * Returns a pointer to the XML contents for the specified XML file or NULL * if the XML name doesn't match the predefined one. diff --git a/target/arm/internals.h b/target/arm/internals.h index 121ecd420b..32b8562cbf 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1326,6 +1326,7 @@ static inline uint64_t pmu_counter_mask(CPUARMState *= env) } =20 #ifdef TARGET_AARCH64 +int arm_gen_dynamic_svereg_xml(CPUState *cpu, int base_reg); int aarch64_gdb_get_sve_reg(CPUARMState *env, GByteArray *buf, int reg); int aarch64_gdb_set_sve_reg(CPUARMState *env, uint8_t *buf, int reg); int aarch64_gdb_get_fpu_reg(CPUARMState *env, GByteArray *buf, int reg); diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index 52581e9784..bf8aff7824 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -322,126 +322,6 @@ static int arm_gen_dynamic_sysreg_xml(CPUState *cs, i= nt base_reg) return cpu->dyn_sysreg_xml.num; } =20 -struct TypeSize { - const char *gdb_type; - int size; - const char sz, suffix; -}; - -static const struct TypeSize vec_lanes[] =3D { - /* quads */ - { "uint128", 128, 'q', 'u' }, - { "int128", 128, 'q', 's' }, - /* 64 bit */ - { "ieee_double", 64, 'd', 'f' }, - { "uint64", 64, 'd', 'u' }, - { "int64", 64, 'd', 's' }, - /* 32 bit */ - { "ieee_single", 32, 's', 'f' }, - { "uint32", 32, 's', 'u' }, - { "int32", 32, 's', 's' }, - /* 16 bit */ - { "ieee_half", 16, 'h', 'f' }, - { "uint16", 16, 'h', 'u' }, - { "int16", 16, 'h', 's' }, - /* bytes */ - { "uint8", 8, 'b', 'u' }, - { "int8", 8, 'b', 's' }, -}; - - -int arm_gen_dynamic_svereg_xml(CPUState *cs, int base_reg) -{ - ARMCPU *cpu =3D ARM_CPU(cs); - GString *s =3D g_string_new(NULL); - DynamicGDBXMLInfo *info =3D &cpu->dyn_svereg_xml; - g_autoptr(GString) ts =3D g_string_new(""); - int i, j, bits, reg_width =3D (cpu->sve_max_vq * 128); - info->num =3D 0; - g_string_printf(s, ""); - g_string_append_printf(s, "= "); - g_string_append_printf(s, ""); - - /* First define types and totals in a whole VL */ - for (i =3D 0; i < ARRAY_SIZE(vec_lanes); i++) { - int count =3D reg_width / vec_lanes[i].size; - g_string_printf(ts, "svev%c%c", vec_lanes[i].sz, vec_lanes[i].suff= ix); - g_string_append_printf(s, - "", - ts->str, vec_lanes[i].gdb_type, count); - } - /* - * Now define a union for each size group containing unsigned and - * signed and potentially float versions of each size from 128 to - * 8 bits. - */ - for (bits =3D 128, i =3D 0; bits >=3D 8; bits /=3D 2, i++) { - const char suf[] =3D { 'q', 'd', 's', 'h', 'b' }; - g_string_append_printf(s, "", suf[i]); - for (j =3D 0; j < ARRAY_SIZE(vec_lanes); j++) { - if (vec_lanes[j].size =3D=3D bits) { - g_string_append_printf(s, "", - vec_lanes[j].suffix, - vec_lanes[j].sz, vec_lanes[j].suffi= x); - } - } - g_string_append(s, ""); - } - /* And now the final union of unions */ - g_string_append(s, ""); - for (bits =3D 128, i =3D 0; bits >=3D 8; bits /=3D 2, i++) { - const char suf[] =3D { 'q', 'd', 's', 'h', 'b' }; - g_string_append_printf(s, "", - suf[i], suf[i]); - } - g_string_append(s, ""); - - /* Finally the sve prefix type */ - g_string_append_printf(s, - "", - reg_width / 8); - - /* Then define each register in parts for each vq */ - for (i =3D 0; i < 32; i++) { - g_string_append_printf(s, - "", - i, reg_width, base_reg++); - info->num++; - } - /* fpscr & status registers */ - g_string_append_printf(s, "", base_reg++); - g_string_append_printf(s, "", base_reg++); - info->num +=3D 2; - - for (i =3D 0; i < 16; i++) { - g_string_append_printf(s, - "", - i, cpu->sve_max_vq * 16, base_reg++); - info->num++; - } - g_string_append_printf(s, - "", - cpu->sve_max_vq * 16, base_reg++); - g_string_append_printf(s, - "", - base_reg++); - info->num +=3D 2; - g_string_append_printf(s, ""); - cpu->dyn_svereg_xml.desc =3D g_string_free(s, false); - - return cpu->dyn_svereg_xml.num; -} - - const char *arm_gdb_get_dynamic_xml(CPUState *cs, const char *xmlname) { ARMCPU *cpu =3D ARM_CPU(cs); diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index c598cb0375..59fb5465d5 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -209,3 +209,121 @@ int aarch64_gdb_set_sve_reg(CPUARMState *env, uint8_t= *buf, int reg) =20 return 0; } + +struct TypeSize { + const char *gdb_type; + short size; + char sz, suffix; +}; + +static const struct TypeSize vec_lanes[] =3D { + /* quads */ + { "uint128", 128, 'q', 'u' }, + { "int128", 128, 'q', 's' }, + /* 64 bit */ + { "ieee_double", 64, 'd', 'f' }, + { "uint64", 64, 'd', 'u' }, + { "int64", 64, 'd', 's' }, + /* 32 bit */ + { "ieee_single", 32, 's', 'f' }, + { "uint32", 32, 's', 'u' }, + { "int32", 32, 's', 's' }, + /* 16 bit */ + { "ieee_half", 16, 'h', 'f' }, + { "uint16", 16, 'h', 'u' }, + { "int16", 16, 'h', 's' }, + /* bytes */ + { "uint8", 8, 'b', 'u' }, + { "int8", 8, 'b', 's' }, +}; + +int arm_gen_dynamic_svereg_xml(CPUState *cs, int base_reg) +{ + ARMCPU *cpu =3D ARM_CPU(cs); + GString *s =3D g_string_new(NULL); + DynamicGDBXMLInfo *info =3D &cpu->dyn_svereg_xml; + g_autoptr(GString) ts =3D g_string_new(""); + int i, j, bits, reg_width =3D (cpu->sve_max_vq * 128); + info->num =3D 0; + g_string_printf(s, ""); + g_string_append_printf(s, "= "); + g_string_append_printf(s, ""); + + /* First define types and totals in a whole VL */ + for (i =3D 0; i < ARRAY_SIZE(vec_lanes); i++) { + int count =3D reg_width / vec_lanes[i].size; + g_string_printf(ts, "svev%c%c", vec_lanes[i].sz, vec_lanes[i].suff= ix); + g_string_append_printf(s, + "", + ts->str, vec_lanes[i].gdb_type, count); + } + /* + * Now define a union for each size group containing unsigned and + * signed and potentially float versions of each size from 128 to + * 8 bits. + */ + for (bits =3D 128, i =3D 0; bits >=3D 8; bits /=3D 2, i++) { + const char suf[] =3D { 'q', 'd', 's', 'h', 'b' }; + g_string_append_printf(s, "", suf[i]); + for (j =3D 0; j < ARRAY_SIZE(vec_lanes); j++) { + if (vec_lanes[j].size =3D=3D bits) { + g_string_append_printf(s, "", + vec_lanes[j].suffix, + vec_lanes[j].sz, vec_lanes[j].suffi= x); + } + } + g_string_append(s, ""); + } + /* And now the final union of unions */ + g_string_append(s, ""); + for (bits =3D 128, i =3D 0; bits >=3D 8; bits /=3D 2, i++) { + const char suf[] =3D { 'q', 'd', 's', 'h', 'b' }; + g_string_append_printf(s, "", + suf[i], suf[i]); + } + g_string_append(s, ""); + + /* Finally the sve prefix type */ + g_string_append_printf(s, + "", + reg_width / 8); + + /* Then define each register in parts for each vq */ + for (i =3D 0; i < 32; i++) { + g_string_append_printf(s, + "", + i, reg_width, base_reg++); + info->num++; + } + /* fpscr & status registers */ + g_string_append_printf(s, "", base_reg++); + g_string_append_printf(s, "", base_reg++); + info->num +=3D 2; + + for (i =3D 0; i < 16; i++) { + g_string_append_printf(s, + "", + i, cpu->sve_max_vq * 16, base_reg++); + info->num++; + } + g_string_append_printf(s, + "", + cpu->sve_max_vq * 16, base_reg++); + g_string_append_printf(s, + "", + base_reg++); + info->num +=3D 2; + g_string_append_printf(s, ""); + info->desc =3D g_string_free(s, false); + + return info->num; +} --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946099; cv=none; d=zohomail.com; s=zohoarc; b=QwKrRTW/8wqgMWCHWh33wVD9dC7ghRq1SaFLnwDT1qBKCaHCc+grMymbLkM7xTNJk+oGAO4YbH74y99grplf8e+DuIEFxmAtFmQ9ALPMxdN+PZq91tpo6Hhmik/l2mLhIV4LoMXpCJobjKfIb92Nw35DhDNtrubSGrWxFbWbpq4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946099; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ZxO2vFEBAewUG3Eemq5/VG4yc4LrHxRhdtS1HA4qP7I=; b=kZVBMCo7TD81xflSWUH2sQ803+kq1lzSkbO1sv2poCTfkbNgFMnzMsKzQyP5UTZqFuw7e5OfVLXSnGJnwhb1CPH0hBfFO0e+j7I7Ldm5Gmcq9bAsk3Q4NtWZwJXKeUthk7gzF0f+9UmiIT2j6PpMIs5vkvZ7w7kh+kG2ebXmk58= 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 1676946099486314.4600902851703; Mon, 20 Feb 2023 18:21:39 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGE-0001cR-T1; Mon, 20 Feb 2023 21:20:06 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGC-0001an-QK for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:04 -0500 Received: from mail-pj1-x1029.google.com ([2607:f8b0:4864:20::1029]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIGA-00080i-56 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:04 -0500 Received: by mail-pj1-x1029.google.com with SMTP id b14-20020a17090a8c8e00b002349579949aso3206371pjo.5 for ; Mon, 20 Feb 2023 18:20:01 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.19.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=ZxO2vFEBAewUG3Eemq5/VG4yc4LrHxRhdtS1HA4qP7I=; b=L2f7ennIpruboA+aTi7OGo8rD2/WhhE4hi9vMPyRB+ZutQOZYkvJX9g0d56Gmo6LEq JuF3EEmyrrOREwRuLExo+hFn91lS4nOqLAdCBlNkinXDIACmlbmxG97uy3cHCYIYYy2Z f2nk2ygJpo2un3Vha4VIeY/vs1LI5iVqOs7HzZ6qbAZ1i9RXLB1Qm53nxCxQqoHjWd14 jv4nTfecPy0jkw4iev7Ktg1tdhXkKg/Q6ikTwtQhQoe3Lpfe0aIwOqX7Ae7p3rsFtnT5 evch9Ze7hY0V1P9AqKFN90bQoHCLqV4xWW2NlnvEaq7gHGGbyG1VSXJrBMyQXSjlff3G 59Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=ZxO2vFEBAewUG3Eemq5/VG4yc4LrHxRhdtS1HA4qP7I=; b=cc9ihIr896a8Fk4JOV8IR7PJ8hbLsXhwm8uXi4HNEycqPjNgznmT+2gTMD3jJiU8eh u12+ZfBvcXXZMJmb21JKCl19CGw6rSnLO7gEPlWVOo2n1Mbx933A01pNkng0xzd2yE26 FoqK0raHOmbc3mUfd/6U4dxZ9Rg9yksnUt+Hvqq7RXh9ZU/JoEJ8hJjh7Bec1NxLFNe+ lOgrUd3kupqEPy2GtBsiTvstOdnjvnS8+VA/l0LP116k4dULIkkgN0pSmapAxsY5YcMD NSFRY8aAlciheCWWQnu6ESgNXLr0SRSPFxL+L8cSpOoYTD77KvuyTKX58G1OANDTUKwk Zzqw== X-Gm-Message-State: AO0yUKWJenIdg/tXK5y4uZQc8tRKRhmXgulNXdE2uyJdt8V5qasYlAMG 4TMDx2utF7GcbsVwFES94+mgOxdPLxpeS4BcVDM= X-Google-Smtp-Source: AK7set/4DM014IS33Tz4/5ColJCl6uKa30RD0ZZ62XEiAK9xLEUiWf23Th1SWgwTn/PK600c1V7+4Q== X-Received: by 2002:a17:902:f54a:b0:19a:a647:1891 with SMTP id h10-20020a170902f54a00b0019aa6471891mr6625157plf.67.1676946001373; Mon, 20 Feb 2023 18:20:01 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Fabiano Rosas , Peter Maydell Subject: [PATCH v2 04/14] target/arm: Split out output_vector_union_type Date: Mon, 20 Feb 2023 16:19:41 -1000 Message-Id: <20230221021951.453601-5-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::1029; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1029.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: 1676946100669100005 Content-Type: text/plain; charset="utf-8" Create a subroutine for creating the union of unions of the various type sizes that a vector may contain. Reviewed-by: Fabiano Rosas Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/gdbstub64.c | 83 +++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 38 deletions(-) diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index 59fb5465d5..811833d8de 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -210,44 +210,39 @@ int aarch64_gdb_set_sve_reg(CPUARMState *env, uint8_t= *buf, int reg) return 0; } =20 -struct TypeSize { - const char *gdb_type; - short size; - char sz, suffix; -}; - -static const struct TypeSize vec_lanes[] =3D { - /* quads */ - { "uint128", 128, 'q', 'u' }, - { "int128", 128, 'q', 's' }, - /* 64 bit */ - { "ieee_double", 64, 'd', 'f' }, - { "uint64", 64, 'd', 'u' }, - { "int64", 64, 'd', 's' }, - /* 32 bit */ - { "ieee_single", 32, 's', 'f' }, - { "uint32", 32, 's', 'u' }, - { "int32", 32, 's', 's' }, - /* 16 bit */ - { "ieee_half", 16, 'h', 'f' }, - { "uint16", 16, 'h', 'u' }, - { "int16", 16, 'h', 's' }, - /* bytes */ - { "uint8", 8, 'b', 'u' }, - { "int8", 8, 'b', 's' }, -}; - -int arm_gen_dynamic_svereg_xml(CPUState *cs, int base_reg) +static void output_vector_union_type(GString *s, int reg_width) { - ARMCPU *cpu =3D ARM_CPU(cs); - GString *s =3D g_string_new(NULL); - DynamicGDBXMLInfo *info =3D &cpu->dyn_svereg_xml; + struct TypeSize { + const char *gdb_type; + short size; + char sz, suffix; + }; + + static const struct TypeSize vec_lanes[] =3D { + /* quads */ + { "uint128", 128, 'q', 'u' }, + { "int128", 128, 'q', 's' }, + /* 64 bit */ + { "ieee_double", 64, 'd', 'f' }, + { "uint64", 64, 'd', 'u' }, + { "int64", 64, 'd', 's' }, + /* 32 bit */ + { "ieee_single", 32, 's', 'f' }, + { "uint32", 32, 's', 'u' }, + { "int32", 32, 's', 's' }, + /* 16 bit */ + { "ieee_half", 16, 'h', 'f' }, + { "uint16", 16, 'h', 'u' }, + { "int16", 16, 'h', 's' }, + /* bytes */ + { "uint8", 8, 'b', 'u' }, + { "int8", 8, 'b', 's' }, + }; + + static const char suf[] =3D { 'q', 'd', 's', 'h', 'b' }; + g_autoptr(GString) ts =3D g_string_new(""); - int i, j, bits, reg_width =3D (cpu->sve_max_vq * 128); - info->num =3D 0; - g_string_printf(s, ""); - g_string_append_printf(s, "= "); - g_string_append_printf(s, ""); + int i, j, bits; =20 /* First define types and totals in a whole VL */ for (i =3D 0; i < ARRAY_SIZE(vec_lanes); i++) { @@ -263,7 +258,6 @@ int arm_gen_dynamic_svereg_xml(CPUState *cs, int base_r= eg) * 8 bits. */ for (bits =3D 128, i =3D 0; bits >=3D 8; bits /=3D 2, i++) { - const char suf[] =3D { 'q', 'd', 's', 'h', 'b' }; g_string_append_printf(s, "", suf[i]); for (j =3D 0; j < ARRAY_SIZE(vec_lanes); j++) { if (vec_lanes[j].size =3D=3D bits) { @@ -277,11 +271,24 @@ int arm_gen_dynamic_svereg_xml(CPUState *cs, int base= _reg) /* And now the final union of unions */ g_string_append(s, ""); for (bits =3D 128, i =3D 0; bits >=3D 8; bits /=3D 2, i++) { - const char suf[] =3D { 'q', 'd', 's', 'h', 'b' }; g_string_append_printf(s, "", suf[i], suf[i]); } g_string_append(s, ""); +} + +int arm_gen_dynamic_svereg_xml(CPUState *cs, int base_reg) +{ + ARMCPU *cpu =3D ARM_CPU(cs); + GString *s =3D g_string_new(NULL); + DynamicGDBXMLInfo *info =3D &cpu->dyn_svereg_xml; + int i, reg_width =3D (cpu->sve_max_vq * 128); + info->num =3D 0; + g_string_printf(s, ""); + g_string_append_printf(s, "= "); + g_string_append_printf(s, ""); + + output_vector_union_type(s, reg_width); =20 /* Finally the sve prefix type */ g_string_append_printf(s, --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946069; cv=none; d=zohomail.com; s=zohoarc; b=I85CrPBbRRMl3SXrjHIrhMHLvWE3RAxqhbvAncFC6cYVQyfGJyyQBsNStYQqpO6gJ0W8kKc12cyKhLCskEA8GPYOw/Gju2kJaknYph/mIKtaNKV8ucHNj4jZ5vWbhlabDoBtpUVzUy42u3H0xI1vScndNcQfHpVkw6Mh76ZcCVI= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946069; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=4LhVgV9owJZbBsi1PlfoOSjvvO0vG/eElRpr1Mn0cSM=; b=L119DKEXqdKv1YjbsGgMuDGV8dKzjTvVXisiURLhy+ne5xpPVurOxZYPvfRgiNdXnVqyQO67nlNoHAgyYaqwd1EoDcTkWq2Sdv/0b0j0KcvCBMmSU2W9S/1EwUpaaJrKDw/uv6e8ibj/0JRAK+W22DjS4Bn7DF10mXoTV10J1qc= 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 167694606961827.14295559903519; Mon, 20 Feb 2023 18:21:09 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGG-0001cw-OH; Mon, 20 Feb 2023 21:20:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGE-0001bj-2u for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:06 -0500 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIGC-00084w-8H for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:05 -0500 Received: by mail-pj1-x102f.google.com with SMTP id i1-20020a17090ad34100b00234463de251so3140723pjx.3 for ; Mon, 20 Feb 2023 18:20:03 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.20.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=4LhVgV9owJZbBsi1PlfoOSjvvO0vG/eElRpr1Mn0cSM=; b=qEH/jBGMT8DA7uZFBN9gp4cryW6fRT4nQWTMLETuC5W4zvEUtmqVqVbTAa8kd2nWij M2gN5gvKox6EQUrzijCKdesjYLrR/NNjQFMD+FDSSbwbQyhcZqGLifcgQtOsNbDV+PRI 0jp6jaUm97LWiSfMjsH9u9feobKI4RIA79qskRyOzIaOkJzrGov7lWQjrCnr0Ymfofav mDl86/9/9fuV/FfxjN+deUAHF7KHaSY8ICENzgFJtDYd6MWfqbU6PTy/ilHagfDPXCTQ qQ8RXFlu/0SsDUyFo3YBwEiHGrQEKgPm+gqQEXG3u65s8zUyoIwzmUVfZQA7HhUz5Pxf i1iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=4LhVgV9owJZbBsi1PlfoOSjvvO0vG/eElRpr1Mn0cSM=; b=rSQwAZJQp7MWhFTsmgzBc00Z4fynUPRWSJco0jcAiPMtyUZkRdhWjPdG24ZBA8RaVJ OstIZQflx9JEVR322iWPti4XJJjBk1bYF4ijGkXe+RcGUAxgkeriCRzERsMRmeQYgaDr sUkGM2TYihZq4LFVFKNbhxJS2/gfyGPBUpbNUQjzLweXvLgt4wnX7laquyDHyaRrC84A 6OTOCueWv4gxZR1Q7JcEeaidBR27dUY2gwT3EGJ72gcDVI/Qevlv1F0iT5+LwHp3MM2t rbonPwJDQfzwpBePnbnHBbRD0Qr1l8QoKJv0V8pz76Hn2OwW1LL39sWdD2pkJBeOiW1o DLlg== X-Gm-Message-State: AO0yUKWqxtvtyE655jiYflyfP2iircxk7jzL6NhmKO1hdzVsyOs53Raj 7MXeRjefI9r1T6pII2BHet183/pcwLGX5pOqS5U= X-Google-Smtp-Source: AK7set+i6/lTZHeUwG06kZHNNJ6zC6TyaqpjDm4ps2FSrAI7lm71xng5NCrnJechupIRF4QQr+9iSw== X-Received: by 2002:a17:903:24e:b0:19a:b2ee:cf41 with SMTP id j14-20020a170903024e00b0019ab2eecf41mr3241982plh.59.1676946002630; Mon, 20 Feb 2023 18:20:02 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org Subject: [PATCH v2 05/14] target/arm: Simplify register counting in arm_gen_dynamic_svereg_xml Date: Mon, 20 Feb 2023 16:19:42 -1000 Message-Id: <20230221021951.453601-6-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.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: 1676946070733100002 Content-Type: text/plain; charset="utf-8" Rather than increment base_reg and num, compute num from the change to base_reg at the end. Clean up some nearby comments. Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/gdbstub64.c | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index 811833d8de..070ba20d99 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -277,32 +277,35 @@ static void output_vector_union_type(GString *s, int = reg_width) g_string_append(s, ""); } =20 -int arm_gen_dynamic_svereg_xml(CPUState *cs, int base_reg) +int arm_gen_dynamic_svereg_xml(CPUState *cs, int orig_base_reg) { ARMCPU *cpu =3D ARM_CPU(cs); GString *s =3D g_string_new(NULL); DynamicGDBXMLInfo *info =3D &cpu->dyn_svereg_xml; - int i, reg_width =3D (cpu->sve_max_vq * 128); - info->num =3D 0; + int reg_width =3D cpu->sve_max_vq * 128; + int base_reg =3D orig_base_reg; + int i; + g_string_printf(s, ""); g_string_append_printf(s, "= "); g_string_append_printf(s, ""); =20 + /* Create the vector union type. */ output_vector_union_type(s, reg_width); =20 - /* Finally the sve prefix type */ + /* Create the predicate vector type. */ g_string_append_printf(s, "", reg_width / 8); =20 - /* Then define each register in parts for each vq */ + /* Define the vector registers. */ for (i =3D 0; i < 32; i++) { g_string_append_printf(s, "", i, reg_width, base_reg++); - info->num++; } + /* fpscr & status registers */ g_string_append_printf(s, "", base_reg++); - info->num +=3D 2; =20 + /* Define the predicate registers. */ for (i =3D 0; i < 16; i++) { g_string_append_printf(s, "", i, cpu->sve_max_vq * 16, base_reg++); - info->num++; } g_string_append_printf(s, "", cpu->sve_max_vq * 16, base_reg++); + + /* Define the vector length pseudo-register. */ g_string_append_printf(s, "", base_reg++); - info->num +=3D 2; - g_string_append_printf(s, ""); - info->desc =3D g_string_free(s, false); =20 + g_string_append_printf(s, ""); + + info->desc =3D g_string_free(s, false); + info->num =3D base_reg - orig_base_reg; return info->num; } --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946161; cv=none; d=zohomail.com; s=zohoarc; b=Cx56x5Z5V83/CEgoV+Zn3cPHyBB+VoO3nYzyXDMZh83b3JeiU4q2YaQTHZ9H7V6TlKBLkGNCXHc5VuUoH1RbUU8agsa6umH3tgaHRmZvZShEGwCPZ5lKja7coI3U3JTRp0XNuphHi9vnxnH0yhfnTP9M0DcqsEQpWoKNJ1SupCY= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946161; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=KtfS729W8SNygqiwUg2I8CHVdzajfLrBoTMYCRIqeSU=; b=IeKQBjGeObFoiSoGD5ER6bfdzvFsOVQp8gASzAGmyqWuALEpH7MwdExecpMWWlOZaws9nexpiSAhHw14+iqF+pLjYq8ufeGCp+5diwUmTiJ7+VxJWKXbGKpapa6MOjA7K3RSrq0IK8xQU7yQhsAnJvsrAIBXJ95XULxrnxPYbQw= 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 1676946161068631.5862235544989; Mon, 20 Feb 2023 18:22:41 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGK-0001dX-84; Mon, 20 Feb 2023 21:20:13 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGF-0001cU-28 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:07 -0500 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIGD-0008E5-GN for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:06 -0500 Received: by mail-pj1-x1034.google.com with SMTP id ei9-20020a17090ae54900b002349a303ca5so3220174pjb.4 for ; Mon, 20 Feb 2023 18:20:05 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.20.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=KtfS729W8SNygqiwUg2I8CHVdzajfLrBoTMYCRIqeSU=; b=GgcWGFyFYNckp3//qU1LAPMmRRlabLwlK6qCYJZOcIQCY0iVDimhnsZRh2K9KRwSIL 7u8RSx5LvApsE7aptca1e33092HscbxcYpTlPzfjt/8crr6qt1aiIeU/P6FG1Uai8CV/ B0PWaGT14b9MCvRRfjsUoRVgVY3Ks3xOn2Npd7i92gS/T1yUEpLACxm+1twh7leOtL3L OzlCw/Et5dpGIt3sQvfLHRNtq9IdhW8ULWp0Wi5sMl7wRcdU5UzJClp26KsKHZA/u+Ym mGv+SrCiXZcFwRrT/P+WfIlTX3V9RNeM3c7Th30netTZx5UVuJ25b9Hb+HKG/Xc/t/m1 k/iA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=KtfS729W8SNygqiwUg2I8CHVdzajfLrBoTMYCRIqeSU=; b=ke3psLe10MmHM1Rdb/XhoPCOaIugEtbkW+EdNdZSBAUYCiy2KuqiFgUxvQ+DBHV9F9 SIgk+WgRCiZWUt+soXWGEHh4D49pEWnkCW+F9GjShna8IptrwXak6RrW8GDz8sKvGrDQ mbgYhVlvuMvfkrMOOH2PcWc+xx5xJna2tPdfUFsebVIEB+pe5Aj7dm/UXs7eKbCB3R7o qJ4mrJRtkgE76fWk9k3OIEOVt23bjqo1TTSmTIB25RJ/MRr2kEoVFGtMITQW2D7RVLhk 7ceaOzlyz9AaHT5e4Of+G6O/ISNx2i023QJv9V/txTHSyGcFOX/0L8ZcfQGiY/qFxvXN wOSg== X-Gm-Message-State: AO0yUKWnRf+BpMwILagM6x2huOXKZKjBCfCD1IeXTrJcjDkr694cNv9l BXmXBXN/JEifFKtDRfzENtDkIfaPCmCIB7BaL+Y= X-Google-Smtp-Source: AK7set+GEeNwHq+S5o7APJupgMCvq1ZBm0M5nViSpZYKsE/y7UqK1kajx7+MsIFpRc7AZVQxadLiOA== X-Received: by 2002:a17:902:fa87:b0:196:7664:39c with SMTP id lc7-20020a170902fa8700b001967664039cmr3364688plb.31.1676946004117; Mon, 20 Feb 2023 18:20:04 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Fabiano Rosas Subject: [PATCH v2 06/14] target/arm: Hoist pred_width in arm_gen_dynamic_svereg_xml Date: Mon, 20 Feb 2023 16:19:43 -1000 Message-Id: <20230221021951.453601-7-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::1034; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1034.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: 1676946162894100007 Content-Type: text/plain; charset="utf-8" Reviewed-by: Fabiano Rosas Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/gdbstub64.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index 070ba20d99..895e19f084 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -283,6 +283,7 @@ int arm_gen_dynamic_svereg_xml(CPUState *cs, int orig_b= ase_reg) GString *s =3D g_string_new(NULL); DynamicGDBXMLInfo *info =3D &cpu->dyn_svereg_xml; int reg_width =3D cpu->sve_max_vq * 128; + int pred_width =3D cpu->sve_max_vq * 16; int base_reg =3D orig_base_reg; int i; =20 @@ -319,13 +320,13 @@ int arm_gen_dynamic_svereg_xml(CPUState *cs, int orig= _base_reg) g_string_append_printf(s, "", - i, cpu->sve_max_vq * 16, base_reg++); + i, pred_width, base_reg++); } g_string_append_printf(s, "", - cpu->sve_max_vq * 16, base_reg++); + pred_width, base_reg++); =20 /* Define the vector length pseudo-register. */ g_string_append_printf(s, --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946175; cv=none; d=zohomail.com; s=zohoarc; b=d9/T/lzIwjwqrmkUm5iV+TnH1Et7yDkieSCML8ursHSDRXtU0U1te6AscxOx2nA6qTXoasRNyqOnx5ptR/R1EWivydWHmvSn9lWJD4CpsqD+l7WSIV0j1++kx7hRG2NXRPadT2vP72/rtlcF3w5hj2ykqZA6Zq6jx/hUkw7/f8Q= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946175; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=atup5JzD1u28pHb0Z+S8hkpRI38cVehaAA91hoO5SKs=; b=jK4Xfw5OR5Dot3qBxS4bEskzoaxNY+0UAJluWchNybggG83V8TcdwJoAFNpemFr0ULmXPc9+kFESG7ra2JGXykbHwDITjSXcAUpWf4Jrg5ngB7KaxzEYk6EnMi5yaawswiBHTZBpk+50A04UYomaKH52IlShuQSOVoXWaEXnFUA= 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 1676946175227810.2811882656864; Mon, 20 Feb 2023 18:22:55 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGa-0001hz-Ba; Mon, 20 Feb 2023 21:20:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGG-0001cx-Fl for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:08 -0500 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 1pUIGE-0008Em-U9 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:08 -0500 Received: by mail-pl1-x62e.google.com with SMTP id l15so4609067pls.1 for ; Mon, 20 Feb 2023 18:20:06 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.20.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=atup5JzD1u28pHb0Z+S8hkpRI38cVehaAA91hoO5SKs=; b=Knk1M/Jd7wuSWsJ+ikRciTVUjGiojB8MLfIppiI52SRw1FEw+Iq3geY9c3psmc8ADo xgw4z975tkLnuT2ADIltw4uTMIYK7fVpwrOS7TISy7gCjBynAjXwmtACo0fwnn4byQP7 fSWLxl31ixs/HzUck+z+gqpTuFJ+STXgfnvKrq2DDg8NcJObepYpTQ19BRFfSB5/vin0 VYllOBo92AVu92dy6PMpn31eKfIw3PSemmsUgK3xbOW/x3/LQdsVSxO1p1Ci+U6hlJDu hIV92TA/DW/eR9rgIe48yZrmtKf0ZvPAFhtLqVYJZnoHCSjzwPLfBknom1eHuCg10uMt 1o3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=atup5JzD1u28pHb0Z+S8hkpRI38cVehaAA91hoO5SKs=; b=jjUsgLn/QXKx1oGozHrpOU78Gf4FoqN4rorUKtgn0HnVDJrFZQd4FCZpNdVlZtDGM8 HVwI9jgHTMcFU6L5+h8qTnUi95dLSE78OjzW4ATgBN/HPLUgCl3DtRIkr0IFNvczOqvd dy4w0CKKO/dPkFJ/P2ov8glMl55pyiAc+me/uDDXZUj/agWzTXhL0xOzBLiB8arV7dQY YEP2lD97kx6FLvknlpoJ79eANn15YvvqcDUtvEj7tS2c2D+0mInvBO7zhW+s3nC6Y2yp G3ZApQXwm7eUbUcdUCGyKdZN6CIXRrcMuWuXaIcvhZamA8DypI3u+RU5gS8AmwI5/hZs A2Xw== X-Gm-Message-State: AO0yUKUaO1nnQsQf3e5jxzQ3wNPvDPZG0CYJumqdVBMBGTXWnoaJlDYb 4AZzCN9S3hsUCwAMHSrmTiRfvvojChOrx5AUDf8= X-Google-Smtp-Source: AK7set/wJ1yZQiF/JTxViwJQBmjNXtUVYcPDyX300xARs/f3A9p3eixoOdmYL8md6wfTyRl42RnDtQ== X-Received: by 2002:a17:902:ce81:b0:19a:a650:ac55 with SMTP id f1-20020a170902ce8100b0019aa650ac55mr4788618plg.23.1676946005572; Mon, 20 Feb 2023 18:20:05 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 07/14] target/arm: Fix svep width in arm_gen_dynamic_svereg_xml Date: Mon, 20 Feb 2023 16:19:44 -1000 Message-Id: <20230221021951.453601-8-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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: 1676946176980100003 Content-Type: text/plain; charset="utf-8" Define svep based on the size of the predicates, not the primary vector registers. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/gdbstub64.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index 895e19f084..d0e1305f6f 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -297,7 +297,7 @@ int arm_gen_dynamic_svereg_xml(CPUState *cs, int orig_b= ase_reg) /* Create the predicate vector type. */ g_string_append_printf(s, "", - reg_width / 8); + pred_width / 8); =20 /* Define the vector registers. */ for (i =3D 0; i < 32; i++) { --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946069; cv=none; d=zohomail.com; s=zohoarc; b=fcess+3yIgqphnKccSasaMXBSjszj+60z7hw/xx8dcHfVMDoIU3JRjQQWf2KlkTmr5z6nj2DvEPoElVyM+QlpoIYjCINfIj9hYQICcrOMZ8A9hWYsKvNflYedq3DQ4wl7Z9DrRCk1pr4zUVGr8A/JxutxiyyLdbSpsbC9TW0qL8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946069; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=cGmftzbsAcVY0beQah1Rt/jBjqLnvx4GYi9E+DOFsUs=; b=HP3PuF4+kftr9JBkEAjPYeEqUoh9O3gTw3Y/kM/SJaQfZBxjdt7fXm8YixRpTCF9s5hrm562LCnCcE6Y9bxmqYusDEb9gh/D6HRoVZEi1PwA3tA3MMi1j44POBW5KbrE3Xa+LPpA94Suut0trX7p/xCrPvH/ifl9XIyNa/s0Guo= 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 1676946069525598.730637087685; Mon, 20 Feb 2023 18:21:09 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGQ-0001fT-VP; Mon, 20 Feb 2023 21:20:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGI-0001dZ-5w for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:10 -0500 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIGG-0008F6-8n for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:09 -0500 Received: by mail-pj1-x1031.google.com with SMTP id u10so3163971pjc.5 for ; Mon, 20 Feb 2023 18:20:07 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.20.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=cGmftzbsAcVY0beQah1Rt/jBjqLnvx4GYi9E+DOFsUs=; b=fORRrxizROdpHnr2N6gsnNz/Cyt+aY44j6fDqKepmMvmS0+YbfCeZKKXJ40r1ifH2o 45mqtZJwfaaoGOYDaRM6j92h0zNixwMdqAurpkGqvzlT5x4R/ai9B7HI9P8thEKrKhdO JwCEe4fF6KOtoz/dIKJZP4zDuxT2ZlequQYdFD9t492dP7zTTc7fwIZEuvo6t9bydSRx oG8a6MO01q2CMG926dz5Pc3aA0OEXQCntUJ1ehOZXwjgtGTDhawccUUpJaRsssnilDgZ /941O797CMaOnnnhw1m4/5KgXXOEEYW1KJzk86/yAkNO+G1LrRF8Cex0iIv54dHGXRCI Hm5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=cGmftzbsAcVY0beQah1Rt/jBjqLnvx4GYi9E+DOFsUs=; b=uX9V2hlHFFflueqiDf5EvYzQW7SyRgUj9+Sp0G7M+koLrDYlh6dI6Ew6dCwAU87rZW qVKNBRC0ty3HsG0X7PJ8B7I7zBTC9rAhmmZyE4nq5Bu5yoOx7WrQfV3LJYyrv7Kx9c2Z WuWW6uRaXkrGk8WwEhbhZ9DPQYBKd8Oqb1Rbm0xlm2DYqLOzCHVHlDrHE4u3kzxaXJlK YNOoCAnsJwiG9lEs2vFi9wITW8rK/6f6nIr7S/nsvt5KHnN2gcLJBIkKOM8bdPrSWfbF lYGMl0A4XZYESN2WPGkk89VUOCQzh9CukA8yfsJuw1dgEPxA6NHD+/nkUfkX7Tih2vql Pw5A== X-Gm-Message-State: AO0yUKUcObBC/gTd0s2t+3qnMtSDNFkunVmyeoMrO/V6ZXOR6hHkgPho 9hUQ1BEpbN+JkEcJt6XyVjaFqlNgUIGvaDYbz64= X-Google-Smtp-Source: AK7set/AtFhlYHkxzMYEFJkpWMBqcSj+offVYghihQ2ImYk9NiuZRIoSIDnTTSB2O2J/y/f7uLgmIA== X-Received: by 2002:a17:903:283:b0:199:2e77:fe16 with SMTP id j3-20020a170903028300b001992e77fe16mr5572084plr.58.1676946006909; Mon, 20 Feb 2023 18:20:06 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 08/14] target/arm: Add name argument to output_vector_union_type Date: Mon, 20 Feb 2023 16:19:45 -1000 Message-Id: <20230221021951.453601-9-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1031.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676946070738100003 Content-Type: text/plain; charset="utf-8" This will make the function usable between SVE and SME. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/gdbstub64.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index d0e1305f6f..36166bf81e 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -210,7 +210,8 @@ int aarch64_gdb_set_sve_reg(CPUARMState *env, uint8_t *= buf, int reg) return 0; } =20 -static void output_vector_union_type(GString *s, int reg_width) +static void output_vector_union_type(GString *s, int reg_width, + const char *name) { struct TypeSize { const char *gdb_type; @@ -240,39 +241,38 @@ static void output_vector_union_type(GString *s, int = reg_width) }; =20 static const char suf[] =3D { 'q', 'd', 's', 'h', 'b' }; - - g_autoptr(GString) ts =3D g_string_new(""); int i, j, bits; =20 /* First define types and totals in a whole VL */ for (i =3D 0; i < ARRAY_SIZE(vec_lanes); i++) { - int count =3D reg_width / vec_lanes[i].size; - g_string_printf(ts, "svev%c%c", vec_lanes[i].sz, vec_lanes[i].suff= ix); g_string_append_printf(s, - "", - ts->str, vec_lanes[i].gdb_type, count); + "", + name, vec_lanes[i].sz, vec_lanes[i].suffix, + vec_lanes[i].gdb_type, reg_width / vec_lane= s[i].size); } + /* * Now define a union for each size group containing unsigned and * signed and potentially float versions of each size from 128 to * 8 bits. */ for (bits =3D 128, i =3D 0; bits >=3D 8; bits /=3D 2, i++) { - g_string_append_printf(s, "", suf[i]); + g_string_append_printf(s, "", name, suf[i]); for (j =3D 0; j < ARRAY_SIZE(vec_lanes); j++) { if (vec_lanes[j].size =3D=3D bits) { - g_string_append_printf(s, "", - vec_lanes[j].suffix, + g_string_append_printf(s, "", + vec_lanes[j].suffix, name, vec_lanes[j].sz, vec_lanes[j].suffi= x); } } g_string_append(s, ""); } + /* And now the final union of unions */ - g_string_append(s, ""); + g_string_append_printf(s, "", name); for (bits =3D 128, i =3D 0; bits >=3D 8; bits /=3D 2, i++) { - g_string_append_printf(s, "", - suf[i], suf[i]); + g_string_append_printf(s, "= ", + suf[i], name, suf[i]); } g_string_append(s, ""); } @@ -292,7 +292,7 @@ int arm_gen_dynamic_svereg_xml(CPUState *cs, int orig_b= ase_reg) g_string_append_printf(s, ""); =20 /* Create the vector union type. */ - output_vector_union_type(s, reg_width); + output_vector_union_type(s, reg_width, "svev"); =20 /* Create the predicate vector type. */ g_string_append_printf(s, --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946134; cv=none; d=zohomail.com; s=zohoarc; b=a0siF9xCy7hCSdpnt5UahrzIyYZNXjTGc8J7nFJ296DHFyfQAJ0rya6bMg1DHQ2OfnJ/Ae4kxC+QeaDRSi1ihYb61zBBa9N0ly4DnEO+m3bHiks0HW4ynmF9ZWDunX2tgsYcn/sKj0FXUqMYSb81ikMbwSjgWQzBN7lzX++csaM= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946134; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=ktLcLczpC5J61u+Wz7S4IYVLAaoqvKihU89wRw7bX20=; b=MQAqTGYoc/Ovt9JT1wWeFwD8+Ij47inNyQMKFNT4uxX/7RPlW5RgbMOXVVHY3OfhEW/0Ofx+XMqGLZU3iGbFRqc8JWin2frkrTtZVett4+ylf325oiW+kaMEb2SsVUx//Mpe2xo0D9b8rHn414g2jCuh2AT/b1FxcIXrYr5Uhls= 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 1676946134043890.395276815174; Mon, 20 Feb 2023 18:22:14 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGc-0001iy-1M; Mon, 20 Feb 2023 21:20:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGM-0001f1-SH for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:15 -0500 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIGH-00080z-Di for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:14 -0500 Received: by mail-pj1-x102c.google.com with SMTP id pt11so3808275pjb.1 for ; Mon, 20 Feb 2023 18:20:09 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.20.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=ktLcLczpC5J61u+Wz7S4IYVLAaoqvKihU89wRw7bX20=; b=ZUrhFly49U/YhRsfWD+/QRbNDqwjpvVhWlDjIlzCJKh9BEDeG4Rvki8KrgQ/Cw3w+I zJARHCSnJ1E8RTg2vFnUcbDjTHXc0pznpN3flUTryJjlyFZmBBYUTkUcJs+8OaBPB2Lp i5rTGWzfDnEI4NfL4+WPnBscvTVdM2CR+WdVLXllxbH6GIwE8ICJ4jQ17gn3zpw6NSTt TdSYSsL/R+WvlEFDpgM8l4EaiCIxREnKSiaQM0Rvn8yxw/cOvTcRRv1/6ioQ0VBB3xkQ Am2UJosyteBQUAixFx8BgoMtNw3yJdiswguPsEbm1vHg5ZT8jOh/jlWP6ehiWcV/kSYw vebA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=ktLcLczpC5J61u+Wz7S4IYVLAaoqvKihU89wRw7bX20=; b=yx7zby3xWMYQ3A3mpyKYe8J1215XsMy+wA3OkCUUzNevS/aWEBRmlYSz72XSJcx8dH wjxTf053tU9TkyFa5NaMgX3HkRYBWclVBp9NPYKXnXZngQ6q9lnmxYMCIhD0I4YvtgQ0 ZT4YLyh4nkdxtajIRjqaex8FebQFHlJBOmdN6OJ8sBJW1/cXFqI2ptBBbxNUsM5I/ABB h5JiHNu+3N5Fejp2/D2/kRl/0rsuaPLEFg5VEcGRvPW9uaVUr9ni1JTmwFjcE03wQqMK Yb73qz8Hux2kzeRjnb1F7tgtH4ejtkv4IZ9+vDcXVJApto2hVHtzAkaImExvoHnGe1az rFHg== X-Gm-Message-State: AO0yUKWh4lT6ApLHWxOeYCGodyEknKSKpf0VfomXBZni6K69nae/92t4 c2G1VOyBQ86sGPZXKaT4FUjXzQDeUaytIPO2YOg= X-Google-Smtp-Source: AK7set/d1SqdMR7NW2d2sCEdNybBSlHxN+LtXzGUk81PhBXFTUCPTGWy1x9oR2IWKbGdukedyCuYDQ== X-Received: by 2002:a17:902:d2cc:b0:19a:8316:6b51 with SMTP id n12-20020a170902d2cc00b0019a83166b51mr3585530plc.4.1676946008645; Mon, 20 Feb 2023 18:20:08 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 09/14] target/arm: Simplify iteration over bit widths Date: Mon, 20 Feb 2023 16:19:46 -1000 Message-Id: <20230221021951.453601-10-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::102c; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102c.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: 1676946134757100001 Content-Type: text/plain; charset="utf-8" Order suf[] by the log8 of the width. Use ARRAY_SIZE instead of hard-coding 128. This changes the order of the union definitions, but retains the order of the union-of-union members. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/gdbstub64.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index 36166bf81e..3d9e9e97c8 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -240,8 +240,8 @@ static void output_vector_union_type(GString *s, int re= g_width, { "int8", 8, 'b', 's' }, }; =20 - static const char suf[] =3D { 'q', 'd', 's', 'h', 'b' }; - int i, j, bits; + static const char suf[] =3D { 'b', 'h', 's', 'd', 'q' }; + int i, j; =20 /* First define types and totals in a whole VL */ for (i =3D 0; i < ARRAY_SIZE(vec_lanes); i++) { @@ -256,7 +256,9 @@ static void output_vector_union_type(GString *s, int re= g_width, * signed and potentially float versions of each size from 128 to * 8 bits. */ - for (bits =3D 128, i =3D 0; bits >=3D 8; bits /=3D 2, i++) { + for (i =3D 0; i < ARRAY_SIZE(suf); i++) { + int bits =3D 8 << i; + g_string_append_printf(s, "", name, suf[i]); for (j =3D 0; j < ARRAY_SIZE(vec_lanes); j++) { if (vec_lanes[j].size =3D=3D bits) { @@ -270,7 +272,7 @@ static void output_vector_union_type(GString *s, int re= g_width, =20 /* And now the final union of unions */ g_string_append_printf(s, "", name); - for (bits =3D 128, i =3D 0; bits >=3D 8; bits /=3D 2, i++) { + for (i =3D ARRAY_SIZE(suf) - 1; i >=3D 0; i--) { g_string_append_printf(s, "= ", suf[i], name, suf[i]); } --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946069; cv=none; d=zohomail.com; s=zohoarc; b=iND0sGZ3F4FrJqpgr+XHfeUpfn0J+2Oegv4wBBsCKwAR63dA1aZ0ZbhZx3pIQ6amljAFhfDywjZWvkfPidRWknGl+6Ekg0OMaL8v4ooNr0HlPwk5g89qp3BEzV1/fQOFo6HEEANrChDciuT08yjzNlqaKMpgqumV2FekbGrysUA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946069; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=Tb7eak0fnXBbpHkQ6RD7c94PCh+h4m119aRi0NXAmMg=; b=OtbU/LdS5h/WF9fU0r2aq21OZSlJDgCARLLiHy0uGi/2T/kvOJZg1qgK3SYr4ncKmm01jvcmcjoZ0V3rRpq1jvtAcFdsTycrLL0ZNCNi2T/XFtr0yjRrD2CrDmafiHoM3FVH+6CzBRYeDJLWnsVxT9JXPKqoX8XFsOoTfHoFgh8= 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 1676946069618323.7353508380286; Mon, 20 Feb 2023 18:21:09 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGZ-0001gm-Va; Mon, 20 Feb 2023 21:20:28 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGK-0001eQ-RZ for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:13 -0500 Received: from mail-pj1-x102e.google.com ([2607:f8b0:4864:20::102e]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIGI-00080h-VG for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:12 -0500 Received: by mail-pj1-x102e.google.com with SMTP id o16so3252675pjp.3 for ; Mon, 20 Feb 2023 18:20:10 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.20.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=Tb7eak0fnXBbpHkQ6RD7c94PCh+h4m119aRi0NXAmMg=; b=KIJ4RUa4hsxt5EzAwRK3FCS+hbKTODP87zNvuJbzU5AcUG2LVJ0+Z/XQNDIWsEKWVu KoXMd1D4pNcxSlD38lhBjne1GzQZjvqwDShAUL8a39M+ytK9/O7LvFSO2zXKsnc5Y1ny 6z7mvjKNT2gTJLXY0W7IKubP+UWIE14L09MOpCpPit9WEjFGUJSllfMlfCLPim1hqnu3 JFpbJ1dOFfx37cSqKQTP5/xsdL1M3bbDEtIOxGQE1wqKzY/SfTLstiFOYGa0fUj3hC0r oP4muKgXhdslhd/0hnBBJvmAjow0iOJWz7re4SHmWkMh1otzJCoMs4Up/PfyVDlaq1wX 01iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=Tb7eak0fnXBbpHkQ6RD7c94PCh+h4m119aRi0NXAmMg=; b=N7/sKSNmVJo7qSvM8sO8jedPZ+SYWucMtfmzG2vaTEu/oRJ8r+YxMk/GDY7hCgyUFI WPEEqp4aAFUYMxsg8wvfhggIH71a5RH0TKeRq1dppKhmpCgLac92lXcwrRsOGm6b/3yj VhX1E/2l30GVRE/pY+RcWPSvLIK1MwP/h6apX4qa/wBxMACo7kIWpFDh6MND3silWUIs qoSL6Bp1TCTJXXjzUDJCpePdfOOrLz5DAlQJuWssJHJCEKy5engy3l73GXz8fmhFbqPW PsiQISbDOMgBi04O24WUL+taFOdIArqKJVrDyo6kToU8nEeC2ruRfZN5E1eV3DD5t0qT XbUw== X-Gm-Message-State: AO0yUKWEQCCVrkAhO+RicDHrvwflWmyHn/ArEI+s/Ws+wADDeXkWMXw+ rnohNCJai/fxllxLxpyPKUWOHPcUeVkYJ0IDC8M= X-Google-Smtp-Source: AK7set/971+p/EHo1IXakqwEwjsNVEGQVuN6kTX7Wjd/j+c6eRnJhKSnnuOBEHL3roNH1mLzSYvOuQ== X-Received: by 2002:a17:902:ec83:b0:19a:e7d7:485b with SMTP id x3-20020a170902ec8300b0019ae7d7485bmr5151549plg.34.1676946010119; Mon, 20 Feb 2023 18:20:10 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Peter Maydell Subject: [PATCH v2 10/14] target/arm: Create pauth_ptr_mask Date: Mon, 20 Feb 2023 16:19:47 -1000 Message-Id: <20230221021951.453601-11-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-1-richard.henderson@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=2607:f8b0:4864:20::102e; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102e.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @linaro.org) X-ZM-MESSAGEID: 1676946070731100001 Content-Type: text/plain; charset="utf-8" Keep the logic for pauth within pauth_helper.c, and expose a helper function for use with the gdbstub pac extension. Reviewed-by: Peter Maydell Signed-off-by: Richard Henderson --- target/arm/internals.h | 10 ++++++++++ target/arm/pauth_helper.c | 26 ++++++++++++++++++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index 32b8562cbf..370655061e 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1350,6 +1350,16 @@ int exception_target_el(CPUARMState *env); bool arm_singlestep_active(CPUARMState *env); bool arm_generate_debug_exceptions(CPUARMState *env); =20 +/** + * pauth_ptr_mask: + * @env: cpu context + * @ptr: selects between TTBR0 and TTBR1 + * @data: selects between TBI and TBID + * + * Return a mask of the bits of @ptr that contain the authentication code. + */ +uint64_t pauth_ptr_mask(CPUARMState *env, uint64_t ptr, bool data); + /* Add the cpreg definitions for debug related system registers */ void define_debug_regs(ARMCPU *cpu); =20 diff --git a/target/arm/pauth_helper.c b/target/arm/pauth_helper.c index d0483bf051..20f347332d 100644 --- a/target/arm/pauth_helper.c +++ b/target/arm/pauth_helper.c @@ -339,14 +339,32 @@ static uint64_t pauth_addpac(CPUARMState *env, uint64= _t ptr, uint64_t modifier, return pac | ext | ptr; } =20 -static uint64_t pauth_original_ptr(uint64_t ptr, ARMVAParameters param) +static uint64_t pauth_ptr_mask_internal(ARMVAParameters param) { - /* Note that bit 55 is used whether or not the regime has 2 ranges. */ - uint64_t extfield =3D sextract64(ptr, 55, 1); int bot_pac_bit =3D 64 - param.tsz; int top_pac_bit =3D 64 - 8 * param.tbi; =20 - return deposit64(ptr, bot_pac_bit, top_pac_bit - bot_pac_bit, extfield= ); + return MAKE_64BIT_MASK(bot_pac_bit, top_pac_bit - bot_pac_bit); +} + +static uint64_t pauth_original_ptr(uint64_t ptr, ARMVAParameters param) +{ + uint64_t mask =3D pauth_ptr_mask_internal(param); + + /* Note that bit 55 is used whether or not the regime has 2 ranges. */ + if (extract64(ptr, 55, 1)) { + return ptr | mask; + } else { + return ptr & ~mask; + } +} + +uint64_t pauth_ptr_mask(CPUARMState *env, uint64_t ptr, bool data) +{ + ARMMMUIdx mmu_idx =3D arm_stage1_mmu_idx(env); + ARMVAParameters param =3D aa64_va_parameters(env, ptr, mmu_idx, data); + + return pauth_ptr_mask_internal(param); } =20 static uint64_t pauth_auth(CPUARMState *env, uint64_t ptr, uint64_t modifi= er, --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946164; cv=none; d=zohomail.com; s=zohoarc; b=kgVA7QpVbuF2CTQdHqtWNF/vkw7xodAkYyL4z6hVqnFq9zQd/yHqlUd/HZlHJ349KmVXIQMQClvIx0SQCx8IvwY+yIWz3OQ/LL9ReEmAksGXHgXH7LNRNskpYYfbNv8hbaKVuDx1Ie9tE+8HGFZAdg17Wz66lv3ZzkeQhBSE2xw= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946164; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=5ppe2Qcjf7oc9HJYN5MySDHbITJCBzPtX1IDnG3TMP0=; b=YrPWrXQQxNpQdrH1yDXT3KsUfLciJ2lW983mIRN7EKxu6enzwCEWiNuNWck6UvR6C1d1sokpYRe1HLE236/V03JvTtdPYE80bizUKQHBJE9y4n6XDMjSRaYW6kf9jEt2pLMoGD14rFsaUu2y/OqErmD1cBK9jDiqcQaq49a2JT8= 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 1676946164854912.7031798571938; Mon, 20 Feb 2023 18:22:44 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGd-0001kq-6X; Mon, 20 Feb 2023 21:20:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGO-0001fV-Px for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:18 -0500 Received: from mail-pj1-x1044.google.com ([2607:f8b0:4864:20::1044]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIGM-0008GF-IF for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:16 -0500 Received: by mail-pj1-x1044.google.com with SMTP id v3-20020a17090a6b0300b002341a2656e5so3142200pjj.1 for ; Mon, 20 Feb 2023 18:20:12 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.20.10 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=5ppe2Qcjf7oc9HJYN5MySDHbITJCBzPtX1IDnG3TMP0=; b=SkOM92ii9nNZjeb5wi06xOzuxQmWZPxsZLw6x0oSc9Z6aUTQtD/UsU8N3gcWnFqLVg 77gKMN5P/6UICzwqEubCjGz1l1bMtsPAOkSQje/3EPPTiWhPzIr1o0uKQsGFxAkCgDz1 qeVW2q67Cyi9d7LoZpdpFTbpE4UXu8tpDV29AVAzosa6Epy2AtjDVmif3lES7xxlsU+K U40Ft5c87Fi2Rmigc+hVeTa1QL9t7X2SrcZecTDaTPy4vKlhTGEZmynAuo7B3JMyBfCG XoMQye9fsmpbImu8ujxmSp24sTb74KYnBiAAFBPCGe90CwjLyVeaKLg9dad1LG8Q9tNf mGGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=5ppe2Qcjf7oc9HJYN5MySDHbITJCBzPtX1IDnG3TMP0=; b=gcJ9yXsuUMn/xgx/V/fVArcVQ+KemkSycQKKr2K4L1wfcZP2NRNY1FZPNxuj8JZ25C Qz/ZapfNeU6MD5WL+dX0Z1h8epQbfUxQgPsyP6YJQZgS5RrrdHbQ6cP9bAUEow0/GnLK +VN4vY/KSZTiva0lTi5mUM7deGYswi/pE0FmZu6YZjFpwiUnhBNyT92+0g5bb3ppUj4v XGiOJ7Oidl8yJTZSg0l7SJLMWB3cicB9k0dOUcGzmonOhymf00gurnjOkoXCOaay7nKn S2bJoM6uyg0LuVaFmssOv6WUpcNWr0pXA8TrCDvJiRI/B+eFiqo0mqF3MILU1p0tdnDy b6/Q== X-Gm-Message-State: AO0yUKVggKIX7m5fh/KR2zUcvgCTSSg+9UbyxMLy5tW5nqoTINvUAF0a 3i+cdMVnQH6StVja3dSBrbvu/EqPaSOTssPL8cCxhA== X-Google-Smtp-Source: AK7set/4VeAS4x3D3hUchV80Ni5vMH3o6rIxpJc77bcbSME67blbkXObKAS+MZPVis9t6vDOmsEMFw== X-Received: by 2002:a17:903:2441:b0:19a:9610:b234 with SMTP id l1-20020a170903244100b0019a9610b234mr3893497pls.1.1676946011785; Mon, 20 Feb 2023 18:20:11 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, Luis Machado , Thiago Jung Bauermann Subject: [PATCH v2 11/14] target/arm: Implement gdbstub pauth extension Date: Mon, 20 Feb 2023 16:19:48 -1000 Message-Id: <20230221021951.453601-12-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::1044; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1044.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: 1676946167041100015 Content-Type: text/plain; charset="utf-8" The extension is primarily defined by the Linux kernel NT_ARM_PAC_MASK ptrace register set. The original gdb feature consists of two masks, data and code, which are used to mask out the authentication code within a pointer. Following discussion with Luis Machado, add two more masks in order to support pointers within the high half of the address space (i.e. TTBR1 vs TTBR0). Cc: Luis Machado Cc: Thiago Jung Bauermann Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1105 Signed-off-by: Richard Henderson Reviewed-by: Peter Maydell --- configs/targets/aarch64-linux-user.mak | 2 +- configs/targets/aarch64-softmmu.mak | 2 +- configs/targets/aarch64_be-linux-user.mak | 2 +- target/arm/internals.h | 2 ++ target/arm/gdbstub.c | 5 ++++ target/arm/gdbstub64.c | 34 +++++++++++++++++++++++ gdb-xml/aarch64-pauth.xml | 15 ++++++++++ 7 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 gdb-xml/aarch64-pauth.xml diff --git a/configs/targets/aarch64-linux-user.mak b/configs/targets/aarch= 64-linux-user.mak index db552f1839..ba8bc5fe3f 100644 --- a/configs/targets/aarch64-linux-user.mak +++ b/configs/targets/aarch64-linux-user.mak @@ -1,6 +1,6 @@ TARGET_ARCH=3Daarch64 TARGET_BASE_ARCH=3Darm -TARGET_XML_FILES=3D gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml +TARGET_XML_FILES=3D gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-x= ml/aarch64-pauth.xml TARGET_HAS_BFLT=3Dy CONFIG_SEMIHOSTING=3Dy CONFIG_ARM_COMPATIBLE_SEMIHOSTING=3Dy diff --git a/configs/targets/aarch64-softmmu.mak b/configs/targets/aarch64-= softmmu.mak index d489e6da83..b4338e9568 100644 --- a/configs/targets/aarch64-softmmu.mak +++ b/configs/targets/aarch64-softmmu.mak @@ -1,5 +1,5 @@ TARGET_ARCH=3Daarch64 TARGET_BASE_ARCH=3Darm TARGET_SUPPORTS_MTTCG=3Dy -TARGET_XML_FILES=3D gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-x= ml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sy= sregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-prof= ile-mve.xml +TARGET_XML_FILES=3D gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-x= ml/arm-core.xml gdb-xml/arm-vfp.xml gdb-xml/arm-vfp3.xml gdb-xml/arm-vfp-sy= sregs.xml gdb-xml/arm-neon.xml gdb-xml/arm-m-profile.xml gdb-xml/arm-m-prof= ile-mve.xml gdb-xml/aarch64-pauth.xml TARGET_NEED_FDT=3Dy diff --git a/configs/targets/aarch64_be-linux-user.mak b/configs/targets/aa= rch64_be-linux-user.mak index dc78044fb1..acb5620cdb 100644 --- a/configs/targets/aarch64_be-linux-user.mak +++ b/configs/targets/aarch64_be-linux-user.mak @@ -1,7 +1,7 @@ TARGET_ARCH=3Daarch64 TARGET_BASE_ARCH=3Darm TARGET_BIG_ENDIAN=3Dy -TARGET_XML_FILES=3D gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml +TARGET_XML_FILES=3D gdb-xml/aarch64-core.xml gdb-xml/aarch64-fpu.xml gdb-x= ml/aarch64-pauth.xml TARGET_HAS_BFLT=3Dy CONFIG_SEMIHOSTING=3Dy CONFIG_ARM_COMPATIBLE_SEMIHOSTING=3Dy diff --git a/target/arm/internals.h b/target/arm/internals.h index 370655061e..fb88b16579 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1331,6 +1331,8 @@ int aarch64_gdb_get_sve_reg(CPUARMState *env, GByteAr= ray *buf, int reg); int aarch64_gdb_set_sve_reg(CPUARMState *env, uint8_t *buf, int reg); int aarch64_gdb_get_fpu_reg(CPUARMState *env, GByteArray *buf, int reg); int aarch64_gdb_set_fpu_reg(CPUARMState *env, uint8_t *buf, int reg); +int aarch64_gdb_get_pauth_reg(CPUARMState *env, GByteArray *buf, int reg); +int aarch64_gdb_set_pauth_reg(CPUARMState *env, uint8_t *buf, int reg); void arm_cpu_sve_finalize(ARMCPU *cpu, Error **errp); void arm_cpu_sme_finalize(ARMCPU *cpu, Error **errp); void arm_cpu_pauth_finalize(ARMCPU *cpu, Error **errp); diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index bf8aff7824..062c8d447a 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -355,6 +355,11 @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *cp= u) aarch64_gdb_set_fpu_reg, 34, "aarch64-fpu.xml", 0); } + if (isar_feature_aa64_pauth(&cpu->isar)) { + gdb_register_coprocessor(cs, aarch64_gdb_get_pauth_reg, + aarch64_gdb_set_pauth_reg, + 4, "aarch64-pauth.xml", 0); + } #endif } else { if (arm_feature(env, ARM_FEATURE_NEON)) { diff --git a/target/arm/gdbstub64.c b/target/arm/gdbstub64.c index 3d9e9e97c8..3bee892fb7 100644 --- a/target/arm/gdbstub64.c +++ b/target/arm/gdbstub64.c @@ -210,6 +210,40 @@ int aarch64_gdb_set_sve_reg(CPUARMState *env, uint8_t = *buf, int reg) return 0; } =20 +int aarch64_gdb_get_pauth_reg(CPUARMState *env, GByteArray *buf, int reg) +{ + switch (reg) { + case 0: /* pauth_dmask */ + case 1: /* pauth_cmask */ + case 2: /* pauth_dmask_high */ + case 3: /* pauth_cmask_high */ + /* + * Note that older versions of this feature only contained + * pauth_{d,c}mask, for use with Linux user processes, and + * thus exclusively in the low half of the address space. + * + * To support system mode, and to debug kernels, two new regs + * were added to cover the high half of the address space. + * For the purpose of pauth_ptr_mask, we can use any well-formed + * address within the address space half -- here, 0 and -1. + */ + { + bool is_data =3D !(reg & 1); + bool is_high =3D reg & 2; + uint64_t mask =3D pauth_ptr_mask(env, -is_high, is_data); + return gdb_get_reg64(buf, mask); + } + default: + return 0; + } +} + +int aarch64_gdb_set_pauth_reg(CPUARMState *env, uint8_t *buf, int reg) +{ + /* All pseudo registers are read-only. */ + return 0; +} + static void output_vector_union_type(GString *s, int reg_width, const char *name) { diff --git a/gdb-xml/aarch64-pauth.xml b/gdb-xml/aarch64-pauth.xml new file mode 100644 index 0000000000..24af5f903c --- /dev/null +++ b/gdb-xml/aarch64-pauth.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946114; cv=none; d=zohomail.com; s=zohoarc; b=eDzs6KygybI31OUrtFXTUlHSg4y3lwNPvLiJ7NO8eW2wDPIc7S2Os3XyTaE2GNK7v9z+k1Obfp3LIxvNw9/9MI3gSEQ712ngG+0OHQ0PnB42BA1bn7jfG2L/kRjtDALHrzPf5nPP3jpaGyKiXGdUGyo2XcQtN4AIuP9eBCiRjig= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946114; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=i+YvvHaR7YFBJCK+oJ5F1iI+cpvOya9eRF9FOFdF3og=; b=geiHRCXHYJHfu62AgVXZD+eT3F2PwiPjXaN856yEckxdasS4Iw9Oikea/QfRT8rzUUVIfsIQjHO5nqFgrnn0sDKFYtuQ+HyKDsHVQAFX81UXShaZO9Ku9TZq31OHMNnylUKbusWECIzb+imYlMBl8Sx0Q739uY5p5GpbrWsT3iU= 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 1676946114903797.6073906676907; Mon, 20 Feb 2023 18:21:54 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGc-0001jz-JQ; Mon, 20 Feb 2023 21:20:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGO-0001fU-Pg for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:18 -0500 Received: from mail-pj1-x102d.google.com ([2607:f8b0:4864:20::102d]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIGM-000821-Kd for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:15 -0500 Received: by mail-pj1-x102d.google.com with SMTP id nt5-20020a17090b248500b00237161e33f4so1357346pjb.4 for ; Mon, 20 Feb 2023 18:20:13 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.20.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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+YvvHaR7YFBJCK+oJ5F1iI+cpvOya9eRF9FOFdF3og=; b=vOM+OaLy67OxZjZ8zTEWTulThlKqQT/rjLIk3R6UDyiK+WrDGymOL+41kPA0K5a8Ly y9/va0xEmm7Srh9EaMeV4m69eVrLrmgOHiXtK9okm9z8WqKhSKuzoBlEphkR6iJZFuCx K6qZvQ5rcHv6Y+WtX1ne6nzTII0Z5zhG/lu96sfejFayYJCfYi/DX32dEy28afdEzN6U niiS6d+zfHI3hW2CzwmKJLqwdRn70OYE0o9IqwjLz4YT+PqNzm0eeb0OrAP/bhTbSirZ y53f9LT0wkEl/G1mepKZilGfJn4wd4hFOst6LIutg73hNtnGHjov/1U1iDjvssRFJO8K t8Mw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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+YvvHaR7YFBJCK+oJ5F1iI+cpvOya9eRF9FOFdF3og=; b=vrhwkcdcnYtT2xwI1SI+V/7GSMyYtzzEz66piS5/1C6Sw0D5JvMxtEnBlkLI8sNznh 8ASgFwo72zpkLX+ySsBnAruA1KEeyhMkmEVkWTuZF1QaxLwXLd/1JTVNDuMSu3k83I+8 9jjItg7ZoxpzI4IVkH9Ngm/3puY3iemge+657eOjfaub2YtmWSfkGksr6Om/7Zrq6VeA JoP73xGX9eUlqmEayocrs9G/1JsmZWvutN2S17iZHoHWBM8FaWU9SoHBCqPOUhwqq5+J iJhLhpNZv4evRDCPohBakmiF77iEqG+mpvyhf15ExqZpFkSghcBafb0zzV1wPOyhuRJE JhBg== X-Gm-Message-State: AO0yUKV6tZUOXL2nRdrrpux74vy5cT/j4u/nxiJSqtkHUOAd//omwYMw 4+/4A3QyaaBcpkkWZMSE3YbBokxpnpaC8Gfw7oY= X-Google-Smtp-Source: AK7set+Vmg25E19V+Kjp8aPZl24fLeCyxfwaLqtTGBGaTFQAdL6qZmMUNa/neZ78+0hrRVHTRA3Q+Q== X-Received: by 2002:a17:903:183:b0:19b:33c0:40ab with SMTP id z3-20020a170903018300b0019b33c040abmr3504795plg.43.1676946013245; Mon, 20 Feb 2023 18:20:13 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, David Reiss , Peter Maydell Subject: [PATCH v2 12/14] target/arm: Export arm_v7m_mrs_control Date: Mon, 20 Feb 2023 16:19:49 -1000 Message-Id: <20230221021951.453601-13-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::102d; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102d.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: 1676946116707100003 Content-Type: text/plain; charset="utf-8" From: David Reiss Allow the function to be used outside of m_helper.c. Rename with an "arm_" prefix. Reviewed-by: Peter Maydell Signed-off-by: David Reiss [rth: Split out of a larger patch] Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/internals.h | 3 +++ target/arm/m_helper.c | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index fb88b16579..89052b1c94 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1339,6 +1339,9 @@ void arm_cpu_pauth_finalize(ARMCPU *cpu, Error **errp= ); void arm_cpu_lpa2_finalize(ARMCPU *cpu, Error **errp); #endif =20 +/* Read the CONTROL register as the MRS instruction would. */ +uint32_t arm_v7m_mrs_control(CPUARMState *env, uint32_t secure); + #ifdef CONFIG_USER_ONLY static inline void define_cortex_a72_a57_a53_cp_reginfo(ARMCPU *cpu) { } #else diff --git a/target/arm/m_helper.c b/target/arm/m_helper.c index f94e87e728..03be79e7bf 100644 --- a/target/arm/m_helper.c +++ b/target/arm/m_helper.c @@ -56,7 +56,7 @@ static uint32_t v7m_mrs_xpsr(CPUARMState *env, uint32_t r= eg, unsigned el) return xpsr_read(env) & mask; } =20 -static uint32_t v7m_mrs_control(CPUARMState *env, uint32_t secure) +uint32_t arm_v7m_mrs_control(CPUARMState *env, uint32_t secure) { uint32_t value =3D env->v7m.control[secure]; =20 @@ -93,7 +93,7 @@ uint32_t HELPER(v7m_mrs)(CPUARMState *env, uint32_t reg) case 0 ... 7: /* xPSR sub-fields */ return v7m_mrs_xpsr(env, reg, 0); case 20: /* CONTROL */ - return v7m_mrs_control(env, 0); + return arm_v7m_mrs_control(env, 0); default: /* Unprivileged reads others as zero. */ return 0; @@ -2465,7 +2465,7 @@ uint32_t HELPER(v7m_mrs)(CPUARMState *env, uint32_t r= eg) case 0 ... 7: /* xPSR sub-fields */ return v7m_mrs_xpsr(env, reg, el); case 20: /* CONTROL */ - return v7m_mrs_control(env, env->v7m.secure); + return arm_v7m_mrs_control(env, env->v7m.secure); case 0x94: /* CONTROL_NS */ /* * We have to handle this here because unprivileged Secure code --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946118; cv=none; d=zohomail.com; s=zohoarc; b=TuEOOCbbNWcQPNDrZb/K2ZVtmzFtP8PDNDV5HFmX9A+n3lLJGJoY4Z9Ue3ZE8dB6K24nL6NN4V9j1gX7cnZQ2eJxSbKpe6sNz2aApWtp4itBWlC67H+aeHFSzMoQdxN1U1xYqrPk8FsAHS5FQ2LxaZP1bf+Y6kOkqpvE79hAy74= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946118; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=IdlPIsbyU63QTH8OjgZ/6X4x7sICRqYPKrZtVtFUFwM=; b=I7OGNXHcgf32CjqONIZhVlTxpN0pkWIFHVD+WLHdQrRIskmfiRvDJnA/oFP61ZYZyOTGze9ZjnEL2Cm/WmsPQEQ4s0EVHWzmieSwOoyivrse86GPZK6ZJnWI43pnOZy2hzXNa8la981hELi7aUIim+7XKcqdF7Bb3JqpuL6LNdY= 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 1676946118242439.07211590129646; Mon, 20 Feb 2023 18:21:58 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGc-0001kM-SC; Mon, 20 Feb 2023 21:20:30 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGT-0001gV-1m for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:22 -0500 Received: from mail-pj1-x102f.google.com ([2607:f8b0:4864:20::102f]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIGO-0008Gx-I7 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:19 -0500 Received: by mail-pj1-x102f.google.com with SMTP id m3-20020a17090ade0300b00229eec90a7fso2199710pjv.0 for ; Mon, 20 Feb 2023 18:20:15 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.20.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=IdlPIsbyU63QTH8OjgZ/6X4x7sICRqYPKrZtVtFUFwM=; b=ygWv7RorVIYKMA9vAgRqgfHF1CuoVxM5ImvinGKkYG05Ikj3G4mAjh265icXy1xG+9 JjVlrx89q+gay5bseCkJeQrd3rZLK6nNIPkUSrksFGqkdGa+64qugLaJfsxettvri0M7 I76pNXcSz9d0D4KFygLISkEYj+NtFlaxCWDl/75Ej5YJc8PgKBayB6H71FZwm5DiWW98 7cDyQyBtqOwgmYULYCCVqNNZCU2r62VKEYDPZtwMGOdRJSyKSzswhDz3T35KawXL5w6C 3NQ7NTNdgLct+EinNoriOj42M58gjd58hGg2J5OL6sexWzNOocTMWeWIrvkzbtOBc2BV h76Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=IdlPIsbyU63QTH8OjgZ/6X4x7sICRqYPKrZtVtFUFwM=; b=LvjMGJiDsIMNL7wTP0ojwdPMh5kERjjZg8+4oEnRX8kkM/V6NkgF6LwrJAzRmhxvK3 jHhfYnAHvnVfSAoAByS6hCdCI2V39xLACU9w8rtMpIofNXZdQq1EydPRtmZ/n6riUdIB ZYc6SRM/a7VXyH3zD4HBxCoyHMnlWLoqFpC2BiFV8jxAx1ksLFUV+tdFfFYcLjn/6d4c j6iYirDv+lmz+VrS2zcnWS3QmjeAtwOPbTweVJ08Z7Tt0ZglY3WPBIHc0tjdt5uxY3rd Lyb0s7Vz8A48Vf9bccg6yLavUnQU142gEwASXyIVfgFk9Z/dP43n8Nb/xhIQ3y+ND3XL lLYA== X-Gm-Message-State: AO0yUKUNw8tT5E+Nr4XAzctdB5GeohMpMDgbXRwmFlbDeb9GsvQC82Ii L2YxIpC8M4nQMqjTZSRFigxSGA5WGf+G0TrApuc= X-Google-Smtp-Source: AK7set8IclW5jgTb7DdHRpEfr9Qzu+3hqZ11QMgpBrFPU/9a+sETs1b6kct92tzBdIuQLCYZXaqX4g== X-Received: by 2002:a17:903:2805:b0:196:5839:b36a with SMTP id kp5-20020a170903280500b001965839b36amr2925918plb.8.1676946014861; Mon, 20 Feb 2023 18:20:14 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, David Reiss , Peter Maydell Subject: [PATCH v2 13/14] target/arm: Export arm_v7m_get_sp_ptr Date: Mon, 20 Feb 2023 16:19:50 -1000 Message-Id: <20230221021951.453601-14-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::102f; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x102f.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: 1676946118697100007 Content-Type: text/plain; charset="utf-8" From: David Reiss Allow the function to be used outside of m_helper.c. Move to be outside of ifndef CONFIG_USER_ONLY block. Rename from get_v7m_sp_ptr. Reviewed-by: Peter Maydell Signed-off-by: David Reiss [rth: Split out of a larger patch] Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/internals.h | 10 +++++ target/arm/m_helper.c | 84 +++++++++++++++++++++--------------------- 2 files changed, 51 insertions(+), 43 deletions(-) diff --git a/target/arm/internals.h b/target/arm/internals.h index 89052b1c94..523822ac87 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1342,6 +1342,16 @@ void arm_cpu_lpa2_finalize(ARMCPU *cpu, Error **errp= ); /* Read the CONTROL register as the MRS instruction would. */ uint32_t arm_v7m_mrs_control(CPUARMState *env, uint32_t secure); =20 +/* + * Return a pointer to the location where we currently store the + * stack pointer for the requested security state and thread mode. + * This pointer will become invalid if the CPU state is updated + * such that the stack pointers are switched around (eg changing + * the SPSEL control bit). + */ +uint32_t *arm_v7m_get_sp_ptr(CPUARMState *env, bool secure, + bool threadmode, bool spsel); + #ifdef CONFIG_USER_ONLY static inline void define_cortex_a72_a57_a53_cp_reginfo(ARMCPU *cpu) { } #else diff --git a/target/arm/m_helper.c b/target/arm/m_helper.c index 03be79e7bf..081fc3f5f7 100644 --- a/target/arm/m_helper.c +++ b/target/arm/m_helper.c @@ -650,42 +650,6 @@ void HELPER(v7m_blxns)(CPUARMState *env, uint32_t dest) arm_rebuild_hflags(env); } =20 -static uint32_t *get_v7m_sp_ptr(CPUARMState *env, bool secure, bool thread= mode, - bool spsel) -{ - /* - * Return a pointer to the location where we currently store the - * stack pointer for the requested security state and thread mode. - * This pointer will become invalid if the CPU state is updated - * such that the stack pointers are switched around (eg changing - * the SPSEL control bit). - * Compare the v8M ARM ARM pseudocode LookUpSP_with_security_mode(). - * Unlike that pseudocode, we require the caller to pass us in the - * SPSEL control bit value; this is because we also use this - * function in handling of pushing of the callee-saves registers - * part of the v8M stack frame (pseudocode PushCalleeStack()), - * and in the tailchain codepath the SPSEL bit comes from the exception - * return magic LR value from the previous exception. The pseudocode - * opencodes the stack-selection in PushCalleeStack(), but we prefer - * to make this utility function generic enough to do the job. - */ - bool want_psp =3D threadmode && spsel; - - if (secure =3D=3D env->v7m.secure) { - if (want_psp =3D=3D v7m_using_psp(env)) { - return &env->regs[13]; - } else { - return &env->v7m.other_sp; - } - } else { - if (want_psp) { - return &env->v7m.other_ss_psp; - } else { - return &env->v7m.other_ss_msp; - } - } -} - static bool arm_v7m_load_vector(ARMCPU *cpu, int exc, bool targets_secure, uint32_t *pvec) { @@ -810,8 +774,8 @@ static bool v7m_push_callee_stack(ARMCPU *cpu, uint32_t= lr, bool dotailchain, !mode; =20 mmu_idx =3D arm_v7m_mmu_idx_for_secstate_and_priv(env, M_REG_S, pr= iv); - frame_sp_p =3D get_v7m_sp_ptr(env, M_REG_S, mode, - lr & R_V7M_EXCRET_SPSEL_MASK); + frame_sp_p =3D arm_v7m_get_sp_ptr(env, M_REG_S, mode, + lr & R_V7M_EXCRET_SPSEL_MASK); want_psp =3D mode && (lr & R_V7M_EXCRET_SPSEL_MASK); if (want_psp) { limit =3D env->v7m.psplim[M_REG_S]; @@ -1656,10 +1620,8 @@ static void do_v7m_exception_exit(ARMCPU *cpu) * use 'frame_sp_p' after we do something that makes it invalid. */ bool spsel =3D env->v7m.control[return_to_secure] & R_V7M_CONTROL_= SPSEL_MASK; - uint32_t *frame_sp_p =3D get_v7m_sp_ptr(env, - return_to_secure, - !return_to_handler, - spsel); + uint32_t *frame_sp_p =3D arm_v7m_get_sp_ptr(env, return_to_secure, + !return_to_handler, spse= l); uint32_t frameptr =3D *frame_sp_p; bool pop_ok =3D true; ARMMMUIdx mmu_idx; @@ -1965,7 +1927,7 @@ static bool do_v7m_function_return(ARMCPU *cpu) threadmode =3D !arm_v7m_is_handler_mode(env); spsel =3D env->v7m.control[M_REG_S] & R_V7M_CONTROL_SPSEL_MASK; =20 - frame_sp_p =3D get_v7m_sp_ptr(env, true, threadmode, spsel); + frame_sp_p =3D arm_v7m_get_sp_ptr(env, true, threadmode, spsel); frameptr =3D *frame_sp_p; =20 /* @@ -2900,3 +2862,39 @@ uint32_t HELPER(v7m_tt)(CPUARMState *env, uint32_t a= ddr, uint32_t op) } =20 #endif /* !CONFIG_USER_ONLY */ + +uint32_t *arm_v7m_get_sp_ptr(CPUARMState *env, bool secure, bool threadmod= e, + bool spsel) +{ + /* + * Return a pointer to the location where we currently store the + * stack pointer for the requested security state and thread mode. + * This pointer will become invalid if the CPU state is updated + * such that the stack pointers are switched around (eg changing + * the SPSEL control bit). + * Compare the v8M ARM ARM pseudocode LookUpSP_with_security_mode(). + * Unlike that pseudocode, we require the caller to pass us in the + * SPSEL control bit value; this is because we also use this + * function in handling of pushing of the callee-saves registers + * part of the v8M stack frame (pseudocode PushCalleeStack()), + * and in the tailchain codepath the SPSEL bit comes from the exception + * return magic LR value from the previous exception. The pseudocode + * opencodes the stack-selection in PushCalleeStack(), but we prefer + * to make this utility function generic enough to do the job. + */ + bool want_psp =3D threadmode && spsel; + + if (secure =3D=3D env->v7m.secure) { + if (want_psp =3D=3D v7m_using_psp(env)) { + return &env->regs[13]; + } else { + return &env->v7m.other_sp; + } + } else { + if (want_psp) { + return &env->v7m.other_ss_psp; + } else { + return &env->v7m.other_ss_msp; + } + } +} --=20 2.34.1 From nobody Tue May 14 16:46:21 2024 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=1676946158; cv=none; d=zohomail.com; s=zohoarc; b=WvIUyGdQWVGr/l4MuN2oxKfCFD9eabxYMOdG8zNmTCemVkwMZu1kARIkFSOJLBk+VHetHTSXOYm7N9mbG0xKTyeo9OsB/APXSx55v7LOCl8mBzzU6cPAOSWBSquOifqirZLq6PgTMmgJHo7Vah2KCuyXshNyEzN0S3dnI8gVSBk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1676946158; h=Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To; bh=C4PEKitcWEtZp1SVejXeRjs9KFolSy/o7SWCuKGHUqY=; b=KFmygvJW/i7qbvePZO9Eb7KkfHv6z3sRTdGa7zmAJMrXq6DzheWZgVFWj6QWjnc8YUgSBUEHUq+d1POVu3c+yP1Gc+PpcfxMHWxwqsqrbFVUpeLmBei4RtGL6Rz8zR7CFzGLqhUnNRd+KvZIARowIedaIkMlQNRgnd75CNNSsmI= 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 167694615895998.04576441020322; Mon, 20 Feb 2023 18:22:38 -0800 (PST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pUIGd-0001lA-RU; Mon, 20 Feb 2023 21:20:31 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pUIGW-0001gn-6C for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:27 -0500 Received: from mail-pj1-x1032.google.com ([2607:f8b0:4864:20::1032]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pUIGS-0008HQ-Q6 for qemu-devel@nongnu.org; Mon, 20 Feb 2023 21:20:23 -0500 Received: by mail-pj1-x1032.google.com with SMTP id g14so3176296pjb.2 for ; Mon, 20 Feb 2023 18:20:17 -0800 (PST) Received: from stoup.. (rrcs-173-198-77-218.west.biz.rr.com. [173.198.77.218]) by smtp.gmail.com with ESMTPSA id f3-20020a170902e98300b0019141c79b1dsm8559328plb.254.2023.02.20.18.20.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 20 Feb 2023 18:20:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; 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=C4PEKitcWEtZp1SVejXeRjs9KFolSy/o7SWCuKGHUqY=; b=N3NJ6KF/Gh2/d861Aetl7rqT0Zky2IIUUjMpRt3v6HM9zOcFxTFAhYSdu18wqJjudF GgO1BeNnRfW4BjyXDTvrL8kX9nj1BqHMlSwgF9gmce7g2h0cSmoLaSKA+5DYkAfRZDj3 kao8lu5EVBLkYbhVIY7kGN8acW8d+bVmoO6AyryW8QB9bqe44bP9f/t9aYfbG3ASEcfg WDUWWyG418X1Iqj/NyKMghAGJk10YKTZrHkpPG6zJAo8eEvuaNBnhkl/xFhjmsZJdo00 yn7FfPVRNYmE5cxcr1bHiK1b5/AkyxFixcAdQLJCPY4Eu+wmsfXKslqjplYL5kQlg1FQ NWyw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=C4PEKitcWEtZp1SVejXeRjs9KFolSy/o7SWCuKGHUqY=; b=rMUVP9RptPuf5D1n1wdvIuhHtDIDZZMdjIeAzR2Fx75yswrMjoDCCP1NBAIIoj8p/J 15CGhD630ukJaZsjGGt265YNusXT0nKI3GJ++biLOZGClRpg49Q6/yW97mMdiScTkM65 1ANcZ5IkFh+D/WQWpVvSoHlf61cq+7IYZtSeDDWOXNyogMYrUaTq6wkcefM32NGF9v+j f5hkiWVkENKk6svzFvsxhqvZdoN7UWyrt75Wz/QCjYCKyCJD6YE/pHJVoR+xKuXhZLrv qTxbl9aYfB2fqACaHxUAnUUMXdkdk/hFxFQdZh+muDPMBvxXUJ2uoLzuq6u91BMCfb8o oB3A== X-Gm-Message-State: AO0yUKUQ+l/7N+Jr9BlO2W7bWHPhWVj4TtaMdLmvstxTLZUjTbraaBN9 rS5iskC3scwkjcthtNDpnFPRstrhVQUlM3mOSB4= X-Google-Smtp-Source: AK7set++Be8zHgmUDdR3gZrQHk0kVJsgVSue7Vq6M3KfqUB8UNc42rncmzNlbRgoR9vks1iVKdnzlQ== X-Received: by 2002:a17:903:28c4:b0:19b:e2a:de14 with SMTP id kv4-20020a17090328c400b0019b0e2ade14mr2645611plb.6.1676946016371; Mon, 20 Feb 2023 18:20:16 -0800 (PST) From: Richard Henderson To: qemu-devel@nongnu.org Cc: qemu-arm@nongnu.org, David Reiss Subject: [PATCH v2 14/14] target/arm: Implement gdbstub m-profile systemreg and secext Date: Mon, 20 Feb 2023 16:19:51 -1000 Message-Id: <20230221021951.453601-15-richard.henderson@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230221021951.453601-1-richard.henderson@linaro.org> References: <20230221021951.453601-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::1032; envelope-from=richard.henderson@linaro.org; helo=mail-pj1-x1032.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: 1676946161008100003 Content-Type: text/plain; charset="utf-8" The upstream gdb xml only implements {MSP,PSP}{,_NS,S}, but go ahead and implement the other system registers as well. Since there is significant overlap between the two, implement them with common code. The only exception is the systemreg view of CONTROL, which merges the banked bits as per MRS. Signed-off-by: David Reiss [rth: Substatial rewrite using enumerator and shared code.] Signed-off-by: Richard Henderson Reviewed-by: Philippe Mathieu-Daud=C3=A9 --- target/arm/cpu.h | 2 + target/arm/gdbstub.c | 194 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 196 insertions(+) diff --git a/target/arm/cpu.h b/target/arm/cpu.h index 059fe62eaa..6e97a256fb 100644 --- a/target/arm/cpu.h +++ b/target/arm/cpu.h @@ -869,6 +869,8 @@ struct ArchCPU { =20 DynamicGDBXMLInfo dyn_sysreg_xml; DynamicGDBXMLInfo dyn_svereg_xml; + DynamicGDBXMLInfo dyn_m_systemreg_xml; + DynamicGDBXMLInfo dyn_m_secextreg_xml; =20 /* Timers used by the generic (architected) timer */ QEMUTimer *gt_timer[NUM_GTIMERS]; diff --git a/target/arm/gdbstub.c b/target/arm/gdbstub.c index 062c8d447a..fef53e4ef5 100644 --- a/target/arm/gdbstub.c +++ b/target/arm/gdbstub.c @@ -322,6 +322,180 @@ static int arm_gen_dynamic_sysreg_xml(CPUState *cs, i= nt base_reg) return cpu->dyn_sysreg_xml.num; } =20 +typedef enum { + M_SYSREG_MSP, + M_SYSREG_PSP, + M_SYSREG_PRIMASK, + M_SYSREG_CONTROL, + M_SYSREG_BASEPRI, + M_SYSREG_FAULTMASK, + M_SYSREG_MSPLIM, + M_SYSREG_PSPLIM, +} MProfileSysreg; + +static const struct { + const char *name; + int feature; +} m_sysreg_def[] =3D { + [M_SYSREG_MSP] =3D { "msp", ARM_FEATURE_M }, + [M_SYSREG_PSP] =3D { "psp", ARM_FEATURE_M }, + [M_SYSREG_PRIMASK] =3D { "primask", ARM_FEATURE_M }, + [M_SYSREG_CONTROL] =3D { "control", ARM_FEATURE_M }, + [M_SYSREG_BASEPRI] =3D { "basepri", ARM_FEATURE_M_MAIN }, + [M_SYSREG_FAULTMASK] =3D { "faultmask", ARM_FEATURE_M_MAIN }, + [M_SYSREG_MSPLIM] =3D { "msplim", ARM_FEATURE_V8 }, + [M_SYSREG_PSPLIM] =3D { "psplim", ARM_FEATURE_V8 }, +}; + +static uint32_t *m_sysreg_ptr(CPUARMState *env, MProfileSysreg reg, bool s= ec) +{ + uint32_t *ptr; + + switch (reg) { + case M_SYSREG_MSP: + ptr =3D arm_v7m_get_sp_ptr(env, sec, false, true); + break; + case M_SYSREG_PSP: + ptr =3D arm_v7m_get_sp_ptr(env, sec, true, true); + break; + case M_SYSREG_MSPLIM: + ptr =3D &env->v7m.msplim[sec]; + break; + case M_SYSREG_PSPLIM: + ptr =3D &env->v7m.psplim[sec]; + break; + case M_SYSREG_PRIMASK: + ptr =3D &env->v7m.primask[sec]; + break; + case M_SYSREG_BASEPRI: + ptr =3D &env->v7m.basepri[sec]; + break; + case M_SYSREG_FAULTMASK: + ptr =3D &env->v7m.faultmask[sec]; + break; + case M_SYSREG_CONTROL: + ptr =3D &env->v7m.control[sec]; + break; + default: + return NULL; + } + return arm_feature(env, m_sysreg_def[reg].feature) ? ptr : NULL; +} + +static int m_sysreg_get(CPUARMState *env, GByteArray *buf, + MProfileSysreg reg, bool secure) +{ + uint32_t *ptr =3D m_sysreg_ptr(env, reg, secure); + + if (ptr =3D=3D NULL) { + return 0; + } + return gdb_get_reg32(buf, *ptr); +} + +static int m_sysreg_set(CPUARMState *env, uint8_t *buf, + MProfileSysreg reg, bool secure) +{ + uint32_t *ptr =3D m_sysreg_ptr(env, reg, secure); + + if (ptr =3D=3D NULL) { + return 0; + } + *ptr =3D ldl_p(buf); + return 4; +} + +static int arm_gdb_get_m_systemreg(CPUARMState *env, GByteArray *buf, int = reg) +{ + /* + * Here, we emulate MRS instruction, where CONTROL has a mix of + * banked and non-banked bits. + */ + if (reg =3D=3D M_SYSREG_CONTROL) { + return gdb_get_reg32(buf, arm_v7m_mrs_control(env, env->v7m.secure= )); + } + return m_sysreg_get(env, buf, reg, env->v7m.secure); +} + +static int arm_gdb_set_m_systemreg(CPUARMState *env, uint8_t *buf, int reg) +{ + /* Control is a mix of banked and non-banked bits -- disallow write. */ + if (reg =3D=3D M_SYSREG_CONTROL) { + return 0; + } + return m_sysreg_set(env, buf, reg, env->v7m.secure); +} + +static int arm_gen_dynamic_m_systemreg_xml(CPUState *cs, int orig_base_reg) +{ + ARMCPU *cpu =3D ARM_CPU(cs); + CPUARMState *env =3D &cpu->env; + GString *s =3D g_string_new(NULL); + int base_reg =3D orig_base_reg; + int i; + + g_string_printf(s, ""); + g_string_append_printf(s, "= "); + g_string_append_printf(s, "\n"); + + for (i =3D 0; i < ARRAY_SIZE(m_sysreg_def); i++) { + if (arm_feature(env, m_sysreg_def[i].feature)) { + g_string_append_printf(s, + "\n", + m_sysreg_def[i].name, base_reg++); + } + } + + g_string_append_printf(s, ""); + cpu->dyn_m_systemreg_xml.desc =3D g_string_free(s, false); + cpu->dyn_m_systemreg_xml.num =3D base_reg - orig_base_reg; + + return cpu->dyn_m_systemreg_xml.num; +} + +#ifndef CONFIG_USER_ONLY +/* + * For user-only, we see the non-secure registers via m_systemreg above. + * For secext, encode the non-secure view as even and secure view as odd. + */ +static int arm_gdb_get_m_secextreg(CPUARMState *env, GByteArray *buf, int = reg) +{ + return m_sysreg_get(env, buf, reg >> 1, reg & 1); +} + +static int arm_gdb_set_m_secextreg(CPUARMState *env, uint8_t *buf, int reg) +{ + return m_sysreg_set(env, buf, reg >> 1, reg & 1); +} + +static int arm_gen_dynamic_m_secextreg_xml(CPUState *cs, int orig_base_reg) +{ + ARMCPU *cpu =3D ARM_CPU(cs); + GString *s =3D g_string_new(NULL); + int base_reg =3D orig_base_reg; + int i; + + g_string_printf(s, ""); + g_string_append_printf(s, "= "); + g_string_append_printf(s, "= \n"); + + for (i =3D 0; i < ARRAY_SIZE(m_sysreg_def); i++) { + g_string_append_printf(s, + "\n", + m_sysreg_def[i].name, base_reg++); + g_string_append_printf(s, + "\n", + m_sysreg_def[i].name, base_reg++); + } + + g_string_append_printf(s, ""); + cpu->dyn_m_secextreg_xml.desc =3D g_string_free(s, false); + cpu->dyn_m_secextreg_xml.num =3D base_reg - orig_base_reg; + + return cpu->dyn_m_secextreg_xml.num; +} +#endif + const char *arm_gdb_get_dynamic_xml(CPUState *cs, const char *xmlname) { ARMCPU *cpu =3D ARM_CPU(cs); @@ -330,6 +504,12 @@ const char *arm_gdb_get_dynamic_xml(CPUState *cs, cons= t char *xmlname) return cpu->dyn_sysreg_xml.desc; } else if (strcmp(xmlname, "sve-registers.xml") =3D=3D 0) { return cpu->dyn_svereg_xml.desc; + } else if (strcmp(xmlname, "arm-m-system.xml") =3D=3D 0) { + return cpu->dyn_m_systemreg_xml.desc; +#ifndef CONFIG_USER_ONLY + } else if (strcmp(xmlname, "arm-m-secext.xml") =3D=3D 0) { + return cpu->dyn_m_secextreg_xml.desc; +#endif } return NULL; } @@ -389,4 +569,18 @@ void arm_cpu_register_gdb_regs_for_features(ARMCPU *cp= u) arm_gen_dynamic_sysreg_xml(cs, cs->gdb_num_re= gs), "system-registers.xml", 0); =20 + if (arm_feature(env, ARM_FEATURE_M)) { + gdb_register_coprocessor(cs, + arm_gdb_get_m_systemreg, arm_gdb_set_m_systemreg, + arm_gen_dynamic_m_systemreg_xml(cs, cs->gdb_num_regs), + "arm-m-system.xml", 0); +#ifndef CONFIG_USER_ONLY + if (arm_feature(env, ARM_FEATURE_M_SECURITY)) { + gdb_register_coprocessor(cs, + arm_gdb_get_m_secextreg, arm_gdb_set_m_secextreg, + arm_gen_dynamic_m_secextreg_xml(cs, cs->gdb_num_regs), + "arm-m-secext.xml", 0); + } +#endif + } } --=20 2.34.1