From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02on2076.outbound.protection.outlook.com [40.107.247.76]) by sourceware.org (Postfix) with ESMTPS id 93DA33858D1E for ; Mon, 9 Jan 2023 17:07:10 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 93DA33858D1E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=kzstW5S/3uTQpzvqpwJgrdfOO3cE0XdfDFD9UukAz66RMoinJ8FesJWQihjDHXClg+WEfbEn1tZrGY88+dEYS3sMxRXigeWIpzZE/a+8E4yCVWan/+ZDqluJnGxIERAirSJkN3JCcSOyBE6h4hVS7NG3yNvMbiuNRF4I7nl+wiEGtBjMu+c6B5JFtKneeyfDnUot9skOho2VVe6Txee+FDmkCIbTz0mwpxlxPTVhew8Gnh9C0lNHvH3wmgQPu2b3C0r5aT3aDRKHlOnpMJCdqWR/xQZNROBAHvqAHLUA/ChCNbcpuZP33uTzsWcQstoaEn7ElcU8A/8Aq6zHeV1lKA== 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=j5L8aLAUsUSDaohAOSVgev/8NM0ipGGpoenkYghYZQU=; b=HCLwP0rjK119BFDm+2JyhVhMADK+4Wnrwwfl76Q7o6kpR6a5It7XHTVTPpN5pxlWvRpEDbTpQ0Gj1YRwuK6bebbvfRlnsNept5yfNgrVU6JtNEhzGk9HapXphKe11LfDigeVg2KCc9NTLTVMVZi1x7TajVp53Euz2OR3Ko4VjyPYK95+D6UELN07sknWN56UOuxXQ29O4cmEN7LWEsfNH6iJec3mV9560HabJssqp1iFujWgQB58jvFtuAmqqs8pcRCyEngmYlT9iIfx9InzT2wa99V+/WEsfQsEwm5yoQx7+K4f+h4juForOaX8OQtNQKsWbOApouTHwEiOiAXJrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=j5L8aLAUsUSDaohAOSVgev/8NM0ipGGpoenkYghYZQU=; b=HK2VioQRhK/LMm6FiCed+eF1A/ntYoo+BxdZbvN54UB1xfYcDCtWXou7jmAgDEPMf1wkPdYe9FQZVLrr7Rp/VZkcYzYzv1L3F0mrjrDznvDm6mQWVQjydXun1+wnJZbAeob75QSIk+rwdVkwVV6FWNfZZP386IcA/p75zfExiGehEwRSk6rzLoRve9cxVSSJUkVzK7rsMOPwhpfDtEaQO0wSkbQemWSNrv6HRycg7cZ38byp01auCYYnJoqFE9ZaCOF4Xo3wBdvWzW2EkNuWagUffSbmSRITG8Qu2tSizycCTD9fYsMJ6jfXf35AambSe3L9mLZ65lnz+iKi65iKow== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB9688.eurprd04.prod.outlook.com (2603:10a6:102:271::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Mon, 9 Jan 2023 17:07:08 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.5986.018; Mon, 9 Jan 2023 17:07:07 +0000 Message-ID: Date: Mon, 9 Jan 2023 18:07:06 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: Re: [PATCH] gas/RISC-V: adjust assembler for opcode table re-ordering Content-Language: en-US To: Palmer Dabbelt , Andrew Waterman , Jim Wilson , Nelson Chu , Nick Clifton References: <6c9f38b9-c582-3a1a-55ce-bb9966940a80@suse.com> Cc: Binutils From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0132.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:94::12) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PA4PR04MB9688:EE_ X-MS-Office365-Filtering-Correlation-Id: c68232ad-88be-45b0-82ac-08daf263f076 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EEBOh2AsomwFTQKp2sYbFBuBrL7tWLqq6b+cSWgGXImhKGQIFEiag1XZ+1o1iWDJa4HmLvWaP82+41IdSpXtEC+/9gSIxbaWMCYRTlL/9Q2SfuyMGdb4oJ0TVDTuA2cJTRWvsYjU3VUCuQg7N7DvUr6i3/94Kmc6bhu+oG2ZbkyKyWhxvd8wssf6z75vPbiiE187ZzrIq5vPDOo+LXxCKF42hVo9Cpzc+24KNea9RIzFSvJmEPhBFk8dSF0H1CRZ3w+hM87/rua7K2KYwmibKFReNY/2tl5nlLP0C0fUU7zrJHK2nWZVqFgpn+IkZlGFJfT/bYQwDvrl+Rjsfr2DZBycloZ1t40nHjdrlMs46Q83HlQu7DH2okOcvvZCHPHAeySe1FqeIMJrw96VVUF9aRfdvF9Z4QD6XY3kNG2ONGTZEY+kI03kaMIO/jUniMQp0QLzfXHb8f32EXmuYoRY9WWNs09IGVmS5iGXqo9SkyQ7B8hdI/p+6LupA5XKxEfCSNPHM13haSKMdPLJMXR+HCSdIVLFApgUKk/J9tVzzueDrVdOcf6+D04rUxbOuP6ZCc50bMunP1Jgvleq4B3DYuQ5FVkOElWtmHD5BAw0C1vv1eshjUR5TN//o/Z0aSwcnXemJt92CGv7hQMaM6cDQUcuPKAdwsOQUaRv6llgtAmcbtNJV0uyVnribt6WyRWrCB4lDh8ElSwqGdeZEz+UqhiECJ5VLTh3fXHuxT71lFA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VE1PR04MB6560.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(346002)(376002)(136003)(396003)(39860400002)(366004)(451199015)(41300700001)(110136005)(2616005)(316002)(4326008)(36756003)(66556008)(66476007)(8676002)(66946007)(83380400001)(86362001)(31696002)(8936002)(38100700002)(5660300002)(2906002)(6506007)(53546011)(31686004)(478600001)(6486002)(6512007)(186003)(26005)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MTY4RkRDYnhqZXFOM0RBMGV0bzAzUUlaYlp3TFdYbDBIR2tDZldWaHBCSTBr?= =?utf-8?B?d3JrT09tOGFPZllwZ3NYWXEwb3dha2ZXejhkbk5nT292WlF4TUh6SWUyS3pm?= =?utf-8?B?dS9WSzJnUlVvSENzRys4VFZtYmp3NDRwK2FIcHhncDZJY2hSa3FEZFh3cHNq?= =?utf-8?B?MkVLY2ZSaFVNN215SXQrYlJuSmdCL05mbVllRDB2THdreHRGR1JUY0czYXJp?= =?utf-8?B?dkJFQjY4WmtxNkliV1oyeklvM1Nxb1EydVlWTVBVbDJMUVFGbmhhT0M3Nmc4?= =?utf-8?B?N0EvajVnelFLRktGbGxBNVhyUm5ISVRENVdQWDBONWx2ZlVINmN5eE9HOEZH?= =?utf-8?B?Mi9QK0JBNk9EY2VBMVE5SCs4aW5Gck9HbHFPaEl3UFErMkZpaWRyNC9NcE50?= =?utf-8?B?STE4ai9Xb1hERG5zZWV3MktJL3c2ei9OTnd2V2xETGZOQzhEaGF6cGhHRDBX?= =?utf-8?B?dTZLbTdxV2FrTS9tNmN3TkJON1dPb3gvRE1PVEVrUzZ2akM2M2g5alhzTzJl?= =?utf-8?B?aWVvcWtDWENMVDFFZWhSMnI5VTc0Z0xtVEZLbUZUUVArMW9rUUxhOVFtN2E1?= =?utf-8?B?U3pSSG5Yd0FrOUZibVM2WE0zYzBVdThaOU1wQ3JIMGdsYTdhbUoya1FjSUta?= =?utf-8?B?dDRUVXd6MlNVN3pheHRSUzE1M29ncWhibVRpTlQ4L1NGLzFWTFRWbTF1MHN1?= =?utf-8?B?T01JcXYreUM0d3ZleXJYU3c1SVcwN1ZXSWtDUUZ3ZDRFQUtxZkdKSkJGRkpW?= =?utf-8?B?N2kzZnVCREpoODE5anhQM0NhUXAvOEE0Ri8yM1BodDFlU2wzSGx0dlloOHl1?= =?utf-8?B?SjJZV2NaaS94Q3Jkc1R4SlJyMWhkNjhpMm9Ld2N3bE1qS0hzbytwaVUyQzMx?= =?utf-8?B?enBwOEcvRm10T3hEcnJsR2tST0ZiOVF5QTlVOFBaekZHb1pSMGhOMjBkY29Q?= =?utf-8?B?aFYzNXF1R1ZWcXh0MUpDV1JlWCswUDB1dHlJdTQrT0xrZVpzZ0podmVsUDVO?= =?utf-8?B?ZkhjT0tZalYwU3diVVlWQWNraG5yQmhFbGE5NXBwYVZ2Ykdqd3luSk9HaWVO?= =?utf-8?B?UVdXUDY3LzMwWnlhNjVTQWthS3RyZFgzekJacmh5VUFxMDI1NWtlN1hxWnAx?= =?utf-8?B?emZZWitobWs5dkY1ME5TdnNRNEoycXlCcUVqeG5qandyY0tjb2cxWnJtWEln?= =?utf-8?B?dUpVRjVUVUcvUXJ2NHF3aktrQ2Z6QUNlVmJyU2RKZ3k4dmVHNkdTMlFNaWxi?= =?utf-8?B?TXl0YXc3VjMzQkJoOFM5TjBzWGcrZDBuM3RBeHhVdWk1RDhMT0RzNGQ4QVN5?= =?utf-8?B?TDFMU2kwYlEzaTRKNTFiTVBCcEFUK1VIQUNkS3g4UnZTZUV4TXRyaDJ6SDZV?= =?utf-8?B?dGpKK3NYNmhBM05mNTlIZEczdXZ0KzVTNkFQMEdpZ1NNc1JQUERFV0tpeXI0?= =?utf-8?B?M0NTSlQ4VlZQd2NuTHpWMDkvMnQ2bFNVSitVMDVTbU5BalVGVjdqWERwdFAz?= =?utf-8?B?WXEzZk00VG1XRnY5VlBxeWdrSXZVVmFvd3l1NndqVzNWRTcxR201NENRWitY?= =?utf-8?B?QzI1MWxiTkV4aHpZblpSWHJ1ekNXbHdJeGpjTnB3VGdtaUZpK1lRczFLMmxq?= =?utf-8?B?blJEa2lXZ3JDeVRGaFU4djhGekNOaWlhUktQU0d5WmVEZ3VWclhnbzB3dEVC?= =?utf-8?B?TmF0TGF3cEZvNEhaZHRhQkNQcFJzcmxHNEpzc0lxbmFFRDc2MlZCREZRWWVC?= =?utf-8?B?RVd4YU9aR1E5eTIxNElGdm5lWDlveWlTbGtabjN5VGhucGVYNS96MFJWRmtR?= =?utf-8?B?bS9yd2NJOFRuZk5zZ1ExMlEvVWdjZG00SHVmMzZHaTRsL0FQQUh6T28xamtP?= =?utf-8?B?cTN3RnVudzQyWldNcVJGU0FPZXBPN2dpUUVKUi9ZN0doVDByckFleWQrS3hj?= =?utf-8?B?cFZINmlTQm8xd2hEUytIbThJcm1lZXRWNlR5MGZCU0ZQa2RZcEc0SUM5RUFY?= =?utf-8?B?bVB6c1Zpc2dPMTIzUForMmxJK09yMXYyWXV3ZnUxTjJVazNDOU96ckZqNm9k?= =?utf-8?B?eGh4QUxoZ3JjOFYrLzZYWjRHRmFZcU5hanZWeXpYM0dMYWcwbm1tWGNhUVFj?= =?utf-8?Q?PTT9xfHwXeTaxDig2MhCASn+n?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: c68232ad-88be-45b0-82ac-08daf263f076 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jan 2023 17:07:07.8828 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: ep6KW0Ihj/r2wMTxTAeQgRS29lcYyWINCkOq7qxdYtj/4LIkSKlCZUd/x/uODNkJX9y/UlJqQUrmblfpygS2OQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9688 X-Spam-Status: No, score=-3028.8 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,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 List-Id: On 08.01.2023 00:29, Aurelien Jarno wrote: > On 2023-01-06 13:34, Jan Beulich via Binutils wrote: >> PR gas/29940 >> >> With the single-operand JAL entry now sitting ahead of the two-operand >> one, the parsing of a two-operand insn would first try to parse an 'a'- >> style operand, resulting in the insertion of bogus (and otherwise >> unused) undefined symbols in the symbol table, having register names. >> Since 'a' is used as 1st operand only with J and JAL, and since JAL is >> the only insn _also_ allowing for a register as 1st operand (and then >> there being a 2nd one), special case this parsing aspect right there. >> --- >> This, of course, is fragile, but I guess such workarounds are >> unavoidable with the chosen approach of (recurring) parsing, and with >> register names being special only in certain contexts. >> >> A more generic approach, then possibly also helping performance, might >> be to count the number of operands first, and do full parsing only when >> the count matches that in the operand specifier string (at least when >> there are multiple insn forms). >> >> The similar workaround in my_getSmallExpression() actually looks >> suspicious to me: I expect that it would get in the way of using equates >> "shadowing" names of GPRs. >> >> --- a/gas/config/tc-riscv.c >> +++ b/gas/config/tc-riscv.c >> @@ -3266,6 +3266,17 @@ riscv_ip (char *str, struct riscv_cl_ins >> continue; >> >> case 'a': /* 20-bit PC-relative offset. */ >> + /* Like in my_getSmallExpression() we need to avoid emitting >> + a stray undefined symbol if the 1st JAL entry doesn't match, >> + but the 2nd (with 2 operands) might. */ >> + if (oparg == insn->args) >> + { >> + asargStart = asarg; >> + if (reg_lookup (&asarg, RCLASS_GPR, NULL) >> + && (*asarg == ',' || (ISSPACE (*asarg) && asarg[1] == ','))) >> + break; >> + asarg = asargStart; >> + } >> jump: >> my_getExpression (imm_expr, asarg); >> asarg = expr_end; > > Thanks for the patch. I have tested it and confirmed it fix the problem > I reported. With 2.40 scheduled to be cut in less than a week, may I ask for an arch maintainer's view here? Nick, to save a round trip, could you confirm (or otherwise) that this fix is then also fine to go on the branch (after having gone into master)? Thanks, Jan