From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out29-171.mail.aliyun.com (out29-171.mail.aliyun.com [115.124.29.171]) by sourceware.org (Postfix) with ESMTPS id 01C863858290 for ; Tue, 12 Jul 2022 02:24:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 01C863858290 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=c-sky.com Authentication-Results: sourceware.org; spf=none smtp.mailfrom=c-sky.com X-Alimail-AntiSpam: AC=SUSPECT; BC=0.6490642|-1; BR=01201311R201b1; CH=blue; DM=|SUSPECT|false|; DS=CONTINUE|ham_system_inform|0.0101029-5.1286e-05-0.989846; FP=0|0|0|0|0|-1|-1|-1; HT=ay29a033018047192; MF=jiangshuai_li@c-sky.com; NM=1; PH=DS; RN=2; RT=2; SR=0; TI=SMTPD_---.OQFEEeI_1657592649; Received: from lijsh-VirtualBox.hz.ali.com(mailfrom:jiangshuai_li@c-sky.com fp:SMTPD_---.OQFEEeI_1657592649) by smtp.aliyun-inc.com; Tue, 12 Jul 2022 10:24:09 +0800 From: Jiangshuai Li To: gdb-patches@sourceware.org Cc: jiangshuai_li@c-sky.com Subject: [PATCH] gdb/csky modify registers list for general_reggroup Date: Tue, 12 Jul 2022 10:23:52 +0800 Message-Id: <20220712022352.9640-1-jiangshuai_li@c-sky.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.3 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, KAM_LAZY_DOMAIN_SECURITY, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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: Tue, 12 Jul 2022 02:24:15 -0000 there are two modification points here: 1. for the debugging of csky architecture, after executing "info register", we hope to print out GPRs, PC and the registers related to exceptions 2. with tdesc-xml, users can view the register groups described in XML --- gdb/csky-tdep.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c index 502b01e33e1..fcdb865eb87 100644 --- a/gdb/csky-tdep.c +++ b/gdb/csky-tdep.c @@ -2518,7 +2518,11 @@ csky_register_reggroup_p (struct gdbarch *gdbarch, int regnum, if (reggroup == save_reggroup || reggroup == restore_reggroup) return raw_p; - if (((regnum >= CSKY_R0_REGNUM) && (regnum <= CSKY_R0_REGNUM + 31)) + if ((((regnum >= CSKY_R0_REGNUM) && (regnum <= CSKY_R0_REGNUM + 31)) + || (regnum == CSKY_PC_REGNUM) + || (regnum == CSKY_EPC_REGNUM) + || (regnum == CSKY_CR0_REGNUM) + || (regnum == CSKY_EPSR_REGNUM)) && (reggroup == general_reggroup)) return 1; @@ -2548,6 +2552,10 @@ csky_register_reggroup_p (struct gdbarch *gdbarch, int regnum, && (reggroup == fr_reggroup)) return 6; + if (tdesc_has_registers (gdbarch_target_desc (gdbarch))) + if (tdesc_register_in_reggroup_p (gdbarch, regnum, reggroup) > 0) + return 7; + return 0; } @@ -3020,6 +3028,8 @@ csky_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) set_gdbarch_num_regs (gdbarch, (num_regs + 1)); tdesc_use_registers (gdbarch, info.target_desc, std::move (tdesc_data)); set_gdbarch_register_type (gdbarch, csky_register_type); + set_gdbarch_register_reggroup_p (gdbarch, + csky_register_reggroup_p); } if (tdep->fv_pseudo_registers_count) -- 2.25.1