From patchwork Tue Jan 24 15:24:32 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 47742 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp2212676wrn; Tue, 24 Jan 2023 07:25:12 -0800 (PST) X-Google-Smtp-Source: AMrXdXtW7aDsbKHAoyjxSFNXfw/YcGN3KwFkFJmsEiV96osMLbK0XSfeSNjOwKUZqNMEM98xBJ4K X-Received: by 2002:a50:c049:0:b0:49e:5902:39d0 with SMTP id u9-20020a50c049000000b0049e590239d0mr23438645edd.12.1674573912183; Tue, 24 Jan 2023 07:25:12 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id ck8-20020a0564021c0800b00482457d1e83si3029859edb.589.2023.01.24.07.25.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 24 Jan 2023 07:25:12 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=xtXktxLZ; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 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 37F6C3857C5A for ; Tue, 24 Jan 2023 15:24:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 37F6C3857C5A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1674573890; bh=fEFz2U94vlJfRrdHQ+JCb2n6o1kmEqrQW56XUFsP4rA=; h=Date:To:Cc:Subject:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=xtXktxLZH2WhaG3FlvduxoMx8MWiAlV4AwCDZkyXGEg7x7+1LMWU/JpkImvAmsfPU NN2JPyz9a2z0CyIVtrQ+htg5a9gKHoAXUE5dYI45aLr9WCuMlQnLBCIquXDw7XbZKN t29lVGv4SKzGGgcOPAKQ0Blyb7prwyTvUrbEJb0M= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2070.outbound.protection.outlook.com [40.107.104.70]) by sourceware.org (Postfix) with ESMTPS id E58C4385700E for ; Tue, 24 Jan 2023 15:24:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E58C4385700E ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MpSPSUTrKzaHM5qOCuxdUuN4NfXwSagT8ofAWo5dq/L9kbcfFNOowoZVIELPbG9mmJRjkXwynPf21GUf4qc1PGkiRQ7HnZgi+0HnNtsuS5nBiOVuaxcHBPxoAyBKg3CONxSVJyPpwe2RyH5yS77TCPI/h/TMlPmFVdMqwAL/WyH52VMoxtA3xmMTKgM0EW4SNfvIAldGmojevPdWfy88K0ds4Y97mgvKWO0cEIfVW2a6kH0F7GkbPHhctEkQmTwS1obYNownHdewo6NI7o91oDoERd6TXjcLctt1SkNBD6QYoiOQpV1GaOCn/Vr4NjnRDgiU5PqY1f9YiP7PH3KPzg== 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=fEFz2U94vlJfRrdHQ+JCb2n6o1kmEqrQW56XUFsP4rA=; b=L2tL9UrHRcrBtgp1Hu4Bw4A1uQdyNKRs3SbdlUDLAu7a0TFsrwoIbjr7p68hMFWOBFr8qxEwYDVxwSu3gaM1zeyPp2AIX9vk6bUm/HzqiW55mRdooNOur7+wiw0wHG5XhtLLIiyY/9nzMZFxtcC7KErfv2SrVr6uQUU4cR77WFChPF05g1ec7xMjWp6mRb6TEhyHdDpaqmf8vF70guOtiXmqdmO1VbiRrC3ihChw1LFbkLmapwKE8vfJkgbfgbsfibsxnGT7nboeNzaJiCXHXLhNHeGW9/ezkPN5UEXoflERiW2eGbiWYqg/OvUNMoluAC2YUsoU96lDIjsjVybvgQ== 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 PA4PR04MB7824.eurprd04.prod.outlook.com (2603:10a6:102:cd::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6002.33; Tue, 24 Jan 2023 15:24:33 +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.6002.033; Tue, 24 Jan 2023 15:24:33 +0000 Message-ID: <4e1ac6f6-8aa5-9605-0969-40f66549c181@suse.com> Date: Tue, 24 Jan 2023 16:24:32 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Content-Language: en-US To: Binutils Cc: Palmer Dabbelt , Andrew Waterman , Jim Wilson , Nelson Chu Subject: [PATCH] RISC-V: make C-extension JAL available again for (32-bit) assembly X-ClientProxiedBy: FR3P281CA0189.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a4::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_|PA4PR04MB7824:EE_ X-MS-Office365-Filtering-Correlation-Id: 1240f2ab-f60a-4424-0787-08dafe1f1868 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rpPXvIqGJcmhKBjAk4qqdsOiwj+UqxO8oSaZHHVTqpDNd89CcH/PQ5tHN50CRJ2aYG+XJNWybzCxMb+zXfif/AuzaWIfmKNurMzaFuk8LZPIGesC8omdbPcLeimbNusCyXxBxyO79eBAlj/UTt07F9Ggp707ft+KmgJtLXm52j1kiOPlisa3W1YHH3RNhirxR2yCHmLqwRXNNc9fYq1BzIDTr6ToLJelWcZVglixje9v/yFPjT1zzGd6Qxub1TytTu68s6TBz1lTXwEjGdiWje3z8Pt6A7i8wKd16zruFldVU0w7Ri5bQIgOKzSVCx3dT17L0ddOsoF1P7nYJ6BsehiD0BPyn/eSW31/xRJtZNLgQtnRMDgnS0E/3fEedfIkcDR8tQB4B0u1DXsN+v7KimZGypK5S8ZAPmS/9BNdU3NtHd+JaJwylmBHzO7Hnc7+aBunV5HBFzZrZ8tXmDXePsmr/Zpx8OoHPQnd9KaFNNuh28VL2+9EBZlLjLW32D+XV4V9bg4RQXO0N8kYC1DBs6iU1U3R31vw4mcOFRsX4IMPM+1+AbIu88kmnqcAs58Ft9kC7waGxUzwEg/zrwP+XAVeHBRM05WHRE6dks3tViexSJiwm1eVkDizVt31hSZJ1CurZ1LM/ugWzrfYft+0BpHOb9FXR8mW38Hn/+aBLkyHGJWEp1kPpl17Rp+A+VpzSUWHSYgEwVdOyZKagkLPEj9HHBEOsuYh18vNCsaQxiF4RLApqAjWK39YLtiZHI0OBYM2L369I6b8T+zlgusizw== 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)(396003)(366004)(39860400002)(376002)(136003)(346002)(451199015)(38100700002)(41300700001)(86362001)(2906002)(8936002)(5660300002)(4326008)(316002)(6512007)(6916009)(26005)(6506007)(186003)(8676002)(66476007)(66556008)(54906003)(2616005)(478600001)(6486002)(66946007)(31686004)(31696002)(36756003)(131093003)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?cAb1PeMvxIuwxbjlUih4xK18M/id?= =?utf-8?q?sR46b64TLpoWmyS3UTDAPasWgfltGVDbHtBryCQRMA7Udc0QQus5b2kbQJKMyVqWU?= =?utf-8?q?Y+bK0jXrJAqYykzdPfcYPlcu3KYHI18Supv1z5Kw/4cGmppBNKCT3je5gNHqYg2c8?= =?utf-8?q?TVwojWIf8Z0GmP3IpdPDFuSlRR05tU8voMK/tHsk76ZLhZaRsImEOxxPiLs68xesR?= =?utf-8?q?n3an+R4IcLaY9pctTOgrNJ/pnptZGuOqebuHgiHNrp9d7zsuzHGXwITM2vJKxYiTn?= =?utf-8?q?1x6IRTCIaGuvjeskFWTocuqgYknNMjT58JKMaU58V9s9K4eiz/7oqXX/ODWv52dZE?= =?utf-8?q?QTXDYAabx6KzKLGC1xJctK/9ZPW5e3QUr517RVCJCrm2rLScwMO2lrbWMKpCoUkBe?= =?utf-8?q?GoxDy4kVeJjEjlNuD0NZl/yHiey+SuKuabXk47BB2imVWmQ37UEf0vx8+/GxMqDcD?= =?utf-8?q?cs2+sZ01nAjKBxzWl1tzaXDRciUtoQyfIoRp3/pO7qoxw6okajAClhOu9TWaqwj4e?= =?utf-8?q?E3Yh1bZm4GNIrVnkEfrEwFcjNBxNJRj7Rsc9cBxLIcg20aL0HPPa0HjBCINEp7/xP?= =?utf-8?q?pabCUX6X9CUh5W0h9nr4/zJWoT/UBavvbImAgMvKXB8c9IihIaeoGs2M0F10JJS7E?= =?utf-8?q?0rJiZY80sHyFbQ9VOH8KB9a66kAnxQWXZEEVbKqXcwWMC6l+qgHgqrinKnbh7PUBk?= =?utf-8?q?gnWuG8QglJ+i425UW2V8Wq5s+iZ0CQyf39JtiWD3AtILC4OAozw44EOQjMD1poiZc?= =?utf-8?q?dcV4+JajYiqFmBDhrgJwfaexqQwveJgOR97r4p/DEHC4ZVOgOA+eer6eC9JQ+cufJ?= =?utf-8?q?gm/BnZrVl8tPXVGgY7RN1+dCh9M/mIYZnzX2LpU6P+fWfbGBcYeWUdaOQLyOQuAf/?= =?utf-8?q?Gxe7iIdT+OsqXU3RcXKYb/vWHwb0al6RQ51lG2ARStu4951zuln3WfZWUfSAzgyds?= =?utf-8?q?9nKtceXKRmIQnOEP61bUQ6p06NiH3Q7ysO7DcQ8nhxWhJQGeCbdq06CKj4+ZGpdb7?= =?utf-8?q?xZBGPO1m9DOiPxgmmHjy5ENOd/GMcuxlPeRCb2H/ABfJY0DUoHsGdeLv/DLQISWmY?= =?utf-8?q?75jzQb/nqDOKIRCZJ8BHki+YKYouk14xfTusqljWFPW1s/TQsC7Bew3+ttsBEwO+m?= =?utf-8?q?E0r4jxuAQJ6EZ0hssb2xI/1ApFY+1xtU/JZCfBvfSEspFn7RymlaNASBfVD3R2OKy?= =?utf-8?q?IKSupPMx++UU83IaG8SjzuRWtB+SxBuQAq7yx/aYeXmqF6LiFd8+U1Nb7Rfy550FP?= =?utf-8?q?iZhNcB7PonnWuyp06CnMGjIBbmsKWQlCPBL0Q3R7YcxvdojE1C8QkTQS1R33Wbqqm?= =?utf-8?q?OEoEBno98HQZlEd/vk396sa4wuFffyYQYwFvoYLxrBmFxmpU1ueYb6BqiGIvQxNY5?= =?utf-8?q?XBc8tYPmO4hjPva2ATxf/XfxdD4aWZkFhdpXFOWiT2fPXzO24JjaS4sT9xCJFF5c4?= =?utf-8?q?qvOAhwwn0rpFcjBksU+U/Yd6xrUrwPcp7hpqbZ8ymMXXk4+nrgmfeaTsKAwCFAKsV?= =?utf-8?q?4VuPh7vOHNcO?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1240f2ab-f60a-4424-0787-08dafe1f1868 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jan 2023 15:24:33.4977 (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: JMi8pbCZeEveFI+yMtEfG9QuoljAKd7JVM/DWDO2AisKFvHNFixPx6d+vhW11eCl3dj/JXF7QIZp9fKssoGj1Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB7824 X-Spam-Status: No, score=-3028.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP, URIBL_BLOCKED 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?1755918014430797655?= X-GMAIL-MSGID: =?utf-8?q?1755918014430797655?= Along with the normal JAL alias, the C-extension one should have been moved as well by 839189bc932e ("RISC-V: re-arrange opcode table for consistent alias handling"), for the assembler to actually be able to use it where/when possible. Since neither this nor any other compressed branch insn was being tested so far, take the opportunity and introduce a new testcase covering those. --- Pretty clearly this should also go on the 2.40 branch. --- a/opcodes/riscv-opc.c +++ b/opcodes/riscv-opc.c @@ -340,9 +340,9 @@ const struct riscv_opcode riscv_opcodes[ {"jalr", 0, INSN_CLASS_I, "d,s,j", MATCH_JALR, MASK_JALR, match_opcode, INSN_JSR }, {"j", 0, INSN_CLASS_C, "Ca", MATCH_C_J, MASK_C_J, match_opcode, INSN_ALIAS|INSN_BRANCH }, {"j", 0, INSN_CLASS_I, "a", MATCH_JAL, MASK_JAL|MASK_RD, match_opcode, INSN_ALIAS|INSN_BRANCH }, +{"jal", 32, INSN_CLASS_C, "Ca", MATCH_C_JAL, MASK_C_JAL, match_opcode, INSN_ALIAS|INSN_JSR }, {"jal", 0, INSN_CLASS_I, "a", MATCH_JAL|(X_RA << OP_SH_RD), MASK_JAL|MASK_RD, match_opcode, INSN_ALIAS|INSN_JSR }, {"jal", 0, INSN_CLASS_I, "d,a", MATCH_JAL, MASK_JAL, match_opcode, INSN_JSR }, -{"jal", 32, INSN_CLASS_C, "Ca", MATCH_C_JAL, MASK_C_JAL, match_opcode, INSN_ALIAS|INSN_JSR }, {"call", 0, INSN_CLASS_I, "d,c", (X_T1 << OP_SH_RS1), (int) M_CALL, match_never, INSN_MACRO }, {"call", 0, INSN_CLASS_I, "c", (X_RA << OP_SH_RS1)|(X_RA << OP_SH_RD), (int) M_CALL, match_never, INSN_MACRO }, {"tail", 0, INSN_CLASS_I, "c", (X_T1 << OP_SH_RS1), (int) M_CALL, match_never, INSN_MACRO }, --- /dev/null +++ b/gas/testsuite/gas/riscv/c-branch-na.d @@ -0,0 +1,20 @@ +#as: -march=rv32ic +#source: c-branch.s +#objdump: -drw -Mno-aliases + +.*:[ ]+file format .* + + +Disassembly of section .text: + +0+ : +[ ]+[0-9a-f]+:[ ]+c001[ ]+c\.beqz[ ]+s0,0 [ ]+0: R_RISCV_RVC_BRANCH .* +[ ]+[0-9a-f]+:[ ]+dcfd[ ]+c\.beqz[ ]+s1,0 [ ]+2: R_RISCV_RVC_BRANCH .* +[ ]+[0-9a-f]+:[ ]+fc75[ ]+c\.bnez[ ]+s0,0 [ ]+4: R_RISCV_RVC_BRANCH .* +[ ]+[0-9a-f]+:[ ]+fced[ ]+c\.bnez[ ]+s1,0 [ ]+6: R_RISCV_RVC_BRANCH .* +[ ]+[0-9a-f]+:[ ]+bfe5[ ]+c\.j[ ]+0 [ ]+8: R_RISCV_RVC_JUMP .* +[ ]+[0-9a-f]+:[ ]+3fdd[ ]+c\.jal[ ]+0 [ ]+a: R_RISCV_RVC_JUMP .* +[ ]+[0-9a-f]+:[ ]+9302[ ]+c\.jalr[ ]+t1 +[ ]+[0-9a-f]+:[ ]+8382[ ]+c\.jr[ ]+t2 +[ ]+[0-9a-f]+:[ ]+8082[ ]+c\.jr[ ]+ra +#... --- /dev/null +++ b/gas/testsuite/gas/riscv/c-branch.d @@ -0,0 +1,19 @@ +#as: -march=rv64ic +#objdump: -drw + +.*:[ ]+file format .* + + +Disassembly of section .text: + +0+ : +[ ]+[0-9a-f]+:[ ]+c001[ ]+beqz[ ]+s0,0 [ ]+0: R_RISCV_RVC_BRANCH .* +[ ]+[0-9a-f]+:[ ]+dcfd[ ]+beqz[ ]+s1,0 [ ]+2: R_RISCV_RVC_BRANCH .* +[ ]+[0-9a-f]+:[ ]+fc75[ ]+bnez[ ]+s0,0 [ ]+4: R_RISCV_RVC_BRANCH .* +[ ]+[0-9a-f]+:[ ]+fced[ ]+bnez[ ]+s1,0 [ ]+6: R_RISCV_RVC_BRANCH .* +[ ]+[0-9a-f]+:[ ]+bfe5[ ]+j[ ]+0 [ ]+8: R_RISCV_RVC_JUMP .* +[ ]+[0-9a-f]+:[ ]+ff7ff0ef[ ]+jal[ ]+0 [ ]+a: R_RISCV_JAL .* +[ ]+[0-9a-f]+:[ ]+9302[ ]+jalr[ ]+t1 +[ ]+[0-9a-f]+:[ ]+8382[ ]+jr[ ]+t2 +[ ]+[0-9a-f]+:[ ]+8082[ ]+ret +#... --- /dev/null +++ b/gas/testsuite/gas/riscv/c-branch.s @@ -0,0 +1,11 @@ + .text +target: + beq x8, x0, target + beqz x9, target + bne x8, x0, target + bnez x9, target + j target + jal target + jalr x6 + jr x7 + ret