From patchwork Mon Jul 24 05:38:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tsukasa OI X-Patchwork-Id: 124618 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp1587763vqg; Sun, 23 Jul 2023 22:39:39 -0700 (PDT) X-Google-Smtp-Source: APBJJlF7fCvfhubyMIq225Vc9eXZqW1jwnM8X8gU6F0msIogu6LOJSc7jFGrujw34xXWxLgfh9MJ X-Received: by 2002:a17:907:1dd4:b0:99b:5445:10d5 with SMTP id og20-20020a1709071dd400b0099b544510d5mr9500854ejc.51.1690177179025; Sun, 23 Jul 2023 22:39:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690177179; cv=none; d=google.com; s=arc-20160816; b=XcDtnBn4C7UsvENfjEL1RINB4/9qbc2Bk9soaZpsmpil1FLQOrhgJSMMwBFrvmWqnK S/kui1hjrk+J5hbiMA/qcYMx4tFPHPK9Je19KBnYR1K3SchsxIsl1q9TW304Y2FJLcjx fe/HUNxFjDb+ogSnlnlt+mQNX/sQrff57Ds6dAkbESm9aRKwpHjRhsDfD/a4ykf6z/rH hzlybSQfU5HCLXIbitF9mf+QULyee2bLX9xYJVAM7enhz7LrrYTSNjk6jEe7UuFr6dxy tNEVDVHcsgAjRjmdI6RDDLOCp5tDIagIrLQFm+RdrTVtRqtDgjnLy4GIyepLaYVfrHNS 3k2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from: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:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=vs5LYLju0egKD52hhQ1XnJVympqb5P+tF7s8r9t16S0=; fh=53cJj9TBSYR/wgWr2Q2wXVHUGiHHr7QV00QtBv5db8E=; b=x5yV1ax9gjA78jfQeXaYF5k6QWKYFa2YHwd6NMpmYKfk+vGMtZOqdHf7/0iTQoNPfD 1OM+ts6BX/ABYDr75PRM+iA0HRU5ne45w1xREz6032liMZ+Vn1AidgbR9THLyH9ZkRVH s/tB3Jxhpuxh0EW7V6Xcn0YF7ED8q7ctLaSVftlBU8SC3Awmz7HoeA9FJVkXCALK3e9W KjMJMucryv8Fvuo4VOFJ+5fUUHJKnX9CLDvU9/NZmMCkoAbNnrdrzQ7jF/qbnzzPX6AU WnWqoxpGXnOb1eRcXbX4Eg8XSOvjJbxB8Q+0wRAjBpCMeMvxozYlzl039JSX8AfBwBNN YJ5Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=EbZ7dxu5; 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 (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id re10-20020a170906d8ca00b0098e07395327si5861028ejb.757.2023.07.23.22.39.38 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Jul 2023 22:39:39 -0700 (PDT) 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=EbZ7dxu5; 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 1F28E385AF88 for ; Mon, 24 Jul 2023 05:39:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1F28E385AF88 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1690177177; bh=vs5LYLju0egKD52hhQ1XnJVympqb5P+tF7s8r9t16S0=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=EbZ7dxu5LG6Edq6EddZOQvaiA/tjv0tzSixNMOZZ313jx60YsTEeIlldOrlSA1Kfp 3t3fxHsoodJpq2ArlLcw0+6sa1Q5CytWwuGloKv5LFEHZYdOHRTYa5zorX4wbOqc4n 2V4Ey/XX7c6Bh5g+2TprXOSgkPnZzXU1Xl1cU+sg= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-sender-0.a4lg.com (mail-sender.a4lg.com [153.120.152.154]) by sourceware.org (Postfix) with ESMTPS id 637023857700 for ; Mon, 24 Jul 2023 05:39:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 637023857700 Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 98EF2300089; Mon, 24 Jul 2023 05:39:27 +0000 (UTC) To: Tsukasa OI , Nelson Chu , Kito Cheng , Palmer Dabbelt Cc: binutils@sourceware.org Subject: [PATCH 1/2] RISC-V: Prohibit the 'Zcf' extension on RV64 Date: Mon, 24 Jul 2023 05:38:51 +0000 Message-ID: <14d1ae219dd8d974c93ab95fe1abb7760cdcdd52.1690177089.git.research_trasio@irq.a4lg.com> In-Reply-To: References: Mime-Version: 1.0 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, KAM_NUMSUBJECT, SPF_HELO_NONE, 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: , X-Patchwork-Original-From: Tsukasa OI via Binutils From: Tsukasa OI Reply-To: Tsukasa OI Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772279225633553990 X-GMAIL-MSGID: 1772279225633553990 From: Tsukasa OI As per: , the 'Zcf' extension does not exist on RV64. This is reflected on the version 1.0.4-1 of the code size reduction specification: . This commit prohibits the combination: RV64 (or any ISA with XLEN > 32) and the 'Zcf' extension. bfd/ChangeLog: * elfxx-riscv.c (riscv_parse_check_conflicts): Prohibit combination of RV64 and 'Zcf'. gas/ChangeLog: * testsuite/gas/riscv/march-fail-rv64i_zcf.d: New test. * testsuite/gas/riscv/march-fail-rv64i_zcf.l: Likewise. --- bfd/elfxx-riscv.c | 7 +++++++ gas/testsuite/gas/riscv/march-fail-rv64i_zcf.d | 3 +++ gas/testsuite/gas/riscv/march-fail-rv64i_zcf.l | 2 ++ 3 files changed, 12 insertions(+) create mode 100644 gas/testsuite/gas/riscv/march-fail-rv64i_zcf.d create mode 100644 gas/testsuite/gas/riscv/march-fail-rv64i_zcf.l diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index ee96608358e8..eaf496649db1 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1946,6 +1946,13 @@ riscv_parse_check_conflicts (riscv_parse_subset_t *rps) rps->error_handler (_("rv%d does not support the `q' extension"), xlen); no_conflict = false; } + if (riscv_lookup_subset (rps->subset_list, "zcf", &subset) + && xlen > 32) + { + rps->error_handler + (_("rv%d does not support the `zcf' extension"), xlen); + no_conflict = false; + } if (riscv_lookup_subset (rps->subset_list, "zfinx", &subset) && riscv_lookup_subset (rps->subset_list, "f", &subset)) { diff --git a/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.d b/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.d new file mode 100644 index 000000000000..1b70a9e280f0 --- /dev/null +++ b/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.d @@ -0,0 +1,3 @@ +#as: -march=rv64i_zcf +#source: empty.s +#error_output: march-fail-rv64i_zcf.l diff --git a/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.l b/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.l new file mode 100644 index 000000000000..b9e07c64d52f --- /dev/null +++ b/gas/testsuite/gas/riscv/march-fail-rv64i_zcf.l @@ -0,0 +1,2 @@ +.*Assembler messages: +.*Error: .*rv64 does not support the `zcf' extension From patchwork Mon Jul 24 05:38:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tsukasa OI X-Patchwork-Id: 124619 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp1587856vqg; Sun, 23 Jul 2023 22:39:56 -0700 (PDT) X-Google-Smtp-Source: APBJJlFQshe1T9Njg3FCmAv65bDsQONt4GuvYyQ7LoAJDj0TMK1Dopj/BzIUYyjSa++1+y4Jc9LY X-Received: by 2002:aa7:d4d2:0:b0:51d:e561:a9ab with SMTP id t18-20020aa7d4d2000000b0051de561a9abmr7909085edr.16.1690177196654; Sun, 23 Jul 2023 22:39:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690177196; cv=none; d=google.com; s=arc-20160816; b=Nzq4koh1skMGyqERy9/Ek2Mgfkf+pTqDRe9iTcYe7Vxctu2KLlsKPX40YtBL+0KFXs e9yNnM+VmRiuPvWbqtKPC1pkO5ArlDs5XH8/AjrMt5iF8nFPxIsOqR42Gzp4PkFnn2Xi WbVyJBTUI4xre3qM9xJkc8WHLXIJo4fjYhm0YvuwNnPZfeHrXxn5cl5oMGh9koZRH0VD DrkG59iOhFevLLoQcLdOvAba/LoLzmfJ0aCU8EZ/Bv9dyaQCxkAI17Y3LuSWmBRjNuDn g6zs8WvX924KiNUKJgvOy1DjMKWWpN3qrUcon/GU9BX/gm6yFbOOQpVVtQFt02tjFcHa gTzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from: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:dmarc-filter:delivered-to :dkim-signature:dkim-filter; bh=I1wcz81IzyuxYC+gFMEL+ilQ0NS/BwBiXEq4yO5Dx+k=; fh=53cJj9TBSYR/wgWr2Q2wXVHUGiHHr7QV00QtBv5db8E=; b=jsoNyUDgmdmga6jDHe7iOJFQxc2lGuUSBXWByHF9H6JO9hbwCwExPqwHSKqVj7Ppjf jbSargZjYeWhvE5ysX1Lr1CuuWh9bbfiRsuXswx3z1HHxzrv0z2Kbk1Klz56W/VXRMch g1Qqqvcmx3EDGg+SNoO+G4SSHKuhZFIru6YHD96CZ1vLga7Wsimgs4+O+zwHZ05QO5CC dEqBlXNlrSv0M1wPY9QpmXcMyESZcPgyzpfEHn96awvfwNTq2AhF6u/ehj/+IdZJE6O5 MOq2BtIowXCrYXKJA8ot+GVKHA9qkVAS4CjeQPrHJlYIoYJqlEkr5xRkyJvLRiOsWj+H yneQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=a0LFrGxd; 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 (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id j13-20020aa7c0cd000000b0051e226c1141si5936690edp.333.2023.07.23.22.39.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 23 Jul 2023 22:39:56 -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; dkim=pass header.i=@sourceware.org header.s=default header.b=a0LFrGxd; 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 7C0EA385AF9A for ; Mon, 24 Jul 2023 05:39:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7C0EA385AF9A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1690177188; bh=I1wcz81IzyuxYC+gFMEL+ilQ0NS/BwBiXEq4yO5Dx+k=; h=To:Cc:Subject:Date:In-Reply-To:References:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=a0LFrGxdlsQfFab0CC1YEJiEN/kjg1YmVjeqL5ejhjyFzy3HW8M7IaT+1xIcE8QE0 xEKUrSzv+9Daxb/yllsPRqSc5H2wIQafCiAdP3ZF5S3VuPJIU6Kx5vfUfhz909hU7z EwILMH/sKCcUzdIhsfnTGNshzd3avRGXFXTmd3p0= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-sender-0.a4lg.com (mail-sender-0.a4lg.com [IPv6:2401:2500:203:30b:4000:6bfe:4757:0]) by sourceware.org (Postfix) with ESMTPS id 59F84385AF97 for ; Mon, 24 Jul 2023 05:39:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 59F84385AF97 Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 5863F300089; Mon, 24 Jul 2023 05:39:38 +0000 (UTC) To: Tsukasa OI , Nelson Chu , Kito Cheng , Palmer Dabbelt Cc: binutils@sourceware.org Subject: [PATCH 2/2] RISC-V: Implications from 'Zc[fd]' extensions Date: Mon, 24 Jul 2023 05:38:52 +0000 Message-ID: <78042a623fd4f5da8aab0cb0cad4a6c04c5529b6.1690177089.git.research_trasio@irq.a4lg.com> In-Reply-To: References: Mime-Version: 1.0 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, GIT_PATCH_0, SPF_HELO_NONE, 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: , X-Patchwork-Original-From: Tsukasa OI via Binutils From: Tsukasa OI Reply-To: Tsukasa OI Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1772279244052311604 X-GMAIL-MSGID: 1772279244052311604 From: Tsukasa OI The version 1.0.4-1 of the code size reduction specification clarifies that 'Zcf' implies 'F' and 'Zcd' implies 'D'. cf: This commit adds those implications. bfd/ChangeLog: * elfxx-riscv.c (riscv_implicit_subsets): Add two implications, 'Zcf' -> 'F' and 'Zcd' -> 'D'. gas/ChangeLog: * testsuite/gas/riscv/march-imply-zcd.d: New test. * testsuite/gas/riscv/march-imply-zcf.d: New test. --- bfd/elfxx-riscv.c | 2 ++ gas/testsuite/gas/riscv/march-imply-zcd.d | 6 ++++++ gas/testsuite/gas/riscv/march-imply-zcf.d | 6 ++++++ 3 files changed, 14 insertions(+) create mode 100644 gas/testsuite/gas/riscv/march-imply-zcd.d create mode 100644 gas/testsuite/gas/riscv/march-imply-zcf.d diff --git a/bfd/elfxx-riscv.c b/bfd/elfxx-riscv.c index eaf496649db1..b43d2cfa0fab 100644 --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1132,6 +1132,8 @@ static struct riscv_implicit_subset riscv_implicit_subsets[] = {"zvl256b", "zvl128b", check_implicit_always}, {"zvl128b", "zvl64b", check_implicit_always}, {"zvl64b", "zvl32b", check_implicit_always}, + {"zcd", "d", check_implicit_always}, + {"zcf", "f", check_implicit_always}, {"zfa", "f", check_implicit_always}, {"d", "f", check_implicit_always}, {"zfh", "zfhmin", check_implicit_always}, diff --git a/gas/testsuite/gas/riscv/march-imply-zcd.d b/gas/testsuite/gas/riscv/march-imply-zcd.d new file mode 100644 index 000000000000..e7c75f649a8b --- /dev/null +++ b/gas/testsuite/gas/riscv/march-imply-zcd.d @@ -0,0 +1,6 @@ +#as: -march=rv32i_zcd -march-attr -misa-spec=20191213 +#readelf: -A +#source: empty.s +Attribute Section: riscv +File Attributes + Tag_RISCV_arch: "rv32i2p1_f2p2_d2p2_zicsr2p0_zca1p0_zcd1p0" diff --git a/gas/testsuite/gas/riscv/march-imply-zcf.d b/gas/testsuite/gas/riscv/march-imply-zcf.d new file mode 100644 index 000000000000..3829637a16fa --- /dev/null +++ b/gas/testsuite/gas/riscv/march-imply-zcf.d @@ -0,0 +1,6 @@ +#as: -march=rv32i_zcf -march-attr -misa-spec=20191213 +#readelf: -A +#source: empty.s +Attribute Section: riscv +File Attributes + Tag_RISCV_arch: "rv32i2p1_f2p2_zicsr2p0_zca1p0_zcf1p0"