From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: 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 8EA60385842C for ; Sat, 21 Oct 2023 05:33:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8EA60385842C Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=irq.a4lg.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=irq.a4lg.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 8EA60385842C Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2401:2500:203:30b:4000:6bfe:4757:0 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697866392; cv=none; b=bYhcdKO/3dOMyqgZw5C4w3xGtd0X/oN8wuc/Lj7TiHRAhzBF8bxIgL8CKVOq7s57b3xAlYsWboaLSLNiyNrdJzmfIOMyRXMBAwcRjtdKN91yjwQxp/wExhhYT6x5kDUniaV5K0bf4JMV2damn8nBqHA0/I8mB9AXB4qyTzBJuo0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1697866392; c=relaxed/simple; bh=pCllCmP+BRwMfzaRe+tJuY6FNitgMWM8usqq0ykb1Gw=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:Mime-Version; b=eJb9FcAN9xuujsU5A5hJ+PTAstMZyeHaI3Co38CslnVOVhiXDgQFBF6L1rbUyZIoG4SKOl4p7ryRib+bgM1AurmPW481OO+KLAgF8HCr7f640QSgDyhJluzSvoxK5PcJA0DQ/RZxAoIcJBZt6xOnbvbxYD/WZ00Yq81wjgGm+P4= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from [127.0.0.1] (localhost [127.0.0.1]) by mail-sender-0.a4lg.com (Postfix) with ESMTPSA id 84450300089; Sat, 21 Oct 2023 05:32:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=irq.a4lg.com; s=2017s01; t=1697866379; bh=cvh7htzG+ZDggVCwFCN+jLJTxSgJK5Vknw5VIgekCjA=; h=From:To:Cc:Subject:Date:Message-ID:Mime-Version: Content-Transfer-Encoding; b=QSZNf+40SRPLTJXjxa+SxmCEypkXcM6eudIDOSDDvYIYTqu0UUIRQLzfpHDE2r8na 748/6+dbfR0QRYIX1vfk4qr7H4IAZoPGAyJ2KPW0rqhZUrSg+ukDu9znLiXD8DTopW wlSceM7vZgTOY4NHcxSjAZU4pTGdbgQNl8erp2Jk= From: Tsukasa OI To: Tsukasa OI , Kito Cheng , Palmer Dabbelt , Andrew Waterman , Jim Wilson , Jeff Law Cc: gcc-patches@gcc.gnu.org Subject: [PATCH] RISC-V: Prohibit combination of 'E' and 'H' Date: Sat, 21 Oct 2023 05:32:56 +0000 Message-ID: <92fad87801003eaa4cf9f47a1ab8d6e6f015ed12.1697866371.git.research_trasio@irq.a4lg.com> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,GIT_PATCH_0,KAM_MANYTO,KAM_SHORT,SPF_HELO_NONE,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: From: Tsukasa OI According to the ratified privileged specification (version 20211203), it says: > The hypervisor extension depends on an "I" base integer ISA with 32 x > registers (RV32I or RV64I), not RV32E, which has only 16 x registers. Also in the latest draft, it also prohibits RV64E with the 'H' extension. This commit prohibits the combination of 'E' and 'H' extensions. gcc/ChangeLog: * common/config/riscv/riscv-common.cc (riscv_subset_list::parse): Prohibit 'E' and 'H' combinations. gcc/testsuite/ChangeLog: * gcc.target/riscv/arch-26.c: New test. --- gcc/common/config/riscv/riscv-common.cc | 4 ++++ gcc/testsuite/gcc.target/riscv/arch-26.c | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/arch-26.c diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc index d7216285c648..36201559deff 100644 --- a/gcc/common/config/riscv/riscv-common.cc +++ b/gcc/common/config/riscv/riscv-common.cc @@ -1495,6 +1495,10 @@ riscv_subset_list::parse (const char *arch, location_t loc) error_at (loc, "%<-march=%s%>: z*inx conflicts with floating-point " "extensions", arch); + /* 'H' hypervisor extension requires base ISA with 32 registers. */ + if (subset_list->lookup ("e") && subset_list->lookup ("h")) + error_at (loc, "%<-march=%s%>: h extension requires i extension", arch); + return subset_list; fail: diff --git a/gcc/testsuite/gcc.target/riscv/arch-26.c b/gcc/testsuite/gcc.target/riscv/arch-26.c new file mode 100644 index 000000000000..0b48bc945b58 --- /dev/null +++ b/gcc/testsuite/gcc.target/riscv/arch-26.c @@ -0,0 +1,4 @@ +/* { dg-do compile } */ +/* { dg-options "-march=rv32eh -mabi=ilp32e" } */ +int foo() {} +/* { dg-error "'-march=rv32eh': h extension requires i extension" "" { target *-*-* } 0 } */ base-commit: 66c26e5cfdf65ae024fcb658629dc5a9a10f3f85 -- 2.42.0