From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2063.outbound.protection.outlook.com [40.107.20.63]) by sourceware.org (Postfix) with ESMTPS id 256B93858D1E for ; Fri, 10 Mar 2023 11:25:04 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 256B93858D1E 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=RfigMkizmnC9UQD0Md52Cm3gWmp+2IGrEWS/j4rf3htogrexLjcibXWR01qpdvZzAHD102UuhhHkAG6ExnN+tPso+Iwy0SZCH1hdm4lk161+/mbKEvUZu+J+wNgg18O59SDM5ZDyVNu5TnsLdn9gUzRjUXcH5KZFdCwqmoEhdU6xb+yY2UlAOd7ieBV2wzpwDSRAgg2RYPbFpzfqAsLzWdYl9MOBTcCtUSskoa8TGhWnhJXUf156ueHJpJkxaipcMpG/rjWMxzhdKgjSWdCXaaF9DlHazIUHrwhpRtvII723QipVTOzPq5skl1tQMvBN+hw7x4uNoXEBRBixHzh07w== 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=W+81kQXDLrLpMOv0nDCDtGvcRMW2lH1bxSuDmxYzLrc=; b=n+holZAAyxqz46dImlMGkT1hzewQv6GZCTf1enCqq0YWbdFjYXRc4hSgKPdHHaDqemCLA5Qpv8pAsT3g9hEAGHgV7UYPlBBCnC1mgiiPhRC0p7ORQGVlYBfS6kkPN1atJw4uQAFRHqyAQwX1bwVHa520clMiF3aCSFFccbW3OcpqCAFW42iEIqjYVDhftU1Bdo181Ae9CHXZ2vfqPf25KTQQWQgPfiQ13pFzIV0NGXxLZSPQ971of2BKeJZuZxh/Q1cWqc69FZWVKHb9lYrVpY7pDyKezhinsBgMAbWFD2gQi6nVUCQlXJv2sHHBlAOU8fBakWfZyQufGUlSiMaYNw== 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=W+81kQXDLrLpMOv0nDCDtGvcRMW2lH1bxSuDmxYzLrc=; b=jQ7FJU8stZtoEfMArWR6m/B3R4C/SqO21JwT2So7YbZsyLVKtdcdksSiznRIv386Nu/4MUeFBZo8n7GSV6oI7m/3jVNLt9fJYfafX6tVLq8vvS11453d7dtnaDv0J6vHZ6XObVefE+ozFF1+ANB8CTQdXcQHg0s/Q9ZZQBtsdoUR3jBCHvvNVnDYqdql2qQlYMl0Xl6Aaxa7/0YlU7kSq2YU8t+8Vei+/WQOUEmKDUzz5oqPPm4D3705TGTkaaiNQqgL63SMQlkeFt4+nwo22otlsj1TJ6210LX+9l2WMN8EXqvxitPMau5iGF9VGrTr4BkXL64koroU1oVLy0I9pQ== 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 AM9PR04MB8195.eurprd04.prod.outlook.com (2603:10a6:20b:3b7::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.19; Fri, 10 Mar 2023 11:25:01 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b%5]) with mapi id 15.20.6178.019; Fri, 10 Mar 2023 11:25:01 +0000 Message-ID: Date: Fri, 10 Mar 2023 12:24:58 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH v2 1/7] RISC-V: minor effort reduction in relocation specifier parsing Content-Language: en-US To: Binutils Cc: Palmer Dabbelt , Andrew Waterman , Jim Wilson , Nelson Chu References: From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: DB6PR07CA0087.eurprd07.prod.outlook.com (2603:10a6:6:2b::25) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8195:EE_ X-MS-Office365-Filtering-Correlation-Id: fed3aa55-261d-46f9-9119-08db215a164b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 8mjg0RTIip5VG6URtxJU4avjjQTud4hgItG9mVY7ZWG0fjA5V0HwRPd8ABewcahI3InpCMLnSqK1nhDy2i8xmi0mnSf5ux8kaZynPWms2xjMdjAbTKNzqsA/P88wQ5hMBWlkdw/ZutLveXckpDbGscM4z3tpHoeiuH2K9PZoyNmjAUsod1Oxo8izyUUvDOOFzkF/ScBa9bETwYkBRprp3jfdXNQIv69b1/wK4chpIGyjyNVWXBHTa/d9gM1VFxR+Gf+xRpaxwr2+Iq0jOEZNFSxCFcbMBujsM/LLM0r97udE0aAxTpT556+2lu6mNTgmuhA1i+qMGW6xHXlLJgTEM3Hrf0jyfLF69p47CKVoKoStRiLTsnKzGhpefqDQ6zwdoYL7qmmgRw88Uk9otNeDJWtGZ/ZYV/ELDxPpDQ5fEc6gszEvYA3507RBxSaqWNGTeZvHXxzw4gVqKRWph1Dg2E32jJ3ahvgFC9Dj/TMFuRGyLAGdir1yWKKPuaJY+pmYfMIa12qKLxmaLMzIF48Ch83q3oPDCwxDplUJ0XIbPsvEAGBW7MtDrNB1Y1vikNaaTCfBzvVgo9xyvFO2bM++kuEriNilpkd1/HIrDBZhpTxtPWocSCBkVKL6M8g/JX2GgsgUEMZsF4WkXs7wag5XrREhFngY4ek6Bwn9U9jdJfO6iQP+lXjArcSF8lkeHfRQYhjwHrY0Q62pgHScb+yBZiubU9i16TiLlaxUjCXXHzg= 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:(13230025)(136003)(346002)(376002)(39860400002)(366004)(396003)(451199018)(36756003)(316002)(38100700002)(54906003)(966005)(6916009)(6486002)(8936002)(5660300002)(2906002)(4326008)(66946007)(66476007)(8676002)(66556008)(41300700001)(478600001)(86362001)(31696002)(186003)(6506007)(2616005)(53546011)(6512007)(6666004)(26005)(31686004)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?aXlXK2ppcUtEamFWZ1JueFNVMmxaVVBhWlBVa0VYNXpFVzhvQW93d3h1MFo5?= =?utf-8?B?bXo4bURqeGw1Z0NQRlZoM2l4S29INjBsTGtKdFJmN3dOOWdFMUhVTGJXYk8y?= =?utf-8?B?Sy81YjhpTXB5cDhWVXRSSXFLcFVYWktFSGxFYnQwVDJTcmd0MGlTV09TNXYx?= =?utf-8?B?UUhyUlBodVUwQUY3RUptOG9haG5NMG1laTE0enJnMmxJQmJjSEl6Ulk5eXpM?= =?utf-8?B?VGVSU1htdmg4NTdQYnduK3A3ZzdyZkd1TndQakNLSll6MUF1RjdjdGJOclk4?= =?utf-8?B?MXhGQTVEdnhIS1BSbVZiaHZPbEVFMVk4YWNmUGt3YTlwRU1jKytESjExbTR0?= =?utf-8?B?K1BZODlCVlFLeWx1V2hiT1hDSHJyNWYrc25XYUdsU2F2dDdZdWd5YnVSM2RT?= =?utf-8?B?SEdtOUd0L0JHMzIzSndQNHZENjJNZGl5cnhkQVZrTEcwRXVwQ2U1MmpTc0dJ?= =?utf-8?B?aWFRUmMzRXpEaENRNFBRYkNLQ3lpSkpXN1htc3Z6R21tOTFLMXJnNFkrK2ta?= =?utf-8?B?SzdHTmJKaFJOeWQzbGRnbEw3L0hxalNFMmY4TndORC9QeitVUXJjZFdVdFBV?= =?utf-8?B?VlU3NXpLeGI4QW0xcVg0NVFrS2tBWXc0TXpqRzYwM3V3K3FwMldGcWJHeTZV?= =?utf-8?B?ckU4T0JneE9RSXBCckdhS1Z2STJ0QTUrVlFCTjE4TmM0anZyQXhhUXQzWkZz?= =?utf-8?B?dHp4VGJkRmVJamtlWVBaQXZFUG0rL2FVQ3JvbitWd2tZUVJMSGt2OXJlaUhQ?= =?utf-8?B?Z3d1TGVCWmIxaDh4NW9YNGRyaGJZeXU2dS81YnVtTXpuWDZPUVZHWndXajNZ?= =?utf-8?B?bEIyajA1STlQQmtxaDRlODBZMVdPUnIzU21xZnMyK2dhcVpsWEtKczZQQ3Uv?= =?utf-8?B?dk1seDRtQzNYZmdPUERMVFMzOGNvQi9laU5Qc1lDRlNiUDJCSGhJKyszUjRT?= =?utf-8?B?SU5MQ1lVZzJuRWd0TFR5YnN0b3RQeTV6bCt4SnUxbUowNDZicHI2OVNuaFhH?= =?utf-8?B?VFdNZC9zT3BVMW9sZXNHQnpIWlY0NU4xMjR1TkYzbHk5N2RRM0tBdkxRSU04?= =?utf-8?B?Qi84UlRJZ0FKYVRIc043UFVVcXdNYUhQNHBFTHQzK1dXK1VEdVozVUkydzBp?= =?utf-8?B?cjVZNVEzcXI3K3hnSXAvYXBYQllzRDlqekNvbFc0NGFhTC9ndUMwaURpUDZW?= =?utf-8?B?SWRlWUlIUnM0VlBHQkpCeFhDOHBxL2N4SUovTEV0a1BHVlM3MkUxMjR0ZCt0?= =?utf-8?B?SjJXdE1YWjhGdW5ZOGxFVUVuUmtRRjFkcFAzR3dJR3ZtRzNVeU1BYllOS3Ix?= =?utf-8?B?MC9IRjBhbS9id21Qd3pIL2hwbmgvNXBKV3VzSmE0Qy85YkFQZnVpVkY4dCtk?= =?utf-8?B?L2kzL0dMQ00rT1pLKzhIaFBHYmxBSCs5SEQ0N0dlNWVPYzhTdEpseFQreHBH?= =?utf-8?B?VzRtVHZUOHdjUHFXSU91OUlKOFBNUjQxY0dsci9QS25VS1RWZG1wQU5XczI5?= =?utf-8?B?eW1tVHBrSUlBZGNIOVIzcjBIODZnWmRtVFBSaUgyMzB4dnVWUVcrc04vNEkx?= =?utf-8?B?ckxKd1ZVdVdUdTZSYzB6K1dVUkxFMFFxQlJxS3RWZzE1SERLK0tNZU9mcS94?= =?utf-8?B?TUNhQUw0K3VwVVltdDVqa0QxSUpXWFBDbTdmNTJ1TlNkbTBRLytramtoK1ho?= =?utf-8?B?ZnArQVhCMHVHQ2tndFZYSHd2MVE1ZGlHV2xIVU5oajFsRUN3dDI1cDFORkk3?= =?utf-8?B?cWpCTHBtRTg2bHRma3JaMTZpYUl3Z1poWG5HMFVmbFQ0bDd6OUlYdU54Nk5U?= =?utf-8?B?dHpDN0g0KzBpcm5sWkNzMkR4SzZYMUNFQUhBbDF5eWhpYzdOcXFTYnJVUzdu?= =?utf-8?B?aU5xcTJYMWw3K2tHd0s4K0JlRFFHTFlzakxRbFRhZHNKVUJkRjd5VU9tdTlR?= =?utf-8?B?UGk2aS9YY25FMmk3V2M3UVoxVzlRSGFZdSthYjNKbEVRTWJzWHV2d1pqR05Y?= =?utf-8?B?WUpEdm52cFRUVXNUVWk3d2pXOTVONkFsZHJuL1RYOS9oalU2YzVTZ3BjN0Yr?= =?utf-8?B?YkEzVWJVQmxvUWVpTTBUSk52OGd5Q2lPdDVqdGw2d3VXOEI3Q0hJN0M1Vkpu?= =?utf-8?Q?ATnSc3kkOzGrC51EjcDMgmvL0?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: fed3aa55-261d-46f9-9119-08db215a164b X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2023 11:25:01.0225 (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: vc+Q7mfaVTM0DPH502JaJf2xVZHnekzYrWniLRPv1XaccfIIlC8mf8TBh74ubor6vSxaQ2HMhvAK/+sQ/BEJ3g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8195 X-Spam-Status: No, score=-3028.1 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 10.03.2023 10:25, Jan Beulich via Binutils wrote: > The sole caller of parse_relocation() has already checked for the % > prefix, so there's no need to check for it again in the strncasecmp() > and there's also no reason to make the involved string literals longer > than necessary. Taking this together with the .altmacro observation in https://sourceware.org/pipermail/binutils/2023-March/126601.html it may be worthwhile to consider allowing a 2nd prefix character for relocation specifiers (e.g. '@'), such that they could be passed as macro arguments without conflicting with the % operator. The change here is effectively laying the grounds for very easily doing so (might then be as simple as a 1-line change). Jan > --- > v2: New. > > --- a/gas/config/tc-riscv.c > +++ b/gas/config/tc-riscv.c > @@ -2135,34 +2135,34 @@ macro (struct riscv_cl_insn *ip, express > > static const struct percent_op_match percent_op_utype[] = > { > - {"%tprel_hi", BFD_RELOC_RISCV_TPREL_HI20}, > - {"%pcrel_hi", BFD_RELOC_RISCV_PCREL_HI20}, > - {"%got_pcrel_hi", BFD_RELOC_RISCV_GOT_HI20}, > - {"%tls_ie_pcrel_hi", BFD_RELOC_RISCV_TLS_GOT_HI20}, > - {"%tls_gd_pcrel_hi", BFD_RELOC_RISCV_TLS_GD_HI20}, > - {"%hi", BFD_RELOC_RISCV_HI20}, > + {"tprel_hi", BFD_RELOC_RISCV_TPREL_HI20}, > + {"pcrel_hi", BFD_RELOC_RISCV_PCREL_HI20}, > + {"got_pcrel_hi", BFD_RELOC_RISCV_GOT_HI20}, > + {"tls_ie_pcrel_hi", BFD_RELOC_RISCV_TLS_GOT_HI20}, > + {"tls_gd_pcrel_hi", BFD_RELOC_RISCV_TLS_GD_HI20}, > + {"hi", BFD_RELOC_RISCV_HI20}, > {0, 0} > }; > > static const struct percent_op_match percent_op_itype[] = > { > - {"%lo", BFD_RELOC_RISCV_LO12_I}, > - {"%tprel_lo", BFD_RELOC_RISCV_TPREL_LO12_I}, > - {"%pcrel_lo", BFD_RELOC_RISCV_PCREL_LO12_I}, > + {"lo", BFD_RELOC_RISCV_LO12_I}, > + {"tprel_lo", BFD_RELOC_RISCV_TPREL_LO12_I}, > + {"pcrel_lo", BFD_RELOC_RISCV_PCREL_LO12_I}, > {0, 0} > }; > > static const struct percent_op_match percent_op_stype[] = > { > - {"%lo", BFD_RELOC_RISCV_LO12_S}, > - {"%tprel_lo", BFD_RELOC_RISCV_TPREL_LO12_S}, > - {"%pcrel_lo", BFD_RELOC_RISCV_PCREL_LO12_S}, > + {"lo", BFD_RELOC_RISCV_LO12_S}, > + {"tprel_lo", BFD_RELOC_RISCV_TPREL_LO12_S}, > + {"pcrel_lo", BFD_RELOC_RISCV_PCREL_LO12_S}, > {0, 0} > }; > > static const struct percent_op_match percent_op_rtype[] = > { > - {"%tprel_add", BFD_RELOC_RISCV_TPREL_ADD}, > + {"tprel_add", BFD_RELOC_RISCV_TPREL_ADD}, > {0, 0} > }; > > @@ -2180,14 +2180,14 @@ parse_relocation (char **str, bfd_reloc_ > const struct percent_op_match *percent_op) > { > for ( ; percent_op->str; percent_op++) > - if (strncasecmp (*str, percent_op->str, strlen (percent_op->str)) == 0) > + if (strncasecmp (*str + 1, percent_op->str, strlen (percent_op->str)) == 0) > { > - int len = strlen (percent_op->str); > + size_t len = 1 + strlen (percent_op->str); > > if (!ISSPACE ((*str)[len]) && (*str)[len] != '(') > continue; > > - *str += strlen (percent_op->str); > + *str += len; > *reloc = percent_op->reloc; > > /* Check whether the output BFD supports this relocation. >