From patchwork Fri Feb 24 06:28:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Lapshin X-Patchwork-Id: 65572 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 E3A073857007 for ; Fri, 24 Feb 2023 06:28:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org E3A073857007 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1677220121; bh=LR2VzdDbRvRPQrUok71ghEnCV+67krLrBgxp+zHzd8Y=; h=To:CC:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=yPqlayLGAkq9+F2keBum0GLCFtkeASLXkTkGek0B5S2hw7LIpCELR89ktT99pYRgZ 3V84YB7MhMbgmeaeR4JIh6KrCBUNDjHvkggyxVg6gxDG3quufODKOAIfE+gx/IY+0/ UFvzpKV1+a6MfWbV0FGKQcDcRMGMx3TT3YvDn0jg= X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2102.outbound.protection.outlook.com [40.107.255.102]) by sourceware.org (Postfix) with ESMTPS id 04A12385840F for ; Fri, 24 Feb 2023 06:28:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 04A12385840F ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MhNtnA3gEnldRhq4TW9Sz8kc53bLf+6UYfbDVNzn9mCykqNSl2/LWUt8HaDRPpfjP/H5yM3FuY+GLNmnHgyop21F92p11h+u8J7xg3CHQ6yWx9D11M86GhkFR4TzGnJGihPLHErvOc//4GLMLlWMbIVor9ydV2Gq5sD86AuI9Iu8JxshdvNYUxYX6yFZxf9C3llTGEoqxU3je0lz1ESeT7TExizbN6HXTIc/i529yhOj7B6TvNM1PEP4chdXl12OuzXR2FmC4SmiZKbVPG8f4xgH38P6oQxy5WE4UeogVqVyRaBDdL0sy4KukbOO0cYOamPtZ/mX3g4WXMTpgw+H8w== 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=LR2VzdDbRvRPQrUok71ghEnCV+67krLrBgxp+zHzd8Y=; b=SZIQZv4rZk/68r1/+kQHAdeaPcTpT3ekilTlV+zKbMsKLEXVpHaEMs5INXzLSJkd+QPWaTS+lV3ceTFbI0B/NEggdm4BZH9T/euksI/q+KoTptgk8i2a3ERwoQ4Ljgk+JBGfUJrk18LeGuH7dyxK4ThyFltGIsBZdORjj3H5TT2UWg6jeW/lIek5LMMGC/DC5hMHCOnNoUO1n7hD0jmbG1NkC1SCOwGRUWdpKLJYBlU65PETCr2pcTEAvAaX7+/KS0QLhl4xAKewjlzswG0GkNNtMiu6SVHqE54PElgUNL+4nHaqxMmfYxcS/IErkCBvlvJyb2vpBD9MNQDgB7fUFA== 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 TYZPR04MB5879.apcprd04.prod.outlook.com (2603:1096:400:1f1::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24; Fri, 24 Feb 2023 06:28:09 +0000 Received: from TYZPR04MB5736.apcprd04.prod.outlook.com ([fe80::1d98:cbcb:a94d:a40]) by TYZPR04MB5736.apcprd04.prod.outlook.com ([fe80::1d98:cbcb:a94d:a40%5]) with mapi id 15.20.6134.020; Fri, 24 Feb 2023 06:28:09 +0000 To: "gdb-patches@sourceware.org" CC: Alexey Gerenkov , "tom@tromey.com" , Anton Maklakov , Ivan Grokhotkov , "jcmvbkbc@gmail.com" Subject: [PATCH v2] gdb: xtensa: don't supply registers if they are not present Thread-Topic: [PATCH v2] gdb: xtensa: don't supply registers if they are not present Thread-Index: AQHZSBkpfwgXz+ruNE6VsGsVQ/Nj/g== Date: Fri, 24 Feb 2023 06:28:08 +0000 Message-ID: <026589bb5fd46e8811b0909d048307261a8165b7.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_|TYZPR04MB5879:EE_ x-ms-office365-filtering-correlation-id: ad3101d9-b0db-4119-7a71-08db16304bdb x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: zIe/3MYbadNYEX0ai2eGWUiE5FibV301PeRhv9GrirOIqqRZi35wh5zoakFXuca7FR/30WEeXNH5d8P61DWnRbnG4WkCZqXDdtx6JVD0q6jbOOjI66kGMDrx3fh0DoA4VHV8m030aLazHash6J/wTn3gEsM0z1jTusbqKyh87u2ubexXrbJjjSUofvF9YczHYdl85WghfmPnPucBpz1FAlbD25PZYFnpfyBSBcEojJMnlWmYczRGsWdVErKKS7a3nXSLouhooxZiYYO1nf+nYpVgoHyfcT0fhpdB4FrTIVGGgk60C3IiL7KYez/dCCXBsP9KNv12fHdRYwNK23x9jmM9+vh9xwOn0ux9WDifpSjH3vSJ1zSDF0stzDaDBd7nLuuD8kLgdpkv3P0bwn/4zxXF0cdnPKoVB8kSi7RKpGrHatORoWd2V4/EvEbwDuOc9j7+YVahDKfXAbcdUzdl1W83YsNLR4IvzTdz/IC7qxQisVvrjUydXTd6zknJ1ZYQ1hVez2kd5riZDUhhluBzWLNmX4L7WKTUM2mMFkm2/QxsRV4Pr6bc3Bv+28cxZlF3xlofOg/NyiMEpcs0QVrhNqOdgvzFmylaIYkIdchpxJW0YjjcsCdYQq017jLc70D3zDx0ZhISMOOCc/deitfSFndo3lzGdVzCzMt5D2Pcg5twzdCu1EbEvIp1LXbEredoKg0bYd27gYmFfQJIyPTnEg== 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:(13230025)(376002)(366004)(136003)(39840400004)(396003)(346002)(451199018)(36756003)(66946007)(66476007)(66556008)(6486002)(83380400001)(2616005)(26005)(186003)(6512007)(6506007)(8936002)(41300700001)(71200400001)(38070700005)(44832011)(5660300002)(2906002)(316002)(54906003)(86362001)(38100700002)(478600001)(66446008)(4326008)(64756008)(76116006)(6916009)(8676002)(91956017)(122000001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?q?b7jngVrluj2T1GRzZXAIT2b8dEz4?= =?utf-8?q?+bhxDxKX8HaCbJUAsZCuRDs2sK1R4vOUS2OVJDd8AKR0E++K0UNDtNPk0ID+0o+Dp?= =?utf-8?q?BXyGQ+1Em+zuuO53s3QzlNe/dAfdtlFpKuHcrtNibJK+rctXlQLyXQUiQGUyhccU3?= =?utf-8?q?hBQLSzEOkQO/m36QxFRfe2wIm7eeUUXyFxPxhDSp+4w00zJyy4Ed+Iquk6xtvm+bX?= =?utf-8?q?sQwj7Ec7XZtxdPmxxc7EHpMluA8t1iHHIKI09DHboeuZPKgFhQt8d4WoIMYd56G5l?= =?utf-8?q?LG8B/QMACr07k3FMz1u0qQ0JyUrX7F+ryUquV6UYoq1/RPHcMiXmFHiF2bgDIZdwl?= =?utf-8?q?11mcGqgJiO+g08qJH9jaImH/UMBEK1RK9Oy6wIHlsgn+TT0rj2blKlxIyKeJao0N+?= =?utf-8?q?rtadHToFQanpEbe0tkbm9gU/mN2Fauf6NUzhRZm4u8e4vOVZ530jc6pd9PMM2bO2+?= =?utf-8?q?BTy4o6144KQuGKWdna6GgNtcJE9TBMPEvbSTqxz5TuI4ZuAjqEVikTf4h9uIJVwAr?= =?utf-8?q?ZNwTihSdNsKhqi0f+XHTN389On6WGAkaJ5URqU+SHu4x5f7qdwGfb4dYtYELByLQB?= =?utf-8?q?p7ASlpIARuZI1+FOzAn2osrrZKvvH8+U2DFJcQL7hV7xNneq7ziGftHtOmAzalIc/?= =?utf-8?q?wnIc5OV6fI8V/dqsABv+2msOaNjbOJV6sUV9EuuriZjc1TSxmqLvbrhoUB1072Sxs?= =?utf-8?q?zvmuN3m+y7zED1oLwRkpHrlvuP98la4GPOtgnzDlXNooCLmV5VcSDteh+0kuTKCKT?= =?utf-8?q?rExJDQd5Zv11FSW2mIh8qGktvi6BauRnjZpfvBaCfZQWSPK7EDWLTTWY9TSWSdubP?= =?utf-8?q?fgNUFmfKyNaP86dNRwO2CqjziuBh4tVFvxd/eHx5FuyR+UzFYexr1eKAPKh55YQ0H?= =?utf-8?q?Ymp2IKzE4/Hdqzpl4foAjLMDt2rjoWQrBoOA30aaEd9V5bfYWBNiHlhxXLdj8Q533?= =?utf-8?q?WseS5to6h+o5RIryxpeFxBrju8SHYkfm/tzTWEpCU64lYXeVYnc8rLklgB7Tc0WkD?= =?utf-8?q?3eApdbP3tPasjoApJ7u7wEizTYWIGWq3ddsWMuLTOMFOg7CArpUsOjYpjF/fAQQe5?= =?utf-8?q?3k0o0E6L9ypSUK9AOxIK8PF1QgtP4nT9Ltj7afuPc3E2yDT3zh0R0r/1Tkal5KUwg?= =?utf-8?q?h1ZgUjZDCrOYK2KNxZSZZmMBw0HH/5HcvDHgA0lV/oUhva6dDZGTHHxkQ1d5H/0ha?= =?utf-8?q?USWGug8bf6nBeB9zHcQmM5xkOwuaJvvv0Nj3QcXL05tU5NStAmCgcFMgB48GEUi8F?= =?utf-8?q?YX36dUVzTMtzM6reZrfayuSiTotyJzJRFz8QVVwg8h80qU1V2vFe4zE7+VNQOueCl?= =?utf-8?q?qLMrr8iLmnhkM2VgCkhd9L5G4VAtYheBMr6DiWXjeZFR/dnJUmPI3Fg/dV5VxoEGp?= =?utf-8?q?NlJ3qjS1UjFj6/v7CMCvuDcmKTmh3nXKJft7WaeIZCy0h6FDGEdeM1BMhkFJtOLnl?= =?utf-8?q?CDGvSafq3B7S7ZricaaUngt6CDLPcBS5Zs0cX2mJMZtc+GHwmIitom7q4Gx0/Nd2C?= =?utf-8?q?WD2KJkB0GZNkx9B0KVmpkIzmUhvaVlsLNnwfJ5xP1zmRRmwcCmAub+k=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: ad3101d9-b0db-4119-7a71-08db16304bdb X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Feb 2023 06:28:08.9504 (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: X6alpO+qN4yQFCln57mDqvqOgO+e40JijyAbvuLxkDbYcLlFF0xqYHNmQWydfWhsQ1a1gFY2eiS4FI6n5sGs18wI5WtWnQD6rpx6Kh8azZ0= X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYZPR04MB5879 X-Spam-Status: No, score=-12.4 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 | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) in the general-purpose register set REGSET to register cache @@ -824,22 +829,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 092ae088932..66e5baae7a5 100644 --- a/gdb/xtensa-tdep.c +++ b/gdb/xtensa-tdep.c @@ -801,6 +801,11 @@ xtensa_register_reggroup_p (struct gdbarch *gdbarch, return 1; } +static inline bool +is_reg_raw_supplied (int check_regnum, int regnum) +{ + return check_regnum > 0 && (regnum == check_regnum || regnum == -1); +} /* Supply register REGNUM from the buffer specified by GREGS and LEN