From patchwork Wed Nov 9 19:15:41 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Lapshin X-Patchwork-Id: 60294 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CE602385842D for ; Wed, 9 Nov 2022 19:16:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CE602385842D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1668021370; bh=cFILi2cVO4+SJ3bwlc7By2nhvcS/p/DGAQlFat34p+4=; h=To:CC:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=MfGHtoDsWio6Yh8sVcc9XA812SqZpMwu1F8f4uH9BOhx7NYaZXD0N37lZCiRLoAx8 bYrPZNJljOBrxgRNK0D4v50YHzpQ/yLXVxH7ZgoeNACzco6DQ1WIFtiAYkAU2rl2/i Kb9uOBWGwak0cWcZiQcBEjhEFox6WgNB3TrzyGTU= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2104.outbound.protection.outlook.com [40.107.255.104]) by sourceware.org (Postfix) with ESMTPS id AFD343858D28 for ; Wed, 9 Nov 2022 19:15:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org AFD343858D28 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mZDeb0cNDWJSZQ2oHiOj3+LOReTBZis2/e/qqic7j4R2swAdtcynakGkhmIYEwtbSlMq+dL0fV0SwMnpfJw7RmcpYhNJjdbexOGk07dT18AfiqQw7NecCBulzvbh4LrAtUCkqvUtLPNe5Fmv/URvbwFWXtip1IxFd2tZo/FcTtKDL6iXq+ruqkE/7NkuHVLD/h9zio1z5qKaTjL/L+8T4wxzGjMpu7u1XMSN2WmLvZQNwxfKk7naEBSQvYgRMNMtcn+XNZAjxGmoVFWxETbarYPGmX/by3lRamYAdRyZgD3wYMQUf/yE75DM7FhrB5zHgu1OosCpYb3oAS5CyUhwtA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=cFILi2cVO4+SJ3bwlc7By2nhvcS/p/DGAQlFat34p+4=; b=I+AvY9/bsau6nowU4OJUtf1a3PLGN9v4qtc3iCGrMfP4f04Tn57K3yTo/XqYjcihH6cvKv82Egfc4zVXc0e6Sa5ckh/x5iHG8MpAIO3wuSPLkhd/38h+bI1nQSvrejM01Lv38t5QKU4g/UmZqIno1f+4T+Mw9oRO8oYzE95UN/9KWbjiHNyVTw5oVPAmPK7aclnTU6Q9oj0CcehFwikYuHkP9ccw4MRUbpT00VL3aYvvSI5FWh2S4E9WtphKTdVOlA0CorBFZ6CKBgDJACLahtCXmQqkSq/x6vsCCBc/syRmbAGR2HjrNSETRMYL1vjQ/x807slARwta71587gCW2w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=espressif.com; dmarc=pass action=none header.from=espressif.com; dkim=pass header.d=espressif.com; arc=none Received: from TYZPR04MB5736.apcprd04.prod.outlook.com (2603:1096:400:1fa::7) by TYUPR04MB6762.apcprd04.prod.outlook.com (2603:1096:400:359::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12; Wed, 9 Nov 2022 19:15:42 +0000 Received: from TYZPR04MB5736.apcprd04.prod.outlook.com ([fe80::e64d:5c85:a83c:5898]) by TYZPR04MB5736.apcprd04.prod.outlook.com ([fe80::e64d:5c85:a83c:5898%5]) with mapi id 15.20.5813.012; Wed, 9 Nov 2022 19:15:41 +0000 To: "gdb-patches@sourceware.org" CC: Alexey Gerenkov , Anton Maklakov , Ivan Grokhotkov , "jcmvbkbc@gmail.com" Subject: [PATCH] gdb: xtensa: don't supply registers if they are not present Thread-Topic: [PATCH] gdb: xtensa: don't supply registers if they are not present Thread-Index: AQHY9G+oEBdMUzqBBE6buuIDs8kWNQ== Date: Wed, 9 Nov 2022 19:15:41 +0000 Message-ID: <0d57c0fea0de71984c048e33763582a4acbf51d0.camel@espressif.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-traffictypediagnostic: TYZPR04MB5736:EE_|TYUPR04MB6762:EE_ x-ms-office365-filtering-correlation-id: 2f974a26-eb18-4a5c-01ee-08dac286cb46 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: KvdbChNe4ME9UMRa9eU/RGpqvAqQfQCDGNrfg78OdMJueqC8iNTCBHdCru7qzEU++X/o6RcdtIv7UCD1D3rEkwfumh5NoOwLT7nawMYH0QxWUFFFdqsbndsOE113Ddvt+UIoZYA9zwIuuo8NFXwuxiRCQ12vU+qA8nnRl3ldt6iT8tBpQcUEgZaK6LFOmJuVlSHMDqBwA5r4nmeziThq46Omy6e9K548swIxBrmhAY+ECeub/K0Hi4HqCSpzhnWPcmSVar6jFAXQzHGpv8l/1AyXXb79Gzcsz6abpATlXR2XbPxyxrAts47Ih1LBpH3E1WDi3rfzX1kpBfl+JNwAzkr6uwp7J/+78MsbvHauKbyWrmjqFnJHMjFQ3WgmbzFnLCzqsTove+i5iP/gmosrszMlUCDLgQMuiCCSE1MG5CI+ccdRlE3tUWy3EBv0qXe9oI9NFqjhKX3mSZ8WMPplsCebMi2wlgvn0hIK8o8bi0d5/OmrZ1PfjY7llh6+erEoccDocVUgmm4E4HkHJEn1HdxE9O/iO5m2s8zVpGP9COs9EBw66D5DbDSfHx1eRo67aLQ0vDjU+z96dN5WfPUo+2GwI1UOO5vRl68CvmDwW7EZG5Vyq9ful3TZWzpJPCc8M/6i0E7lDljqmptxtc4LfWNnB2kXr3s+MvmBkEiaMF61vlD+HbWQQaBhMs2xlkhtP52Ab+ilnw5W9Hqvc656Da03pArTCq+n2pHlON0JOpXox2qQKaKY1kPHTrdzFsfYB1UbbXcl0aewhjIwuJHwJQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYZPR04MB5736.apcprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(376002)(39850400004)(136003)(396003)(366004)(346002)(451199015)(6916009)(54906003)(316002)(186003)(8936002)(83380400001)(44832011)(2906002)(2616005)(5660300002)(91956017)(4326008)(36756003)(8676002)(6506007)(41300700001)(66946007)(66446008)(76116006)(66556008)(26005)(66476007)(6512007)(86362001)(64756008)(6486002)(71200400001)(478600001)(38070700005)(122000001)(38100700002); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?X3P3iRx9xZy0+jgiO7EuC1QBS2TH?= =?utf-8?q?54UGsOewN9GcMIhuxbnVSsAQkY6+o6pA3ZD/2GPcI0qhLW00Z7rN5DObdMmRySKED?= =?utf-8?q?BSyNEGa8sjMWmDf+45t718YSr2hZrQtm2KJ31Ej2bt4ZvFC9im/EFM6d32bur40MV?= =?utf-8?q?RlE3HJVujbVU15q1NXE2VUxACfY5M/hujsoy/YKOVJzPzMs1oEQSL/LBjJ3dwEbS5?= =?utf-8?q?1oBadgWtj0oubEQcxveZ1Y3l3l5sdwXK/IrPSdg+j2xqrftzW5biF+66LJPhH0Jj3?= =?utf-8?q?1eZwHr23aZRjgxjQKqsJPul4Hs/eiBaSII3B3+Bwx/zqDfRD8EpL670wPat1MM1kh?= =?utf-8?q?LNXMGjHPPISgpMYGwV9EByJd9p3GhdZdibI9qDYqvl47aipS8sTM8kC8hcDJ3GzbJ?= =?utf-8?q?BsplJrkjny7pXkdoKKCmPDCjfolMtrvIk94711Sb+5q0dc8ArWhaFqis5OBqhL+fX?= =?utf-8?q?To9jqADKONUyrLB52ZaerGZoX6kMqPzHwZATnDfbRGbbb1NCfRYrXdAEgMp36ff1b?= =?utf-8?q?IpWnM8/f5nX8mmIy/0/u6xsyxnBJXqxbiUhSC+ly8lqE5T9ADpHXFDRY2T+MlAblJ?= =?utf-8?q?O3BxOuoLaIBNXjksSU19r9v6Un3yaYiKnUsCHtlKoOtY6gyVTrotE+9iQqqykYUSO?= =?utf-8?q?lIEK5rUK60AWDkFhuFq22Ua4nUdQjobj1tKvXRUnhm32BkQDVxovjRBSAE+zDY7l3?= =?utf-8?q?fJvNn+B/sKuSVkt7Uo31ws21/mr5GDEVCgEVK9P7KOKPMeT23D6Iefh6i9Ce2MEXL?= =?utf-8?q?QDCZVrvudkvlt/jYaaDL0JREeDgf8Q+zeQ1SCPJTKjkPl3F2y7pscVwJCGX4iFI/u?= =?utf-8?q?KI+9UxviaUwaw0VKRHRzrgjcsGCDtPCg6pHtiv26AZuDEwiTTnPJ5iUYhzo9cgBOI?= =?utf-8?q?h2E3wSEsG/CNJCmSw/5kTOo9vOVvBIGGoQTRfVXl2cU06FL85xWwDEgXs71zSWWx7?= =?utf-8?q?9hezTz8nedm2M/idX4pN1sErY3EleD9i5kUTq8A1xoSyYe989f0MI2XqzB+JQ3/Pr?= =?utf-8?q?SqQPF2h4C0cBFrzep9/k67xxSHqIm6tC6ZM1NnmytZlAvsk/hOByBAT6392Yof4Fu?= =?utf-8?q?uKP0Er7zEdyHlkzmokw+JloGdmzDzgr1RpJ+Bl+9szeXcrwmxhPNcsOIuUEjzGqKT?= =?utf-8?q?g0ywm8LwMge6NxkJSEjbPu/+vmqjL8jeGGIs4PhOJ4wo8XbeGAlSK1WcaqWyPr/bY?= =?utf-8?q?w4GTOUSCm2L56c7K+5mnoacF3XXUIM5x9ZtkFb2oABzefGHa66qOfagaISJVaMxbz?= =?utf-8?q?GBOhdCezl9x4CVHXLllSxS5qviUGHqMJmcVef5EFAPuYc17HP10rxSx87xCfeA/so?= =?utf-8?q?/ZfYVCb9NNEei61V1xq2D6qzMYc7TZjQcK/Vb57UvpoXwj2R3qZwBFM7oIO0ZzSNY?= =?utf-8?q?9ihiLZCbesLiIF+4hwU7tpH1ZvcXHLNfNNxXv4SwF8dUOdXKJYhZvULAx9tw5l0Rj?= =?utf-8?q?Puk7NVEUWMeVnZu/TVJDEVWPAybvF9U/8fAUeXkszjghcYXeaK8nyj3gqWy8G9ifI?= =?utf-8?q?OJeJWZr00wpypWs4XQtr9uo0Mlw5I2M61MDqU1YdGrX4uOPRb06G8UI=3D?= Content-ID: MIME-Version: 1.0 X-OriginatorOrg: espressif.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: TYZPR04MB5736.apcprd04.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2f974a26-eb18-4a5c-01ee-08dac286cb46 X-MS-Exchange-CrossTenant-originalarrivaltime: 09 Nov 2022 19:15:41.7803 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 5faf27fd-3557-4294-9545-8ea74a409f39 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: cRBxmsV7mg9xtzHs81dOWidz0pdOKPrAJgjNmP0+17hgeSmdxmfveNdHJ+WS/1czwj/QO7m4RMAm13Xa48oGztNCOOOQvfEDAjpf01hX2cA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYUPR04MB6762 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP 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-Patchwork-Original-From: Alexey Lapshin via Gdb-patches From: Alexey Lapshin Reply-To: Alexey Lapshin Errors-To: gdb-patches-bounces+patchwork=sourceware.org@sourceware.org Sender: "Gdb-patches" When parsing a core file on hardware configurations without the zero-overhead loop option (e.g. ESP32-S2 chip), GDB used to assert while trying to call 'raw_supply' for lbeg, lend, lcount registers, even though they were not set. This was because: regnum == -1 was used to indicate "supply all registers" lbeg_regnum == -1 was used to indicate "lbeg register not present" regnum == lbeg_regnum check was considered successful --- gdb/xtensa-tdep.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) struct regcache *rc, @@ -831,22 +837,22 @@ xtensa_supply_gregset (const struct regset *regset, rc->raw_supply (gdbarch_pc_regnum (gdbarch), (char *) ®s->pc); if (regnum == gdbarch_ps_regnum (gdbarch) || regnum == -1) rc->raw_supply (gdbarch_ps_regnum (gdbarch), (char *) ®s->ps); - if (regnum == tdep->wb_regnum || regnum == -1) + if (is_reg_raw_supplied (tdep->wb_regnum, regnum)) rc->raw_supply (tdep->wb_regnum, (char *) ®s->windowbase); - if (regnum == tdep->ws_regnum || regnum == -1) + if (is_reg_raw_supplied (tdep->ws_regnum, regnum)) rc->raw_supply (tdep->ws_regnum, (char *) ®s->windowstart); - if (regnum == tdep->lbeg_regnum || regnum == -1) + if (is_reg_raw_supplied (tdep->lbeg_regnum, regnum)) rc->raw_supply (tdep->lbeg_regnum, (char *) ®s->lbeg); - if (regnum == tdep->lend_regnum || regnum == -1) + if (is_reg_raw_supplied (tdep->lend_regnum, regnum)) rc->raw_supply (tdep->lend_regnum, (char *) ®s->lend); - if (regnum == tdep->lcount_regnum || regnum == -1) + if (is_reg_raw_supplied (tdep->lcount_regnum, regnum)) rc->raw_supply (tdep->lcount_regnum, (char *) ®s->lcount); - if (regnum == tdep->sar_regnum || regnum == -1) + if (is_reg_raw_supplied (tdep->sar_regnum, regnum)) rc->raw_supply (tdep->sar_regnum, (char *) ®s->sar); if (regnum >=tdep->ar_base -- 2.34.1 diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c index 685536c3b9e..65e159aa613 100644 --- a/gdb/xtensa-tdep.c +++ b/gdb/xtensa-tdep.c @@ -813,6 +813,12 @@ xtensa_register_reggroup_p (struct gdbarch *gdbarch, in the general-purpose register set REGSET to register cache REGCACHE. If REGNUM is -1 do this for all registers in REGSET. */ +static inline bool +is_reg_raw_supplied (int check_regnum, int regnum) +{ + return check_regnum > 0 && (regnum == check_regnum || regnum == -1); +} + static void xtensa_supply_gregset (const struct regset *regset,