From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpout30.security-mail.net (smtpout30.security-mail.net [85.31.212.35]) by sourceware.org (Postfix) with ESMTPS id 9CC6A3858D1E for ; Thu, 7 Sep 2023 15:27:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9CC6A3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=kalrayinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kalrayinc.com Received: from localhost (fx305.security-mail.net [127.0.0.1]) by fx305.security-mail.net (Postfix) with ESMTP id 6245A30F736 for ; Thu, 7 Sep 2023 17:27:35 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kalrayinc.com; s=sec-sig-email; t=1694100455; bh=dCueewd01JdefKwcYfx8JSXlKazU3GChCm+uFHBmLq0=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=MV8CGN6aXCDlF6ZSO6mOuwk7hEYvhmxlZffP5IwkXzmwAwb+lJFInhqRvVgs6Rb4g 7ARRkWXINffV2/A42TEB1c+ZaU5nLEL51IrBlc/XtU2OSR7QSPOziNcK3bBXlH/W+O d/QBfK+VhLB35ZK2wnhNc6AtvnQ4bo3NB1af+yZo= Received: from fx305 (fx305.security-mail.net [127.0.0.1]) by fx305.security-mail.net (Postfix) with ESMTP id 4078730F733; Thu, 7 Sep 2023 17:27:35 +0200 (CEST) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01lp0103.outbound.protection.outlook.com [104.47.25.103]) by fx305.security-mail.net (Postfix) with ESMTPS id BEC8630F732; Thu, 7 Sep 2023 17:27:34 +0200 (CEST) Received: from MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:33::22) by PR1P264MB1824.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:192::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.34; Thu, 7 Sep 2023 15:27:33 +0000 Received: from MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM ([fe80::aeb6:2f26:45ff:5461]) by MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM ([fe80::aeb6:2f26:45ff:5461%7]) with mapi id 15.20.6745.035; Thu, 7 Sep 2023 15:27:33 +0000 X-Virus-Scanned: E-securemail Secumail-id: <6872.64f9ebe6.be01c.0> ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nk2NOa+RgpSUX6h4ukVZ+6M7oxEvSysZkOgc2qELhmHZOuFCCAdRM3LDDgsbmM700++qW6YSG8AXiTqJU/yO3xvJEw5o31UgTnn0ZBv+1l31kc+wgr2vC9XrM50c9q+OOAvReNliOGMoMNr/vukIKXg0L53PbYaQJYlXGobHP8qwQtN7Ji8l3qiwpruUI6tQRiIfZC6vYT1ktEA0X1mE6Lw8+VeznhGarAeRiDumNjxK4g9so68NOyLvGcuGOyc6qokmJfaCgAeiVJr0gWtcnWlyNIbes7+4Tg4MfLH9PKkwll88bQ54RCyIlvtuMD6s5AFwZAXw9P0KXz/l4+OLAA== 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=ub/f02WL0a1HRr7ERU+fkDsAfPu+XyilHB2j6EPv2XY=; b=mzIDJDUjj6Ngct7CVVBucG4fWyP/0xnjhrZNKvxCM+07G4mJrD9XsYUqRJ8vMFdiSiWEXruszF2HDkT7r2wlZ8D2D8N5Od9EVlj7HEbAsyO81EVVzo+iew0GHqJXIu/ZNZ5hdqzdufBSC9JrZm6R/s9yQ/1ub1MzJzvzX8DaCBa5im75Hfh21kCi10RgVEH6zejLRnBzVo13jaJD1mg1fb32tO1NZgtXguVXS4o3EpdcqfA9yJaSj/BMAbOowwa2FqwiXt0Hj7aEoq2jFn/56M88O1IdIXPdP/ydvmsfhdhXuvuecF9t1e7RtvI2hzAovkSVrk/PK1EZotC+93iUrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=kalrayinc.com; dmarc=pass action=none header.from=kalrayinc.com; dkim=pass header.d=kalrayinc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kalrayinc.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ub/f02WL0a1HRr7ERU+fkDsAfPu+XyilHB2j6EPv2XY=; b=SCkchX5ZyneiT3mnxpjC84M/O3wnTgOrUZuHhKXSemuSF5eadvxgVh1AbPcoVbB1+QnCWu7dNGnMjlU1L8HPZjzNawxy4xG2JaDiFrfWQHsqfJJwXCnKqURQwKkXxa0dYfqk7MRdatbVNbCAqceNDN6aXYVIrSfnUhUAl0MRQ53J8baUZyKHc9JEcHtOPdeFveKsGN2GBeud+QbN22pmfX7LOL2xG9oglS+nUbcR4924Z4YhgqL5wppxB3ybrihlYyTG2gv9vnfrVCpl6z2s37+S8ja5NdfJFOrBRBEVEdZt0GiAi2QBvuKx+NyFZmCb0RK4Mrls8T6YBylZGnTR4w== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=kalrayinc.com; Date: Thu, 7 Sep 2023 17:27:31 +0200 From: Paul Iannetta To: Alan Modra Cc: binutils@sourceware.org Subject: Re: [PATCH] kvx: fix kvx_reassemble_bundle index 8 out of bounds Message-ID: <20230907152731.xwxadzbezswvewsx@ws2202.lin.mbt.kalray.eu> References: <20230823143923.10105-1-piannetta@kalrayinc.com> <20230824084906.svfkw5r7xxws2prc@ws2202.lin.mbt.kalray.eu> <20230824092649.2gucfvnmswr362us@ws2202.lin.mbt.kalray.eu> Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20171215 X-ClientProxiedBy: LO2P265CA0189.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:a::33) To MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:33::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MR1P264MB2482:EE_|PR1P264MB1824:EE_ X-MS-Office365-Filtering-Correlation-Id: b7642efb-f50c-457b-c03f-08dbafb6f4f2 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: i7/1PFCNnWFZ4lEYCuJaeFifRMPO5eYI0VwmVA1PR5T5XhpeNN5HwQ6wqcbnLxJKbBVk5rIB1LPb5qe9Um/NyfaZD0cQCwY7WwqOx6ZDrhJWALOouIKWrU6b21EARj9V7j58yHILfNPtmCzdjIdvwX6iA9EpXcYtnd3S/eF3PEI/QASo/8VZqLYGIIYf9eKOGY2vr1kexxa1Sym+swU60ec0fx6s7z9QVgb/rsTRI8/3Bc+20cJuVzrJ0buoTxCdYXGhOvDDTNL3P0QDxIOyXJqKseevu7FjWCRB3Z0WddpSYxIv3Im67xQpGQU+KdTleX19piYCBZb6cMgoIH3wNNXMQBTH6KlcmefL8iHnd0Om/ajbZMHwxBQHAxmoj+XO+dsMLvkXhMOQMX4/m1JMsElrWweyp75qsB6UkkK+9tlWrwvtrjF2m0rpUoxxobjyhH01mnTT9RNnE/3VuItIQ/X9fb2YXf9kSDcvY9RfGbC+OMJeadDOWer8UmjEdohtzuL57niEU975sV/oLL0GKyJEnSDY8irgD/e4Arv8ii7JSOfprDt1L8ryl/7TOJJQ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230031)(346002)(366004)(376002)(136003)(39860400002)(396003)(1800799009)(186009)(451199024)(66899024)(6486002)(9686003)(6506007)(1076003)(86362001)(38100700002)(2906002)(26005)(478600001)(6512007)(316002)(66946007)(8676002)(5660300002)(4326008)(8936002)(6916009)(66556008)(3716004)(41300700001)(66476007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VkbAOS0lYUMCrXMUY4L6eLBiEJu1fMzwLdG5StUKUybaldFuEwtSDlnF3rVKKb4/qRknZDCut2dC9jS2Cxv/LijUNnqKZRnE27GsYqKKouOQGvRqdWT2Z934ZI4v11WH7PZ2VpyIy3NrKKVyM7maCtxcQwey4yniLCRa6midTxy5ndhjQ8ZqqXTC2olpbZYId3nQn/7cuIsEbClQG0vyVHBfZwtohi7yrzmW9rmq294XTtLccTNLzDw2+PT70wlKywKsAFyzpRo2BsvF3N4Zi5IyJKq3YUeqEO4TYKWy36ryNpUTBXH6e5NojHliPUkdXos41u/hmrv26/+QbgMj25Az1uiOVw/LpUwE3VKR9Il920kdXelX3lI3DEo32+F7JmBtqf2wYu3wbIJWpQq45VfMQpg/IVQGWzkCMK68Lo6aG6pw3/esVCxk5361wGCG7ua6ZBeDBFVb4VOS4cT/0nCtYMF5DXAlMwvm4nI7HfTU09ygj+/goqouOf8wkRBKwCrHJS566U7Tm9NV0A0wchuB6Juye+lA17rbLIB7BVDTUD8HJEE0XGjThfPZQA9dwFgVbH21OrLE3+JCTomHVnzKYfMlrk0XcIpknk3rdj79JqZDKc3lWrAm1DF0+2jTWEJ1Go/wpY7WCWGUpKamRy6oYsCYMAGOUX+8FqiUb/R4Bh9Grz2+rwujtBgT9U4dQbkRS2hJqK3WkSHCWj2CN6Rim5JvLuOqO6q9EKtUvklvzSTq5bdgJD7uRobB2xdIqFNfgp4CAqJX8XY+hCsu5F7OgfNtv4OIyVPRvX43x5HMR7CRiu4JSSc3hzKUCY54f5F2tYa1xRJPDSkVkNxEEmjMLIntj/T52Jy2UOap78MiB8v+0ZvMti/RzfZtoDQlN9nfGEPKB8EnimK9VIOw0CaqshGi+05ZEvjzK3jlAN1SGb8ijoTsiVruTIpaAhOD Pj+NFSEEaHjD2iWrQpPPNnyFgGspiPwCLkrlxHqiB1AKVGl0VdayAGwfN9ET+LM5seTuWu3tCobrwV2BBzXSVv/Eub8UvF2UBg2zOJJD0tjrgBOv9ERKIkclo0zSJv3rVWA5x1NI8AanzHdsdDXA3FieviZo+W12CVsoTpa8rsMnzDbGC6psn5kBotSPVvl6WJz1upiGrZd4rUGF/+qCKdeqq2TUwzaoN0kTnnQVMFnpW6k1Pej/JM5u1pjmrLZTLc3WxWRzxyEy3YK9Y+1hLfz8qrAI0fQ4e/5zxk6WIkf55UUQWmbLNdjOoa/mnuIFdcGm7vzQ8dSA7nsdMjUbTtQOqlngwLYZA3JK8CNRcahbKPT/weTtE/Bb1jkUkxrx8s1gPZUPeepe2Qz7L8oDHwhj79cuwokN8LU2DhXPZ/rP4r5Es7mtcMCR80QJX7TqCh1tFWwSwM3z15KM4xwyB1NfVf1A9af4uc5VX4CoNCDScg8ovwJNHYtbfoJqzUTCj8VzSG/U09nQz5ObdSaOTJFguUqRGLnD/Mv4leM923hVgMc1OiJz/4Dc8mNfNeLnmz85vDFBhJ6wNYedl9q+AcXvUG23/setG5Y6NNHn82nIopJ06757B41nVwsOl92/CktKKh0vr5rkyDRkPuCH1g== X-OriginatorOrg: kalrayinc.com X-MS-Exchange-CrossTenant-Network-Message-Id: b7642efb-f50c-457b-c03f-08dbafb6f4f2 X-MS-Exchange-CrossTenant-AuthSource: MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Sep 2023 15:27:33.4178 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8931925d-7620-4a64-b7fe-20afd86363d3 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 0jb4/44F28LQ6OIQFGgvmJ27uh4K0NOLK6eiXYma2QvAygKbhMzvhSZEYtRyAOMhTeOE9kNgBf6J4Hi/ADhCyQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR1P264MB1824 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-ALTERMIMEV2_out: done X-Spam-Status: No, score=-11.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,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 List-Id: On Thu, Sep 07, 2023 at 10:16:28PM +0930, Alan Modra wrote: > On Thu, Aug 24, 2023 at 11:26:49AM +0200, Paul Iannetta wrote: > > > > * kvx-dis.c (print_insn_kvx): Change the loop condition so that > > > > wordcount is always less than KVXMAXBUNDLEWORDS. > > Hi Paul, > Does the following patch look good to you, and can you please craft a > testcase that exercises a maximum size bundle? > > While the patch already committed for pr30793 prevents the asan error, > there is a problem: Now the last element of bundle_words never gets > written. That's very likely wrong, or KVXMAXBUNDLEWORDS is too big. > So this patch rearranges things a little to support writing of all of > bundle_words and does the parallel bit checking only when filling > bundle_words. In the normal case, kvx_reassemble_bundle will see > bundle_words[word_count-1] with the parallel bit clear and all other > words having it set. In the error case where all words in > bundle_words have the parallel bit set, kvx_reassemble_bundle will be > passed a wordcount of KVXMAXBUNDLEWORDS + 1. I've also made > kvx_reassemble_bundle return true for success rather than zero, and > removed the unnecessary check for zero wordcount. Hi Alan, Thank you for catching this, your patch looks good to me. Below is a patch which adds a test case, you can merge it with yours if you want. Thanks, -- Paul Kalray commit 8dbb32052cb0e1e5ea1569e3fb708582f8158290 Author: Paul Iannetta Date: Thu Sep 7 17:10:01 2023 +0200 kvx: Add a testcase for bundles with KVXMAXBUNDLEWORDS syllables The previous fix (f1917fc) for pr30793 introduced a bug when dealing with bundles of with KVXMAXBUNDLEWORDS syllables. This adds a test case to ensure that such bundle are correctly disassembled. gas/ChangeLog: 2023-09-07 Paul Iannetta * testsuite/gas/kvx/fat-bundles.s: New test. * testsuite/gas/kvx/kv3-1-fat-bundles.d: New test. * testsuite/gas/kvx/kv3-2-fat-bundles.d: New test. diff --git a/gas/testsuite/gas/kvx/fat-bundles.s b/gas/testsuite/gas/kvx/fat-bundles.s new file mode 100644 index 00000000000..8119c6043de --- /dev/null +++ b/gas/testsuite/gas/kvx/fat-bundles.s @@ -0,0 +1,13 @@ +# The bundles in this file all have 8 syllables. + + addd $r0 = $r0, 123456789010 # 1 ALU + 2 Immediate Extensions + addd $r0 = $r0, 123456789010 # 1 ALU + 2 Immediate Extensions + addd $r1 = $r2, 1234 # 1 ALU + 1 Immediate Extension + ;; + igoto $r0 # 1 BCU + xmt44d $a0a1a2a3 = $a0a1a2a3 # 1 TCA + addd $r0 = $r0, 1234 # 1 ALU + 1 Immediate Extension + addd $r0 = $r0, 12345678901 # 1 ALU + 1 Immediate Extension + fmuld $r1 = $r2, $r3 # 1 MAU + lwz $r0 = 0[$r0] # 1 LSU + ;; diff --git a/gas/testsuite/gas/kvx/kv3-1-fat-bundles.d b/gas/testsuite/gas/kvx/kv3-1-fat-bundles.d new file mode 100644 index 00000000000..1f80e0444fd --- /dev/null +++ b/gas/testsuite/gas/kvx/kv3-1-fat-bundles.d @@ -0,0 +1,20 @@ +#as: -march=kv3-1 +#objdump: -d +#source: fat-bundles.s +.*\/fat-bundles.o: file format elf64-kvx + + +Disassembly of section .text: + +0000000000000000 <.text>: + 0: 82 34 04 e1 80 84 00 e1 addd \$r1 = \$r2, 1234 \(0x4d2\) + 8: 80 84 00 e1 01 00 00 80 46 a6 2f 8f addd \$r0 = \$r0, 123456789010 \(0x1cbe991a12\) + 14: 00 00 00 88 46 a6 2f 97 00 00 00 10 addd \$r0 = \$r0, 123456789010 \(0x1cbe991a12\);; + + 20: 00 00 d8 8f igoto \$r0 + 24: 00 00 0c 84 xmt44d \$a0a1a2a3 = \$a0a1a2a3 + 28: 80 34 00 e1 40 0d 00 e1 addd \$r0 = \$r0, 1234 \(0x4d2\) + 30: c2 70 05 d8 00 00 00 b0 addd \$r0 = \$r0, 12345678901 \(0x2dfdc1c35\) + 38: 01 00 00 80 fmuld \$r1 = \$r2, \$r3 + 3c: 07 f7 b7 08 lwz \$r0 = 0 \(0x0\)\[\$r0\];; + diff --git a/gas/testsuite/gas/kvx/kv3-2-fat-bundles.d b/gas/testsuite/gas/kvx/kv3-2-fat-bundles.d new file mode 100644 index 00000000000..54717eb55b4 --- /dev/null +++ b/gas/testsuite/gas/kvx/kv3-2-fat-bundles.d @@ -0,0 +1,20 @@ +#as: -march=kv3-2 +#objdump: -d +#source: fat-bundles.s +.*\/fat-bundles.o: file format elf64-kvx + + +Disassembly of section .text: + +0000000000000000 <.text>: + 0: 82 34 04 e2 80 84 00 e2 addd \$r1 = \$r2, 1234 \(0x4d2\) + 8: 80 84 00 e2 01 00 00 80 46 a6 2f 8f addd \$r0 = \$r0, 123456789010 \(0x1cbe991a12\) + 14: 00 00 00 88 46 a6 2f 97 00 00 00 10 addd \$r0 = \$r0, 123456789010 \(0x1cbe991a12\);; + + 20: 00 00 d8 8f igoto \$r0 + 24: 00 10 05 87 xcopyv.td \$a0a1a2a3 = \$a0a1a2a3 + 28: 80 34 00 e2 40 0d 00 e2 addd \$r0 = \$r0, 1234 \(0x4d2\) + 30: c2 70 05 d8 00 00 00 b0 addd \$r0 = \$r0, 12345678901 \(0x2dfdc1c35\) + 38: 01 00 00 80 fmuld \$r1 = \$r2, \$r3 + 3c: 07 f7 b7 08 lwz \$r0 = 0 \(0x0\)\[\$r0\];; +