Message ID | 20250402121759.1962001-9-jovan.dmitrovic@htecgroup.com |
---|---|
State | New |
Headers |
Return-Path: <binutils-bounces~patchwork=sourceware.org@sourceware.org> 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 8805D384C003 for <patchwork@sourceware.org>; Wed, 2 Apr 2025 12:23:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8805D384C003 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=htecgroup.com header.i=@htecgroup.com header.a=rsa-sha256 header.s=selector1 header.b=Xi8u3+jA X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2071c.outbound.protection.outlook.com [IPv6:2a01:111:f403:2614::71c]) by sourceware.org (Postfix) with ESMTPS id 082D0384A87D for <binutils@sourceware.org>; Wed, 2 Apr 2025 12:19:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 082D0384A87D Authentication-Results: sourceware.org; dmarc=pass (p=reject dis=none) header.from=htecgroup.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=htecgroup.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 082D0384A87D Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2a01:111:f403:2614::71c ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1743596340; cv=pass; b=v61ow8vv2icxCMRYGsdR80nop1Icf5GD8azoBb/2QA7x1iFTFGd1gnsprhh0QxzosrPR98zIhxLcZdnF34WeWHu/TfFjPZDaCnEAkCIflxcUzjpJoloksSqbKddKK+Xe4Ipg22K9dF0sD3kCOXdxlllhVr/ZmcL9Oob77PeAIqw= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1743596340; c=relaxed/simple; bh=xsd3/36jSoTYP0qvZcxq4wSdYuU8t0YV3k9p7ibwmSk=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=uEB8p8JboB1tD0HD5nj+qeqhffrb1A51BIb0ZOQfrtAHy3Guswic+ozhBxZl+V8pR5Rd8FSlKgL4mzm1WKws76x11Ka1MwNL07x9ckQgSCbHOMqU4SwWzzel5h8lY71cYFMO0GPIG17t8fta+EktO+bMQQNUAea5GqNl76infvk= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 082D0384A87D ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yV8tRcmL2j8G6mpW++6IgUKwODgS9zM046DpZn7UMTuNM5eLbuDeOIF8SeeNAy3zfueSVNBnaTzBoBX/q61en+5jmvlEArnabsPD9JzO+I4becyhSGtlQPNNLKA1AUQCYKG6UfMJ9q5WHnF8Ufrf+cRg/ODBD1gMTwk1on/QZ7LkoR5Mqbgb6vZJ7l0ELzGw8+MCr4+kC7X0VJ16tStSyjmAcXSAUkkSIQgQpDkh5MshE0HYJhOsrFZrCLDn0dRI0TFepbd2+Q8KOp98ujZYtwF73IAGQ9S7KuRtLvxIoNl4dQx7WswAZt5FY8RJ5ezDeU6gp6mPIdLrHLJQSNCBTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=waJJtQ7w0GFPRPoffxB7QHZVD+ba/5FoeULJpsCTTyU=; b=FOFejJlPUAEmvPIQbwV3+Rj3W6Ty24MtziqvQLc+9kMXNR8S4/B/6CaCx5NlztUvZX+XrE7hJGpxWO7nJ7+DEJ4uOwEcveOmmpHzl8xCfBEW0wLW8Zb5aBbl39gxDsctEdQrqqEIChU8xjPS3XdTXRw/NMKKVN4CUJb74aOq8Xp+3NREibaoP4eeBHoE2yfQYDPw1XyqmHKRqDnarPez6eoQQqpvpR2D4KMD7bYlLF2zzxx1xcZOAQw6rs/lxc9DzyU5f1t7L7L/D6mb8YUL/zulyr64uKZfJA00CQsnM+4AnX1ig0zfR6UoVMYikkO6NLzmxdqy7WJk7Ezu1nTx2Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=htecgroup.com; dmarc=pass action=none header.from=htecgroup.com; dkim=pass header.d=htecgroup.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=htecgroup.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=waJJtQ7w0GFPRPoffxB7QHZVD+ba/5FoeULJpsCTTyU=; b=Xi8u3+jADoPyEIX/jZhOMPOBD5xLH7dD25dBOwKtp8uUJBmOTTXv9GWW9pEJUM6kCJOa3vAVM3R9JO50kAQ2szNfQv+4Ww40vgz+kPeW1gcgw2jrAuEBS8VGeTc17Y9vm/wR6wirQmCmxxMA7HfcqCWL4MuTpYMF+mk3iQhbH18W+dEIHbFnW82thRNMVTYu9Kt/+wMdUONtzrsYWek5BhYZ4fABN9fpG9oPNbT59bKqnaAew9UaalSXJyy4v/Lyeq7q+xIAMxHVqYNIRM6fJVNdx/G2gcO1rKbuKpBcKAeVdBFx9QwOOn50SpsABHtwp3vY8L1exbpFFcI02OB5bw== Received: from PAVPR09MB6451.eurprd09.prod.outlook.com (2603:10a6:102:304::13) by GVXPR09MB7030.eurprd09.prod.outlook.com (2603:10a6:150:1c2::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8534.52; Wed, 2 Apr 2025 12:18:47 +0000 Received: from PAVPR09MB6451.eurprd09.prod.outlook.com ([fe80::4569:9af3:a4cf:48d]) by PAVPR09MB6451.eurprd09.prod.outlook.com ([fe80::4569:9af3:a4cf:48d%3]) with mapi id 15.20.8534.043; Wed, 2 Apr 2025 12:18:46 +0000 From: Jovan Dmitrovic <jovan.dmitrovic@htecgroup.com> To: "binutils@sourceware.org" <binutils@sourceware.org> CC: Djordje Todorovic <Djordje.Todorovic@htecgroup.com>, Kevin Buettner <kevinb@redhat.com>, Simon Dardis <simon.dardis@imgtec.com>, Faraz Shahbazker <fshahbazker@wavecomp.com>, Milica Matic <milica.matic@htecgroup.com> Subject: [PATCH 08/21] Disassembler fix. Thread-Topic: [PATCH 08/21] Disassembler fix. Thread-Index: AQHbo8lgo8tgj1QJzk2Yy0yn0Chldg== Date: Wed, 2 Apr 2025 12:18:44 +0000 Message-ID: <20250402121759.1962001-9-jovan.dmitrovic@htecgroup.com> References: <20250402121759.1962001-1-jovan.dmitrovic@htecgroup.com> In-Reply-To: <20250402121759.1962001-1-jovan.dmitrovic@htecgroup.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=htecgroup.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PAVPR09MB6451:EE_|GVXPR09MB7030:EE_ x-ms-office365-filtering-correlation-id: 3f33ee1a-a6cd-417b-0bd9-08dd71e084a8 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|1800799024|366016|376014|38070700018; x-microsoft-antispam-message-info: =?iso-8859-1?q?2ZdLy9Ufn/RJykYHvkUaKgyf6U?= =?iso-8859-1?q?j/Z6RlVAZDDlR3MQ5+1GYbGHqx26GrlpM9zE0+soORirfeZUadLtKW3c2XEo?= =?iso-8859-1?q?1almNUQX9bLO3OIZKnu1fqE+PzPGd4qI6uXNzaLuL2WKmJrTpo7sko8IZtiS?= =?iso-8859-1?q?co2Qf5g9UjMSnP4ADM903Z7Qap8CMx297na3YE37NprsQU6vKxS0HA8dOPhw?= =?iso-8859-1?q?dt5HW6HTMFvMsP/MZQq+ciWNBZ+ueV0njVUEjM9z7U4i7hWQFJW8YV0gkHhm?= =?iso-8859-1?q?xTj1vPiKgqGtkgpwcN3V7HulWQe6grgXIJHBrj1bZnMyGUNpIntynQbUw3yt?= =?iso-8859-1?q?e3LYHlwqPB4DWxrraLS9EciDeatWCJDB+ZwEjCzUSlDKZ4j2+Kya3R7bhdf7?= =?iso-8859-1?q?nKtPscOT1T6/FEEdBamsXshTAddudIwTq6+AV7pwUsT9rnnDtD0g8V1ybICV?= =?iso-8859-1?q?PArsBiStPyMZqjbaZiypTuSwoq8lJWoDGPg9jJfJk/0L+cS7EffuqR7TuC/0?= =?iso-8859-1?q?UzZZ0D/ewr3WgH68VOhpXj6EQ3rPcdNPNh8rlUzuY34XRIkHI655CReUCmiA?= =?iso-8859-1?q?GTz+H6JT5WJqv4R7t2XG0ssk0Dr7FCU3cvgGgb/Z8e+owlhuc8fNkpmQQvz8?= =?iso-8859-1?q?F0vvQSgCwGtp3jl8nZtGYef++s1OUD/al2SrGLaAu4yHgCbumEfmh58I1kMm?= =?iso-8859-1?q?H1H4awr/dE0Z9wkzSLc0J26FNkkfsBP9B1eVQ5mCvdvA8SSqhrLB5R3+HS+1?= =?iso-8859-1?q?g0zzylnS7lmNACRpFmGFdk6xSLG1eohgjdWpVvCw5qUGdqCWFtM9QWHnGEnI?= =?iso-8859-1?q?tc7m7fzqv0CNMFl91kIky8e9j7jlWtbPnmciw1on9d0OmNlbaduRxLutu52f?= =?iso-8859-1?q?7fIvHKikgoODTp8LehqnSQVyhM2FnL2gGrrgYESn0ROVCHMSVAP7KIKxkHX7?= =?iso-8859-1?q?UAKp1zTgjdDPTBnKc7flVqKT0zFprx1VlxUOBjG4Fy/jmRcvMM6t6HRq2//Q?= =?iso-8859-1?q?bsZZ85HvfTxP6XVb7NwLm4WI1EX6YbkC14zF//hXIspNSql2jwPl9ilqgzo+?= =?iso-8859-1?q?yesZlxk84wg0yXe0PduLMVC3NyOqNIxak+oPBM14srTVQu1HOWbn5RoKstqE?= =?iso-8859-1?q?JUU2uA5nKCqjkeTHMWw/pscw34jIqOsV4pKOhSar2FRjKV8Go+E+VpW+KSFA?= =?iso-8859-1?q?FWvyUJGdxVzkIvL7IgXtADizs4HDK5WIyyNcN1b+bxGbDgdRU2ufM+YJ2h36?= =?iso-8859-1?q?G7c6oVjZBl2RecQb3V9YNwXFgY+618jttwE7mub02gBr5PLESXGFEoJEHQtQ?= =?iso-8859-1?q?xnbwDF3xbq+bBr5te5mXa4Gj1+T+0yYuhboO/aOEk1AW27j0jncCpFxtGBL8?= =?iso-8859-1?q?sosnhJtGA7YJrUKrkSgWq7VNfuSizOQzx04HaJYoEy7fphetjl9NReaww0i6?= =?iso-8859-1?q?T7wo/YnQRXMI1aOXJb5ddFfLldVOfStXYup0hho9c5nt/AuGsGtIEmKfFvVH?= =?iso-8859-1?q?t+UPNlEClbIkJ+7DHemxXSraYinTAIE9Rv0sFVwTSplI6KOk0=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAVPR09MB6451.eurprd09.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014)(38070700018); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?oEeUVGEJzo8kqUOgpbbwZSJ?= =?iso-8859-1?q?enDD+EC/DKN/VhJIRunJm6fKZkpJ0kNBdZXVErtjA+yAU05B002DduOGfUNA?= =?iso-8859-1?q?DjRBX37z/KvxKqxLYFw5XPkGAw4KBiqzf6Jt/7P0EfetbUXZ+kUZQhi3gRGG?= =?iso-8859-1?q?FB22fX57RM/G6zPqhwoE8szwQ1GZ/afJ+KQ5ftS5xxq3KtJ/9c34s4/YK8L9?= =?iso-8859-1?q?p1OOq8Q6324GKwj2wphEkU76ncdxY7/pQYpkO6bHWhtHc56y2+LM9iBsuJii?= =?iso-8859-1?q?14vLFxsrLQdnb5Hhs5cclj5rNq+Rg3Sd7vuI1px6TRSKe04S+ZvgCjrGiEbh?= =?iso-8859-1?q?vCqcZd4eF9IxGkTlNdPEIFaptfrGwdDYZL3bXbNUnmVAdX+WbEpUfveXVU6c?= =?iso-8859-1?q?MyvbgeN89kzXQ5rbUruQgXWxk5MgOvKZOm/TDaikGqD703kUQ/2SLfBGyo/G?= =?iso-8859-1?q?CAZPkOe6FU2BBNXXrrhtnLsLSVPqgq6Qd7pus7pi02Yir+ZToJhbCO1Vm/5Y?= =?iso-8859-1?q?RS9zzxBk3fIpbkFoE+nuCHMWmR8lgMigjPY7xm3Z+lE/7k1O1tBI8NNfD3vs?= =?iso-8859-1?q?Edb5m16qeAcgES8uOBVSYuSqGzJ2A7GfjSRF3tXFXw4jAK352pG1KpP1W6o6?= =?iso-8859-1?q?qH9/NmzmkvgJi9Zyuy56TmaYMOc4OYQpNfnFM2qucQ0DXGTl1cZbre+CICQq?= =?iso-8859-1?q?zTrze8YQoyQpnExQsjAYPAlh4ca7iKN/Nw6A5MzTQoNvlhugYgMbf3jgWQU4?= =?iso-8859-1?q?mmvp652edxM1pgoGO3NURhv+8gAykpXLtQuoIZEVAvM2oFg6OKiX0NfpAYee?= =?iso-8859-1?q?63U2SePjDHpclvg7I40DZSF+XaMatXpLVzyjiddh0gYimBpVnJpEIU6xVAJu?= =?iso-8859-1?q?wZzqsdTpYJ6qqjyF6AmPVTA6Ku5XmSUGD8HVMpGTMc/6QQ75KEOrNvtFXBx8?= =?iso-8859-1?q?FEpe4NuO7a8eKwMFSDSoTsenaBMaHR3WhNqysurLC1n9rSTmB+DFkHwY3hSD?= =?iso-8859-1?q?FLHtQecZ7+J15fbXqctGWXESiy64+71ww2I6VY/WB2WY4POflbXmsHrzuJNG?= =?iso-8859-1?q?h2Wa9krC/cyX9N63N31GCopU18YvRLQSCeBsGo2gxhNqsRXfZ3Cya7T+BKYJ?= =?iso-8859-1?q?C4/PZWnv6a7gJOjyGegSYEpfUZU34VTC8FOn0P9W6/qm1GBhuXvuTXp0QI7j?= =?iso-8859-1?q?2Fu2n9JJN8Nk+HLs2zNTnC2loChO+DQnoEBR/bU9BCrPKiyY5049gyxBhL54?= =?iso-8859-1?q?VJHZSXt4oiJFboytHIW7zvHgHg64h2hLEG+8dj41b8rbUZCRzvfRMcgfLQyz?= =?iso-8859-1?q?qluk6svuAEAzI2PF+3wenDCq4Aa3A0BcocyxKoFqk9GjF39b0mD09uEVz5nl?= =?iso-8859-1?q?JnwUFpq46PAq+dGlSu73w0irBdM46H6ktUIipCIT1+yfYaUV0cfzHa6eJJHh?= =?iso-8859-1?q?GJM48NwCnzdU7uzA4X9rnCwrtEe5orfbbI83hJgHBN9N7vddUWM9R0PTJS3w?= =?iso-8859-1?q?ZcCXg8lEesMNWLb4NyIF0gBXpKMpOFKulRmT36o7qzG6zXH7caI1RHuJrLhv?= =?iso-8859-1?q?6VoScTX0rAUKDpxaGCGUQZ6sjJpN9PkSmcqa4pRj5TgR67yBLAS49QZfkj2h?= =?iso-8859-1?q?UC5igoDR6EQijDtBWFHJth3pM18gomVTTwj53yHnQT574cszrqJWZ/DclSLk?= =?iso-8859-1?q?=3D?= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: htecgroup.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PAVPR09MB6451.eurprd09.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3f33ee1a-a6cd-417b-0bd9-08dd71e084a8 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Apr 2025 12:18:44.6101 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9f85665b-7efd-4776-9dfe-b6bfda2565ee X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: S6PN/NQxYle5wpVEqTQqha9sL7kGAqEzO/B8jVWe7rG2nkqwcKywsVSnPEU5jR5+o+4wKrpERg2qE2r9+cB1zzQb76w7FNU0Wjt0l41V1vE= X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR09MB7030 X-Spam-Status: No, score=-12.4 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_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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list <binutils.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/binutils>, <mailto:binutils-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/binutils/> List-Post: <mailto:binutils@sourceware.org> List-Help: <mailto:binutils-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/binutils>, <mailto:binutils-request@sourceware.org?subject=subscribe> Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org |
Series |
Integrate MIPS-Specific Support
|
|
Commit Message
Jovan Dmitrovic
April 2, 2025, 12:18 p.m. UTC
From: Simon Dardis <simon.dardis@imgtec.com> Mask off lowest bit when disassembling compressed code. It fixes a bug in the MIPS disassembler by ensuring that the disassembler for compressed instructions (MIPS16 and microMIPS) does not start disassembling from odd addresses. These instructions require at least 2-byte alignment. The fix adjusts the disassembly logic by masking off the least significant bit of the input memory address. MIPS16 and microMIPS instructions must be aligned to at least 2 bytes. By removing the least significant bit, correct alignment is ensured during disassembly. The disassembler always aligns the memory address before continuing, ensuring accuracy when disassembling MIPS16 and microMIPS instructions. Cherry-picked e497794 from https://github.com/MIPS/binutils-gdb Signed-off-by: Simon Dardis <simon.dardis@imgtec.com> Signed-off-by: Faraz Shahbazker <fshahbazker@wavecomp.com> Signed-off-by: Milica Matic <milica.matic@htecgroup.com> opcodes/ * mips-dis.c (print_insn_mips16, print_insn_micromips): Don't disassemble from odd addresses. --- opcodes/mips-dis.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/opcodes/mips-dis.c b/opcodes/mips-dis.c index 612f694f442..80c447e854d 100644 --- a/opcodes/mips-dis.c +++ b/opcodes/mips-dis.c @@ -2278,7 +2278,7 @@ enum match_kind /* Disassemble mips16 instructions. */ static int -print_insn_mips16 (bfd_vma memaddr, struct disassemble_info *info) +print_insn_mips16 (bfd_vma memaddr_base, struct disassemble_info *info) { const fprintf_styled_ftype infprintf = info->fprintf_styled_func; int status; @@ -2292,6 +2292,10 @@ print_insn_mips16 (bfd_vma memaddr, struct disassemble_info *info) unsigned int first; unsigned int full; + /* Some users of bfd may supply an address with the MIPS16 flag set, + e.g. objdump. MIPS16 instructions must be at least 2 byte aligned. */ + bfd_vma memaddr = memaddr_base & ~1; + info->bytes_per_chunk = 2; info->display_endian = info->endian; info->insn_info_valid = 1; @@ -2506,7 +2510,7 @@ print_insn_mips16 (bfd_vma memaddr, struct disassemble_info *info) /* Disassemble microMIPS instructions. */ static int -print_insn_micromips (bfd_vma memaddr, struct disassemble_info *info) +print_insn_micromips (bfd_vma memaddr_base, struct disassemble_info *info) { const fprintf_styled_ftype infprintf = info->fprintf_styled_func; const struct mips_opcode *op, *opend; @@ -2517,6 +2521,10 @@ print_insn_micromips (bfd_vma memaddr, struct disassemble_info *info) int status; unsigned int insn; + /* Some users of bfd may supply an address with the micromips flag set, + e.g. objdump. microMIPS instructions must be at least 2 byte aligned. */ + bfd_vma memaddr = memaddr_base & ~1; + info->bytes_per_chunk = 2; info->display_endian = info->endian; info->insn_info_valid = 1;