From patchwork Fri Mar 10 09:25:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 67293 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp769680wrd; Fri, 10 Mar 2023 01:25:43 -0800 (PST) X-Google-Smtp-Source: AK7set/ArLxu6cE9oSH3rlV89HcKU0PnugztEuTF4jMvoxJpzzn0s8NIKd9ybk+5HoDR0UCCIXeN X-Received: by 2002:a17:906:ce46:b0:8b1:ce91:a40c with SMTP id se6-20020a170906ce4600b008b1ce91a40cmr21865046ejb.53.1678440342938; Fri, 10 Mar 2023 01:25:42 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id z13-20020a170906668d00b008e1dd2b8defsi1668573ejo.685.2023.03.10.01.25.42 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 10 Mar 2023 01:25:42 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=FG5Gz2ac; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B39C03858C60 for ; Fri, 10 Mar 2023 09:25:41 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B39C03858C60 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1678440341; bh=HHJOaQsdapjr5o7eo/aWz3GyqFoT9Hq5g62fiAe1+uU=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=FG5Gz2acVD5PGQ7qyHkUbAw8SOriyGwcLQnhb7AVRF2oO7N/JZsfh5hiM4aHtE5ll 0kSufaRISdNnRXJItjjs1x/qkCMcR6rUK6hTpMNWZmkwIWXG4fyEK9JoYRCAVJLx/P GzQ4URHfwS58Cp0EoaATOuBAqQPO2jkPuZ/yW7cQ= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04on2054.outbound.protection.outlook.com [40.107.7.54]) by sourceware.org (Postfix) with ESMTPS id 7FF133858C60 for ; Fri, 10 Mar 2023 09:25:32 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7FF133858C60 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VSi5s6skSIR6mJ1FTQURvkv89WtsOcGilQj3f5a7slOyeelWSmlUn0w0C1BQyBRcyA2H7bdpWz6QLJV1WFgdcH3tmWrgH4MFKDGbHZVeKs1mwxRU/lfRSJ8tXqu3Qb0HakdWs8W2p//t6MHGNqb4yQVGbtQXOZOYxz/q70hr4FJbeacG/vndSUvrYVGL+JAiIcutMjsKu1jyqsCPdAUkjg/T7NB/ICg6+a6tmDQf6rcSkSMqG7bexDlnyxfjKF7CA1XY0CjBH69H5Ccz3ZbHbBhBUjRZeJGufYgGT8BI2IvPv+zb+Swsap+QgKM1AUaIiA5M1m1cqdVHfBUL3o9ujw== 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=HHJOaQsdapjr5o7eo/aWz3GyqFoT9Hq5g62fiAe1+uU=; b=mYOgO9zrK2/vO6oo4LBfPK6wjuxxhT2Dy/2ev4/IGEjPxhyqHsynU6YFJQIrbLNTaJwaq8Lbgh3/fQI/6mmGkbwdcUBzoOsgXO9TMpWXH+6kDzmZG6YNBgmBV3WVTU/JNKP9MLd7xWlVUIS0exZxeIyCkF1mV0J+0MGKpEUoUMW14oRZrmvf2wJkrvVjKKLaYk19HRnRw9ptpX7RnD3ufdmBrC1W6oFGX0niRCYV5e2hyIPHlbpbdINeT3Q8ibSD8wxeTzcwQ5LOZOU7LZzUHKVqUsNqeOOZ8NrUrWaLQ4Uv/CLq/aL1xJjrQabDwNWxj4eR+lKMcRx7RZ8Ybi+75Q== 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 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB9464.eurprd04.prod.outlook.com (2603:10a6:102:2ac::11) 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 09:25:30 +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 09:25:29 +0000 Message-ID: Date: Fri, 10 Mar 2023 10:25:27 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: [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: In-Reply-To: X-ClientProxiedBy: FR2P281CA0093.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9b::18) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PA4PR04MB9464:EE_ X-MS-Office365-Filtering-Correlation-Id: 8793e4ea-6d6c-423d-62b2-08db214963ef X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: scf8ZdcHE1LKyt/xO3/Q1MyMixxCPcqHzfdqlLZJ34ztKLFI3i5EBV3daQeervRMHUjI1Vj5r3rkpH/jATC856SIgCebvAqgU/9+2ALcuB1ZoNJ6hOV1buJkqBb4LZWCi5Kr6UF47eJJXB9jZmJhXxx1XaUwnIfvjC342k4Zb5wJb2akNxna0190lGcLZe3ahZU7/YhrQKGvrHVcNOEzZEdjAnl54sQFoKJwYHtDw7I2T/L5AUaPUlqjZH5IzZPzowFaN4QIsDqM08Efaa9PRcVTV+9RQMRXi1LUPjZyIYOCqQRr+DtH25EnZR9bTLe2x1ClQJMSxD+EEPin9TtcLFpWMO7msM7iuvnmfPysRrBigURr5E0YPCy4a7Om0YxnLfzoS9DAw+baRseLc5tXW+cHZ650YjWibM9uDJGiTxqA5Dzl/weXpzzTsMKfLQK8HfhZD5ZQO3kz9nFU8cBNFtaVioBAOxaGDKH19jbiEBg9vziYoh9MXwjKduzns3c1DINuE8vEwPIX+6+ccnm1/vQyGenrZFhXZ6BX59DCPeT5vX7yfOoHku+0cSP+FDR2ppIEBe6H99WKtHxeEUFrT/v4ZSdX0YRSshbJXGjHybwApDPvSj6KXLpVE51PzZUlbaKKc5O18I0YD1uwHPYl2NQHePIQSTybjkZd0zuE7Gt47dBr8RMTYWXUi07s3sZnV0XPMB6087mg1ol48UkFoY7n7Z2pbS6ZdtxAYLgicIE= 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)(346002)(366004)(39860400002)(396003)(136003)(376002)(451199018)(36756003)(54906003)(478600001)(6486002)(316002)(5660300002)(2906002)(8936002)(66946007)(66476007)(8676002)(66556008)(4326008)(41300700001)(6916009)(31696002)(86362001)(38100700002)(186003)(2616005)(6506007)(26005)(6512007)(31686004)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?bftPsLI/pWX47nj3K4MFHDxCKkTZ?= =?utf-8?q?aoXTgaoH3Fx7k02yXax4qh/dyFa/kt8kjVe81WzeeKf68TnqSMQ9whMHxrDyNC2l2?= =?utf-8?q?WygvisKMlcV2oL/ORIkK+KDR3QA9gnsOi2vech6FfUrt0zarCvEfUP1FAifw0YRzI?= =?utf-8?q?6r4ErRmW8h5XDJ1ihNxemLpAFxRPlHJYYkiqI6OumrsHNaG69jXmkkgpD+mH0dE3P?= =?utf-8?q?C8T9nO044e365yRPzhrbj3mbky+DuZ7R6ljxsRYl0adjc/bTdUt9mG/hBOtDzagtQ?= =?utf-8?q?8U9WGNOKH+3ED33fB4yR97T2G4XyEcrKht5QtMNykx2wf4fV7Gx9klOBpswob7noH?= =?utf-8?q?y92d+elOt6zHjtGNGen6MfNtZSlPB29RbyQKzicqZEp9HXq3tSb5MebqUz9OQYp/2?= =?utf-8?q?dYgTJq3fes6iOhtb0Sg3VwVVlPxSzi3wgOMPZQbXb4i3+8BOBZmt/1ERlXTvg8xsL?= =?utf-8?q?9frkkPPwTFPWTQK9plRPRY7QAEuu5hUzCYctkOIQCAamKpS9RbPXmVIds7/m5V2RQ?= =?utf-8?q?XTAKZb1FlNrqmkrYNhdYeXDOxGMDBPEs2rIuwcjVNd+i76NEuTuzWG5p7Rw8EYiak?= =?utf-8?q?EoWCwpWi6rzchY4638bSk6in92mY+bOGzPoz0dfUsIk8TjeBat0tg0HsX6gojytbz?= =?utf-8?q?lDv6afQNU03bjzvz5V82FAf+YpeOEScDOKuY2B6sWWST+tLdjPxGLu1+9rpCZA9Mk?= =?utf-8?q?FjvEyJnFbyoEt9pPXlPCIrkB+fdCWIyUnFrAxCSv7bMsaMsP7QbsErQWpMEoHYaKU?= =?utf-8?q?PpA6uSVbt7eHjI1KCma1LZDlsbEaEJ5f3uTz9RC3q5Z/jzaFY2EGY8BstGEWL7GNm?= =?utf-8?q?oJuun3IH+GHiytWXuk77bwO1sLlN8FrFMajW6aSe370By/pWYPC3M6q5XceBsdqJz?= =?utf-8?q?HOIi4XQic6DbEUzV/yOPkxSC3tom5uic2DAv5eR4TPJO7owC9tEows9Gwa5IKRSp5?= =?utf-8?q?H7wM34KT1DQffVZ8xh89xsFRM39BimWhFXEIxdAKEPbs6MwCRdMowlZldAP6n7SX6?= =?utf-8?q?oIbXMEgtMNWdGZEcCA2gOS2bfFlWTPS8BHf11ptHUmpANAbGPB1pqgw334IeihZSx?= =?utf-8?q?zswNMGPnNvPeHdcocwoKa7E6JLaYQpykDHDDjMqwqTkxgjCCx867XwQTW0HEJxiza?= =?utf-8?q?HpP2noW4EeNzW17DR8CgqIXtoaXcs5ChBqIHKIt+/pY31IdiLuNq5kd3fvybFZ/BY?= =?utf-8?q?2vkgri3jj0S/xPimkdNqTA6PE7qUkW0W2Tlk/SggXDAMDDWbcHpqzw5lrRlLkEKw+?= =?utf-8?q?I4xy6nw0Cl8rfMc0i3VOTvgu/iUOrfJ77U6xTvVXX8An4qojk9Tk7Jt0nLAShdvI8?= =?utf-8?q?7XU3xEIGDKvhQhBot2kFmFFdDKrS8IXgDl5v3O8lduPFbm8KfiLAvlJITnID0jkSf?= =?utf-8?q?mc/6XcteNTYXc30+A4PYnqXDhApyDbbbSbidvOv4y2gLfOtKLtLsvlgB3Bhca0P3s?= =?utf-8?q?TW90gSVXo0Ubc7KzBZoOZeJb9N+m6PJpsdtP6fJczc/06+XNYbwvZFpqHCMzb38r6?= =?utf-8?q?AK/HkZZQemT9?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8793e4ea-6d6c-423d-62b2-08db214963ef X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Mar 2023 09:25:29.7425 (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: Ex0BHMsWlzLaKYO+cdJ2K7k529xvw3adODfNJ3DdK+CQBuBR1eLauHJ5H+qF//+fGKeBuetu3JcofviKhyVv1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9464 X-Spam-Status: No, score=-3028.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1759972260928376399?= X-GMAIL-MSGID: =?utf-8?q?1759972260928376399?= 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. --- 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.