From patchwork Wed Nov 9 03:00:36 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Palmer Dabbelt X-Patchwork-Id: 60246 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 62D843856DF5 for ; Wed, 9 Nov 2022 03:01:30 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-pg1-x531.google.com (mail-pg1-x531.google.com [IPv6:2607:f8b0:4864:20::531]) by sourceware.org (Postfix) with ESMTPS id DF99A385842F for ; Wed, 9 Nov 2022 03:00:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org DF99A385842F Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=rivosinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=rivosinc.com Received: by mail-pg1-x531.google.com with SMTP id 78so15036531pgb.13 for ; Tue, 08 Nov 2022 19:00:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rivosinc-com.20210112.gappssmtp.com; s=20210112; h=to:from:cc:content-transfer-encoding:mime-version:message-id:date :subject:from:to:cc:subject:date:message-id:reply-to; bh=FIpvsttOkxBXJWizCtCGQKEHTjXxnGv/MHk31gLeVUU=; b=mQf37/wI7PE1aXVaS7XQ4jR/cEnIrX1lIdlQT13HKUHb70W5SF87Lmw+L5uFRVkjBh UEkac2CKLqs9wekQj6kUDbxN6dpMorNMd9ElF+63DJVJFtbX1YQzzU5vv8ODyhSfR3bB M9gr/KMZMqHQ8ZKjnsQFK0ylPGjgfDpsvDagRRWiw2Ipb8CdMCEE+6kjzOr6ghURfSEy 70sAX58OGASyA5lSSgMLBWq0kegoQbhLhAOW59NyJURYmmgGaRPhyf591EifjUhTTvdc xP/XF+jKpWrk2h/iCE2OUks9qqkgi9mpH9pFJHVOjsqWksEFZMpnFtAhqvWBMCw3QdoI DtRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:from:cc:content-transfer-encoding:mime-version:message-id:date :subject:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=FIpvsttOkxBXJWizCtCGQKEHTjXxnGv/MHk31gLeVUU=; b=KBHlSO19MEfxq0uRshdPZVwz2y62eWQCvxfnLLvgTIutaLhfL+2l/7/uVRbuPys5/n UlxCEgIpabVZ46EvBuDPmzq6OaGK673ZNZjVRh/K0iukWZfvyzsU373QDLcz0brASzFl KdLXa72Y1vqamFWB/u9JYUBlIDKq99mZQ5QoM++pnvv88bC98ajiI6b95rUKKwtfHnUy VxsDddTay8to5XfJ4tNGQZ1sVAgxJnSO7je0sDLJKRA/Q8+Xz3JgFHquFFhzIUSnlDrq 64HloAzD2gJouCq78xtR5sIK+msJKAlCV6CewREOBA88XCHlkWhuaPJ/vVy9KuH4TBz0 WICA== X-Gm-Message-State: ACrzQf21siKUjgOUgR8apmJUoGUR5xBH/gfA6vkO2PGhUKTP+QgaN2bd GH4c4m38K++XZVvlOChFs3DIt7psmOUPcw== X-Google-Smtp-Source: AMsMyM5P7jr8qkg64NYpR4RToP6GzdY/3fWdBudhGIoZwFW5Awi39A90XoglEFTW8U1sws9l3lALwQ== X-Received: by 2002:a63:ff10:0:b0:46f:efa0:2824 with SMTP id k16-20020a63ff10000000b0046fefa02824mr34523801pgi.460.1667962849859; Tue, 08 Nov 2022 19:00:49 -0800 (PST) Received: from localhost ([50.221.140.188]) by smtp.gmail.com with ESMTPSA id c188-20020a624ec5000000b0056c0d129edfsm7063787pfb.121.2022.11.08.19.00.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 08 Nov 2022 19:00:49 -0800 (PST) Subject: [PATCH] RISC-V: Add the Zihpm and Zicntr extensions Date: Tue, 8 Nov 2022 19:00:36 -0800 Message-Id: <20221109030036.19175-1-palmer@rivosinc.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 Cc: Palmer Dabbelt From: Palmer Dabbelt To: gcc-patches@gcc.gnu.org X-Spam-Status: No, score=-12.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, 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 X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" These extensions were recently frozen [1]. As per Andrew's post [2] we're meant to ignore these in software, this just adds them to the list of allowed extensions and otherwise ignores them. I added these under SPEC_CLASS_NONE even though the PDF lists them as 20190614 because it seems pointless to add another spec class just to accept two extensions we then ignore. 1: https://groups.google.com/a/groups.riscv.org/g/isa-dev/c/HZGoqP1eyps/m/GTNKRLJoAQAJ 2: https://groups.google.com/a/groups.riscv.org/g/sw-dev/c/QKjQhChrq9Q/m/7gqdkctgAgAJ gcc/ChangeLog * common/config/riscv/riscv-common.cc: Add Zihpm and Zicnttr extensions. --- These deserves documentation, a test case, and a NEWS entry. I didn't write those yet because it's not super clear this is the way we wanted to go, though: just flat out ignoring the ISA feels like the wrong thing to do, but the guidance here is pretty clear. Still feels odd, though. We've also still got an open discussion on how we want to handle -march going forwards that's pretty relevant here, so I figured it'd be best to send this out sooner rather than later as it's sort of related. --- gcc/common/config/riscv/riscv-common.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc index 4b7f777c103..72981f05ac7 100644 --- a/gcc/common/config/riscv/riscv-common.cc +++ b/gcc/common/config/riscv/riscv-common.cc @@ -190,6 +190,9 @@ static const struct riscv_ext_version riscv_ext_version_table[] = {"zicbom",ISA_SPEC_CLASS_NONE, 1, 0}, {"zicbop",ISA_SPEC_CLASS_NONE, 1, 0}, + {"zicntr", ISA_SPEC_CLASS_NONE, 2, 0}, + {"zihpm", ISA_SPEC_CLASS_NONE, 2, 0}, + {"zk", ISA_SPEC_CLASS_NONE, 1, 0}, {"zkn", ISA_SPEC_CLASS_NONE, 1, 0}, {"zks", ISA_SPEC_CLASS_NONE, 1, 0},