From patchwork Tue Jun 13 13:23:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiawei X-Patchwork-Id: 107373 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp541983vqr; Tue, 13 Jun 2023 06:24:30 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7zA0cCQCOW6DOXBJdrfmqFO62ZNDwaqFqXmEFsJS8iDMgKElkHlqroF0D2/AOlrMVo1wuk X-Received: by 2002:ac2:5f87:0:b0:4f6:4d92:9ffb with SMTP id r7-20020ac25f87000000b004f64d929ffbmr5941938lfe.21.1686662670177; Tue, 13 Jun 2023 06:24:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686662670; cv=none; d=google.com; s=arc-20160816; b=s8PpiCNq9+M/szdIzY4aCIogOobmHFx/HSLqWj0oaYi0S6DTeFu4Q15w10ZhScOY6S Ypz9V/10zmz4sJf4QETpRMZV9v58Mib9cQ8w15sb/Bi0MNskSkGStKamo8QqDI8h1nUN Q33wgft62mgVyAgJ9GcWFr0SzhxGJkbg/+rKrkM4SzP7DOxmzBb0M0pqRjKx5/1PrrAp 1uaM3572tET5AKcGlGqEZBsA/6fqJ+b/wHiLc+NPFyJrfilbXYJwfbkRW1O8GTiM39fr aPVkbkAN4bu1DNXElGq+FTvnS2/nnied90JjKs/mqzxcgZ/OX+kSMdZpvRVJc4XM4T6Q ZfYg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dmarc-filter:delivered-to; bh=vo+4fNh52VR/qdvbwpq6Mq8gwTFa44heIDGj5K04sxw=; b=NJt2mvrkg8Y7iyaijNdpeWx+v4POhigO0m/pAnAaBjI4n7Jxhj4UEUso+RHk+wFwnZ H1G3MiJ/XRDupnRDrViisLmlY7ynrtQln95O+n88xf+wRhBzlkabnza5n8qf/GGkuZMr LxmkN315LZJyFeQ7aqd1XpA5MtzVqa5rMuaNTtzR+qo9Ch0MBjJXuvUEwLXGSPYpYBqp cLMBFoIn/olywHWVHgRo7oTc+RjG1GADeZG0kYwGNOfUA2eHEVhWoJ/wFehWypr6nPDn 1qy2y0f43tFdneZwN9KIrGM/ffMzjffan3lyolb5LK9xYGx9qA/FdXVrd6CWGEBtSkIA rXLQ== ARC-Authentication-Results: i=1; mx.google.com; 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" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id kt27-20020a170906aadb00b009745ef784bdsi2946078ejb.426.2023.06.13.06.24.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 13 Jun 2023 06:24:30 -0700 (PDT) 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; 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" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A87BD385802F for ; Tue, 13 Jun 2023 13:24:27 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from cstnet.cn (smtp25.cstnet.cn [159.226.251.25]) by sourceware.org (Postfix) with ESMTPS id 92AE63858CDA for ; Tue, 13 Jun 2023 13:24:20 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 92AE63858CDA Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=iscas.ac.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=iscas.ac.cn Received: from localhost.localdomain (unknown [47.113.87.88]) by APP-05 (Coremail) with SMTP id zQCowABHoizybYhkL8DjAQ--.2637S3; Tue, 13 Jun 2023 21:24:11 +0800 (CST) From: Jiawei To: binutils@sourceware.org Cc: nelson@rivosinc.com, kito.cheng@sifive.com, palmer@dabbelt.com, christoph.muellner@vrull.eu, jeremy.bennett@embecosm.com, mary.bennett@embecosm.com, nandni.jamnadas@embecosm.com, charlie.keaney@embecosm.com, simon.cook@embecosm.com, tariq.kurd@codasip.com, ibrahim.abu.kharmeh1@huawei.com, gaofei@eswincomputing.com, sinan.lin@linux.alibaba.com, wuwei2016@iscas.ac.cn, shihua@iscas.ac.cn, shiyulong@iscas.ac.cn, chenyixuan@iscas.ac.cn, Jiawei Subject: [PATCH 1/4] RISC-V: Minimal support of ZC extensions. Date: Tue, 13 Jun 2023 21:23:39 +0800 Message-Id: <20230613132342.783814-2-jiawei@iscas.ac.cn> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20230613132342.783814-1-jiawei@iscas.ac.cn> References: <20230613132342.783814-1-jiawei@iscas.ac.cn> MIME-Version: 1.0 X-CM-TRANSID: zQCowABHoizybYhkL8DjAQ--.2637S3 X-Coremail-Antispam: 1UD129KBjvJXoWxAFWkAr15Wr4DGr47urW8Crg_yoWrGr4kpr 4F9w4qyryrJFn7J3Z3JF4Igr45Wa1xKr45Jw4Sy34UJan5Ja15Xrn8Ka4rZFs5JFs3WFy3 C3WrW3y3ua15uF7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUPv14x267AKxVWrJVCq3wAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2048vs2IY020E87I2jVAFwI0_Jr4l82xGYIkIc2 x26xkF7I0E14v26r4j6ryUM28lY4IEw2IIxxk0rwA2F7IY1VAKz4vEj48ve4kI8wA2z4x0 Y4vE2Ix0cI8IcVAFwI0_tr0E3s1l84ACjcxK6xIIjxv20xvEc7CjxVAFwI0_Gr1j6F4UJw A2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x0267AKxVW0oVCq3wAS 0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG6I80ewAv7VC0I7IYx2 IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFVCjc4AY6r1j6r4UM4x0 Y48IcxkI7VAKI48JM4x0x7Aq67IIx4CEVc8vx2IErcIFxwACI402YVCY1x02628vn2kIc2 xKxwCY02Avz4vE174l42xK82IYc2Ij64vIr41l4I8I3I0E4IkC6x0Yz7v_Jr0_Gr1lx2Iq xVAqx4xG67AKxVWUJVWUGwC20s026x8GjcxK67AKxVWUGVWUWwC2zVAF1VAY17CE14v26r 4a6rW5MIIYrxkI7VAKI48JMIIF0xvE2Ix0cI8IcVAFwI0_Jr0_JF4lIxAIcVC0I7IYx2IY 6xkF7I0E14v26r4j6F4UMIIF0xvE42xK8VAvwI8IcIk0rVWUJVWUCwCI42IY6I8E87Iv67 AKxVWUJVW8JwCI42IY6I8E87Iv6xkF7I0E14v26r4j6r4UJbIYCTnIWIevJa73UjIFyTuY vjTRChF4DUUUU X-Originating-IP: [47.113.87.88] X-CM-SenderInfo: 5mld4v3l6l2u1dvotugofq/1tbiCgMBAGSISY5sWgAAsV X-Spam-Status: No, score=-11.5 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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: , 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?1768593996031495980?= X-GMAIL-MSGID: =?utf-8?q?1768593996031495980?= This patch add all ZC* extension base support, and enable compress feature when Zca extension enabled. Co-Authored by: Charlie Keaney Co-Authored by: Mary Bennett Co-Authored by: Nandni Jamnadas Co-Authored by: Sinan Lin Co-Authored by: Simon Cook Co-Authored by: Shihua Liao Co-Authored by: Yulong Shi bfd/ChangeLog: * elfxx-riscv.c (riscv_multi_subset_supports): New extensions. gas/ChangeLog: * config/tc-riscv.c (riscv_set_arch): Extend compress check. --- bfd/elfxx-riscv.c | 26 +++++++++++++++++++++++--- gas/config/tc-riscv.c | 3 ++- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index 7f453246449..4a7407b8a34 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1155,6 +1155,16 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zks", "zbkx", check_implicit_always}, {"zks", "zksed", check_implicit_always}, {"zks", "zksh", check_implicit_always}, + {"zce", "zca", check_implicit_always}, + {"zce", "zcb", check_implicit_always}, + {"zce", "zcf", check_implicit_always}, + {"zce", "zcmp", check_implicit_always}, + {"zce", "zcmt", check_implicit_always}, + {"zcf", "zca", check_implicit_always}, + {"zcd", "zca", check_implicit_always}, + {"zcb", "zca", check_implicit_always}, + {"zcmp", "zca", check_implicit_always}, + {"zcmt", "zca", check_implicit_always}, {"smaia", "ssaia", check_implicit_always}, {"smstateen", "ssstateen", check_implicit_always}, {"smepmp", "zicsr", check_implicit_always}, @@ -1272,6 +1282,13 @@ static struct riscv_supported_ext riscv_supported_std_z_ext[] = {"zvl32768b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"zvl65536b", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {"ztso", ISA_SPEC_CLASS_DRAFT, 0, 1, 0 }, + {"zca", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zcb", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zce", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zcf", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zcd", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zcmp", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, + {"zcmt", ISA_SPEC_CLASS_DRAFT, 1, 0, 0 }, {NULL, 0, 0, 0, 0} }; @@ -2335,13 +2352,16 @@ riscv_multi_subset_supports (riscv_parse_subset_t *rps, case INSN_CLASS_Q: return riscv_subset_supports (rps, "q"); case INSN_CLASS_C: - return riscv_subset_supports (rps, "c"); + return riscv_subset_supports (rps, "c") + || riscv_subset_supports (rps, "zca"); case INSN_CLASS_F_AND_C: return (riscv_subset_supports (rps, "f") - && riscv_subset_supports (rps, "c")); + && (riscv_subset_supports (rps, "c") + || riscv_subset_supports (rps, "zcf"))); case INSN_CLASS_D_AND_C: return (riscv_subset_supports (rps, "d") - && riscv_subset_supports (rps, "c")); + && (riscv_subset_supports (rps, "c") + || riscv_subset_supports (rps, "zcd"))); case INSN_CLASS_F_INX: return (riscv_subset_supports (rps, "f") || riscv_subset_supports (rps, "zfinx")); diff --git a/gas/config/tc-riscv.c b/gas/config/tc-riscv.c index 7684fa7e06d..1d3860b332f 100644 --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -337,7 +337,8 @@ riscv_set_arch (const char *s) riscv_reset_subsets_list_arch_str (); riscv_set_rvc (false); - if (riscv_subset_supports (&riscv_rps_as, "c")) + if (riscv_subset_supports (&riscv_rps_as, "c") + || riscv_subset_supports (&riscv_rps_as, "zca")) riscv_set_rvc (true); if (riscv_subset_supports (&riscv_rps_as, "ztso"))