From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com [IPv6:2607:f8b0:4864:20::72f]) by sourceware.org (Postfix) with ESMTPS id EE8C83851C3B for ; Mon, 22 Mar 2021 13:22:02 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org EE8C83851C3B Received: by mail-qk1-x72f.google.com with SMTP id c3so10433404qkc.5 for ; Mon, 22 Mar 2021 06:22:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=8uGfRpQTvmGe0LiUax3bVl9E/l5qhm3VxDmtc4JpTMc=; b=GTyG9A+U3M9G6T97wGrGK18BvywXZJUQttXAwyQXPOJsx1y91sD+mPwzQsj+lx3rqy JsY3bYzgCP6y8deEXpKran2wVA+kIGmF6/7B5lyN5HkoMPk60VqJNC3WW/8LbIhbOdPR fLAk4iWzp+yUa3RdIjygAxxq/5bAOArlA95xYvdCkm1oWcyg86FYDQQFDhgwgqNym4At /goBK/LEyAFygahmy3UKbUHZDEsn1Ha3P9BjGlg4vCymlKEUEYuj28nWkJn1ji9ayes2 aY7VfYXil35yeLEv/tyCPpVVduo3unm2mMjzgzs/ZaNmP7vPmAXFNOsIq8zuWLm4JXJT CnMA== X-Gm-Message-State: AOAM533El9aveaxldf6vm1D0UbKtNza1vzbg5L0cY+Rqq0X9dIcma8Zg TNpRAPYnTWddKgcNgeH19+VWXjPkkfe7IA== X-Google-Smtp-Source: ABdhPJx1l515B8riTlw+HQd3wCQBQnJVpZ9whHGaPaq+C088kuGRrExoH8EbHOKsNerCUAYhxU/7pg== X-Received: by 2002:a05:620a:f95:: with SMTP id b21mr10831380qkn.251.1616419322536; Mon, 22 Mar 2021 06:22:02 -0700 (PDT) Received: from localhost.localdomain ([2804:7f0:4841:2841:2c21:ec8a:30f3:55a6]) by smtp.gmail.com with ESMTPSA id r35sm7364575qtd.95.2021.03.22.06.22.01 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 Mar 2021 06:22:02 -0700 (PDT) From: Luis Machado To: gdb-patches@sourceware.org Subject: [PATCH v6 19/25] AArch64: Add MTE register set support for core files Date: Mon, 22 Mar 2021 10:21:13 -0300 Message-Id: <20210322132120.1202230-20-luis.machado@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210322132120.1202230-1-luis.machado@linaro.org> References: <20210322132120.1202230-1-luis.machado@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 22 Mar 2021 13:22:04 -0000 This patch handles the tagged_addr_ctrl register that is exported when generating a core file. gdb/ChangeLog: YYYY-MM-DD Luis Machado * aarch64-linux-tdep.c (aarch64_linux_iterate_over_regset_sections): Handle MTE register set. * aarch64-linux-tdep.h (AARCH64_LINUX_SIZEOF_MTE_REGSET): Define. --- gdb/aarch64-linux-tdep.c | 20 ++++++++++++++++++++ gdb/aarch64-linux-tdep.h | 3 +++ 2 files changed, 23 insertions(+) diff --git a/gdb/aarch64-linux-tdep.c b/gdb/aarch64-linux-tdep.c index 55f49e555a1..78486f17a07 100644 --- a/gdb/aarch64-linux-tdep.c +++ b/gdb/aarch64-linux-tdep.c @@ -728,6 +728,26 @@ aarch64_linux_iterate_over_regset_sections (struct gdbarch *gdbarch, AARCH64_LINUX_SIZEOF_PAUTH, &aarch64_linux_pauth_regset, "pauth registers", cb_data); } + + /* Handle MTE registers. */ + if (tdep->has_mte ()) + { + /* Create this on the fly in order to handle the variable location. */ + const struct regcache_map_entry mte_regmap[] = + { + { 1, tdep->mte_reg_base, 4}, + { 0 } + }; + + const struct regset aarch64_linux_mte_regset = + { + mte_regmap, regcache_supply_regset, regcache_collect_regset + }; + + cb (".reg-aarch-mte", AARCH64_LINUX_SIZEOF_MTE_REGSET, + AARCH64_LINUX_SIZEOF_MTE_REGSET, &aarch64_linux_mte_regset, + "MTE registers", cb_data); + } } /* Implement the "core_read_description" gdbarch method. */ diff --git a/gdb/aarch64-linux-tdep.h b/gdb/aarch64-linux-tdep.h index 84c25172a9b..62a6da83494 100644 --- a/gdb/aarch64-linux-tdep.h +++ b/gdb/aarch64-linux-tdep.h @@ -36,6 +36,9 @@ /* The pauth regset consists of 2 X sized registers. */ #define AARCH64_LINUX_SIZEOF_PAUTH (2 * X_REGISTER_SIZE) +/* The MTE regset consists of a 32-bit register. */ +#define AARCH64_LINUX_SIZEOF_MTE_REGSET (4) + extern const struct regset aarch64_linux_gregset; extern const struct regset aarch64_linux_fpregset; -- 2.25.1