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.34]) by sourceware.org (Postfix) with ESMTPS id C263F3858C74 for ; Wed, 23 Aug 2023 07:44:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C263F3858C74 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 (localhost [127.0.0.1]) by fx304.security-mail.net (Postfix) with ESMTP id 817EAB90CAC for ; Wed, 23 Aug 2023 09:44:28 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kalrayinc.com; s=sec-sig-email; t=1692776668; bh=evniQ4lOfXNUZAIxOtYAnuD74gZd8gC3ZMxokPgE7To=; h=Date:From:To:Cc:Subject:References:In-Reply-To; b=d1FI/uOtwNw2yUr8KLdH+e2tQXw9OrfaptqQ1Y4GPJQOBjmNw0T5Pyqw9CPzPTZJa zkUTdCow0ncIO9gfXP7vuRnMuIY36df4lXk6YI/OGeKDLBFEB3JQ4/UwzBft0Vkdgv drmMpoJ3Z44Bdzw45a/4OC9OfSLplj+Zc63YKJCU= Received: from fx304 (localhost [127.0.0.1]) by fx304.security-mail.net (Postfix) with ESMTP id 65612B90FA2; Wed, 23 Aug 2023 09:44:28 +0200 (CEST) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01lp0107.outbound.protection.outlook.com [104.47.25.107]) by fx304.security-mail.net (Postfix) with ESMTPS id DD596B90FA0; Wed, 23 Aug 2023 09:44:27 +0200 (CEST) Received: from MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:33::22) by PR0P264MB2454.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:1e1::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.24; Wed, 23 Aug 2023 07:44:27 +0000 Received: from MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM ([fe80::aeb6:2f26:45ff:5461]) by MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM ([fe80::aeb6:2f26:45ff:5461%6]) with mapi id 15.20.6699.026; Wed, 23 Aug 2023 07:44:26 +0000 X-Virus-Scanned: E-securemail Secumail-id: <42c7.64e5b8db.dc7b6.0> ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ie/Ki2JsFHu+5So7+F8PAp+Q0lJ3Bje9ssJjcCXTI+NENCAZnziKXS6IgSGh1H6xpQdETz07xz2yPfK6IydBBLAwuPMYIOfjItXM6BbNzPYkbrWdaieFWzSDq1oPhTzna/F3oTbuDV3mF/saHEtggy6CN2JLUMrsyx8RRwBqM9/wAXw6v74d8HjspjboyXGGPIjJn9pu5TvQ+UDqsjVCwdDA3UNOeSPd7dwgSQhMJoSQ2I/om3tBgKuhSlbgYQECct6ZbtXyIt74ntD34o7n8dA9vcY4KcYo5RqVCdF9P4DDa43qk01GRkvFPhRwVx2zAwC7MjTMPYf3kXc223KTLQ== 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=cP4fuCzcGkPQ4/y+gP7sQBIyk7IZKRaAT1BaxwnP7JQ=; b=HBPCNxHNtULeKJDhNFD59sjzCWQthj82UDDkSk8DudzILu+jsnGozxmB9Zsvxk1wX2ZYymKIwhzUCULpR655KprpNdi9qIAc2g20iEqjNrBSqrI19RJZa75UpWuWO61+g5508hIthMGI3oc4WyCfbdnelI34Faj2KL1woQ1OF/iD1/wT2iXTrTzPV34bqKkNKaeRDJ9XBJ8kZuCctyVNT77rXW00YFVw0fuEia3ho3zySxCJnasa6vspO/gYkwUo+6oA0/dsLBMQlcQSiGUuzJF3rqHN+d4i3eJJTboWPc5WhlEPJE/8aaGEwEoN/cXhgMwR1jS3f14z2iowlpgBow== 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=cP4fuCzcGkPQ4/y+gP7sQBIyk7IZKRaAT1BaxwnP7JQ=; b=GsUUi9RnjAxTgFXJ0k0L0qqplppM8IgfkZ8mhgERpb+3LpwqAIuYkSys9qB4jsj+i7q4sMzF6Or45CAG7vBgSypzoH2YFg2eJGNe4Q9DCGhE3CugDLxjypMmNqD2WbZJaWj2+C+NT7pogZcqs2DjSC81QqWpNUuVCkiNeT7H21jqIvpYJstSB0s4TujFfB3fWoHju/xZ8Z2OL7OSK35J+VDB1I3+RYEiMp0InAcjjwbgV1RW+Nf1I8opk0t2wUIGgTvGbc8mymAQroT6Qmzpdd/3Zl5DYjfbawtqGCb09dcGbRLamHpWyBF1j3NSEoQhJvMbbS4MV1SIsYdyHqs2dg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=kalrayinc.com; Date: Wed, 23 Aug 2023 09:44:25 +0200 From: Paul Iannetta To: Alan Modra Cc: binutils@sourceware.org Subject: Re: [PATCH] kvx: fix 32-bit build and validation Message-ID: <20230823074425.yikpvg2mcgmhipbu@ws2202.lin.mbt.kalray.eu> References: <20230822160142.ocnjgkuboicpncii@ws2202.lin.mbt.kalray.eu> Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20171215 X-ClientProxiedBy: LO2P123CA0100.GBRP123.PROD.OUTLOOK.COM (2603:10a6:600:139::15) To MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:33::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MR1P264MB2482:EE_|PR0P264MB2454:EE_ X-MS-Office365-Filtering-Correlation-Id: a51c453b-9a20-4eec-74b3-08dba3acc69f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: I+wmsS9Zrv4pGeDR2ihDZAEpiGGeNQFumI2X5HuFSKx6sKoDTHbHt0Uce4timC59YUa9D/V8mgLhzzbcJaVdhIOj2NyHWKjEHbK2XfO4hKXQBV4BUix021skQcmpcLIcwrFopG0TTNgs7AY2982IRUVc1dp++2Xt+Y+vG1B1uHvIFmSJIzj8uM8oyY4rgmZwRgy6/ecHTtjfNiA506oumvc25y2vfAZYktbsE/gnRVmvc0l1C4l589aEb4mXwgNTLT05mlgyi9hs6Cl3HEAb3k00NTbQFGaI7Kdgt6/3fgdApXw6oOmL02ntPudiSBWzUTX0DU0wtAYPp6eERCLG7kG6Ic1seXHcywMSnD+A5L0WJrcJy81TaqvpV3/ykCfohDiBADUHKboeZPGEKPMhveu8UkQ0M7h/l3GFsycTdKlXKrrAkIiCg7cdPzl/6LmCzeASV1ufJZnl2jhAnSSO1bGAuDN5nb5YR37PLO9gQJMT4GeaBkQve971ESDwp6KYnYYIhaHqkbZOek+Iqi24diWr5PPnGCrPWUF/Of+Jwp77cMdlS/PvSLIipiYi7TAX 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)(366004)(346002)(376002)(136003)(396003)(39860400002)(451199024)(1800799009)(186009)(2906002)(38100700002)(6506007)(6486002)(83380400001)(5660300002)(26005)(86362001)(8676002)(8936002)(4326008)(316002)(9686003)(66946007)(6512007)(6916009)(66556008)(66476007)(478600001)(1076003)(41300700001);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: rOyj/9zwGLJW2rqUqLTQddbg1GlrRNCSb2gDef2yY86H4h3IOVf+HCq714DdKLVZ7CVzyppExgOa+C3apDnuGhjptNy0osRxJbk69LrmLPrqdxl8VaV5BTaRGgd75g6DTAokAMt02BFR1ppFMTUohoC5E4fWtS42MWXsAKmfxbQnnPKKAJ6ysHbDK80sXmYgoI1vBmBs+GPfQq77TslRseiRUoUcFFUNsyCBe2E0sS/LbPuhKTknt79WI0aTbY+VaXkc0W7p2cAFX1mweTnTd9Ta+caYyf/h2+Dhz8elJi6gI2H7PJFdaj7AxZp+eCfhYATxU9VCTfwPMyE3umeX9cwEXYPBLibVxcW0q/X9Pe9MOBcJoq0N8KPf7siahYpXrzYTkQrGQseJljrGoQ6YKwQ5JAZT9WkDdAXHjCoABru5wMG2aq2swkwVc4aFnr3C9UmGkN0Ak4vLKSst8F3Cp6wpl5awKXdJcLFpReNeNRE3OT+0uRi9XnPw9CrOKP0T3AaVgaQ9wL+Ewecck+TFusCBtog+hGRftuhFafNKUO3BK6fV5BU4zehI1O9/QUhKOaaVGQQ8fgkYrvehSsYejglNQapkf6hRvswCwoq3Jo6dPYN8/yl29hhjXqgVDxFDfHAryNPVLAz21fB5SLftZu5BLJQ2gzl3CwtkHzz9JAx2QCB4/Vb5D2y66+NvAofDWHm+UC8gFQT4bRjqlHMfGPjg1pC4wIF8LrwtJWHyVN3spTM45LF+x6rPBFe28iqsU8L0mhUVI5DYyfBchrEAaPymmles7+YENvznOIIklKsCZt3xh4FRo1444+LkbJ/tegr9ABQ8kkAxxd2wRWUdtBg5KqKkFelrLsMsN9IF0EFqyQxGpqeWdECsGCmAJ4P8rAg5O0fViuKa8MrPxSIALj3QiEBUTXuVM+IXoYbPIm9VOkmWWB4YyOABDh3kJZJ8 vcUh7ZcLozeWBDdOkdMiiIJg6n3cCESyguid84EdqV6yoUSX+WPyNjST1vvA+RBFkjVeczROe++NWMY32Dxdj/XbqmldLC5fBdFz2xTmQVY5G+fMeBY4r5KnyA3R/WbX/dzUeDPGMCqKzwMX8XiJVtHfvuRyAOwDjxHGWBnwOEvUEfQr5erLZhTgrs6GQLk1qrQDYcBvfKtLsVhk5vzQ08Qg6EtuO626oOxv+ic58mMEO0HZ9cjiDHigkup0TUel+oRBBVUuNndz3woCXloqf8VEh1uH8GYzGjkdw7CY+aqZOSyFDYprhzdnnbtLNYwoQtOTxa/VCZobQ478PqVKWqDDlWUAR8FciMxC8b4A/MRrX47sRx/+3TcMQqfBBhZTIh0f1qDuaitQgjoKuqlRIeJMAfDWjFWafxBjHw40c5u1AQ+nYj2GmLiLmWA1vPKjrxGTn/EDLWZhgW16qXQUEEmvkGFKoGs8rZOMZRK/8zXMw9pZAJ22excDvkKJo1/NJBu/7tUT0Fcy09bmGGIZe+ENBCSkO1VbyjX7bU/gUkCZUuvAduiemJVUs6IEiFokxbi5JvHhUFJ08W0Zi2BFdOaP0WvKB2tSA88bLwA1Hqau1CcyamONyrQxl9VjoGWYT1BtZvb1Q6PJJgixQQeK2g== X-OriginatorOrg: kalrayinc.com X-MS-Exchange-CrossTenant-Network-Message-Id: a51c453b-9a20-4eec-74b3-08dba3acc69f X-MS-Exchange-CrossTenant-AuthSource: MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Aug 2023 07:44:26.6895 (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: KPWwPn+ILt/ZdqssZmdK5lLRnK0trC6aSutR00inrvvbpn+WDMLMJ6QQUwonU/B7rjVo0CTbY7TzVN782JqhWw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB2454 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-ALTERMIMEV2_out: done X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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: Thank you very much for your comments! On Wed, Aug 23, 2023 at 09:57:26AM +0930, Alan Modra wrote: > On Tue, Aug 22, 2023 at 06:01:42PM +0200, Paul Iannetta via Binutils wrote: > > kvx-*-*) > > - targ_defvec=kvx_elf32_vec > > -#ifdef BFD64 > > - targ64_selvecs=kvx_elf64_vec > > -#endif > > + targ_defvec=kvx_elf64_vec > > + targ_selvecs="kvx_elf64_vec kvx_elf32_vec" > > + want64=true > > It isn't necessary to put kvx_elf64_vec into targ_selvecs, but doesn't > hurt. I mention this only because.. I'll remove it then. > > > - kvx_elf64_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa" ;; > > - kvx_elf64_linux_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa" ;; > > + kvx_elf64_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa"; target_size=64 ;; > > + kvx_elf64_linux_vec) tb="$tb elf64-kvx.lo elfxx-kvx.lo elf64.lo $elf $ipa"; target_size=64 ;; > > ..I don't see kvx_elf64_linux_vec defined anywhere. Delete it? Indeed, it somehow got missing from bfd/targets.c, it is mostly similar to kvx_elf64_vec, and only exists to match what is done in the linker with the emulation elf64kvx_linux. > > > if (class == classes->imm_classes) > > { > > - unsigned long long uval = token_val_p > > + uint64_t uval = token_val_p > > ? token->val > > : strtoull (tok + (tok[0] == '-') + (tok[0] == '+'), NULL, 0); > > - long long val = uval; > > - long long pval = val < 0 ? -val : val; > > - int neg_power2_p = val < 0 && !(pval & (pval - 1)); > > + uint64_t sign_bit = ((~0ULL >> 1) ^ ~0ULL); > > + int64_t pval = sign_bit & uval ? 1 + (~0ULL >> 1) - (~sign_bit & uval) : (~sign_bit & uval); > > + int neg_power2_p = (sign_bit & uval) && !(pval & (pval - 1)); > > unsigned int len = 8 * sizeof (pval) - __builtin_clzll (pval); > > for (; class[cur].class_id != -1 > > && ((unsigned int) (class[cur].sz < 0 ? - class[cur].sz - !neg_power2_p : class[cur].sz) < len > > I'm about to commit a patch I wrote yesterday that fixes ubsan > warnings in the above, which will make this change unnecessary (except > of course you might like to make the variables {u,}int64_t). The > expressions you're using for sign_bit and pval to avoid signed integer > overflow will no doubt work (unless unsigned long long is larger than > uint64_t!), but are more complicated than the following. > > int64_t val = uval; > int64_t pval = val < 0 ? -uval : uval; > int neg_power2_p = val < 0 && !(uval & (uval - 1)); Thanks, I'll much prefer keeping something readable. > > > index 3cf6b27976d..00aec6c858e 100644 > > --- a/gas/config/tc-kvx.c > > +++ b/gas/config/tc-kvx.c > > @@ -1419,6 +1419,9 @@ kvx_set_cpu (void) > > if (env.params.core == -1) > > env.params.core = kvx_core_info->elf_core; > > > > + if (!strcmp (TARGET_OS, "linux-gnu")) > > + env.params.osabi = ELFOSABI_GNU; > > + > > int kvx_bfd_mach; > > print_insn = kvx_print_insn; > > > > Do you really need this? Other targets automatically use ELFOSABI_GNU > when the ELF bfd code detects known ABI extensions. See > has_gnu_osabi. Hmm, likely you shouldn't be setting e_ident in > tc-kvx.c:kvx_end. I thought I needed this because we may emit STB_GNU_UNIQUE symbols but I was not aware of the fact that has_gnu_osabi updates itself depending on the features used. I'll fix that part accordingly. Thanks, Paul